Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
APLICA-SE A:
Azure Data Factory
Azure Synapse Analytics
Gorjeta
Data Factory em Microsoft Fabric é a próxima geração de Azure Data Factory, com uma arquitetura mais simples, IA incorporada e novas funcionalidades. Se és novo na integração de dados, começa pelo Fabric Data Factory. As cargas de trabalho existentes do ADF podem atualizar para o Fabric para aceder a novas capacidades em ciência de dados, análise em tempo real e relatórios.
Este artigo descreve como usar a Copy Activity nos pipelines Azure Data Factory e Synapse Analytics para copiar dados de uma base de dados PostgreSQL. Ele se baseia no artigo de visão geral da atividade de cópia que apresenta uma visão geral da atividade de cópia.
Importante
O conector PostgreSQL V1 está em fase de remoção. Recomenda-se atualizar o conector PostgreSQL de V1 para V2.
Capacidades suportadas
Este conector PostgreSQL é suportado para os seguintes recursos:
| Capacidades suportadas | IR |
|---|---|
| Atividade de cópia (fonte/-) | (1) (2) |
| Atividade de Pesquisa | (1) (2) |
(1) Runtime de integração Azure (2) Runtime de integração auto-hospedado
Para obter uma lista de armazenamentos de dados suportados como fontes/coletores pela atividade de cópia, consulte a tabela Armazenamentos de dados suportados.
Especificamente, este conector PostgreSQL suporta PostgreSQL versão 12 e superior.
Pré-requisitos
Se o seu armazenamento de dados estiver localizado numa rede local, numa rede virtual Azure ou na Amazon Virtual Private Cloud, precisa de configurar um runtime de integração auto-hospedado para se ligar a ele.
Se o seu armazenamento de dados for um serviço de dados na cloud gerido, pode usar o Azure Integration Runtime. Se o acesso for restrito a IPs aprovados nas regras do firewall, pode adicionar IPs Azure Integration Runtime à lista de autorizações.
Também pode usar a funcionalidade managed virtual network integration runtime no Azure Data Factory para aceder à rede local sem instalar e configurar um runtime de integração auto-hospedado.
Para obter mais informações sobre os mecanismos de segurança de rede e as opções suportadas pelo Data Factory, consulte Estratégias de acesso a dados.
O Integration Runtime fornece um driver PostgreSQL incorporado a partir da versão 3.7, pelo que não precisa de instalar manualmente nenhum driver.
Introdução
Para executar a atividade de cópia com um pipeline, você pode usar uma das seguintes ferramentas ou SDKs:
- Ferramenta Copiar dados
- Portal do Azure
- .NET SDK
- Python SDK
- Azure PowerShell
- API REST
- Modelo do Azure Resource Manager
Criar um serviço vinculado ao PostgreSQL usando a interface do usuário
Use os passos seguintes para criar um serviço ligado ao PostgreSQL na interface do portal Azure.
Navegue até ao separador Gerir no seu espaço de trabalho Azure Data Factory ou Synapse e selecione Serviços Ligados, depois clique em Novo:
Procure Postgre e selecione o conector PostgreSQL.
Configure os detalhes do serviço, teste a conexão e crie o novo serviço vinculado.
Detalhes de configuração do conector
As seções a seguir fornecem detalhes sobre as propriedades usadas para definir entidades do Data Factory específicas para o conector PostgreSQL.
Propriedades do serviço vinculado
As seguintes propriedades são suportadas para o serviço vinculado PostgreSQL:
| Propriedade | Descrição | Obrigatório |
|---|---|---|
| tipo | A propriedade type deve ser definida como: PostgreSqlV2 | Sim |
| servidor | Especifica o nome do host - e, opcionalmente, a porta - na qual o PostgreSQL está sendo executado. | Sim |
| porta | A porta TCP do servidor PostgreSQL. | Não |
| base de dados | O banco de dados PostgreSQL ao qual se conectar. | Sim |
| nome de utilizador | O nome de usuário com o qual se conectar. | Sim |
| palavra-passe | A senha com a qual se conectar. | Sim |
| modo SSL | Controla se o SSL é usado, dependendo do suporte ao servidor. - Desativado: SSL está desativado. Se o servidor exigir SSL, a conexão falhará. - Permitir: Prefira conexões não SSL se o servidor permitir, mas permita conexões SSL. - Preferencial: Prefere ligações SSL se o servidor permitir, mas permite ligações sem SSL. - Obrigatório: Falhe a ligação se o servidor não suportar SSL. - Verify_ca: Falhe a ligação se o servidor não suportar SSL. Também verifica o certificado do servidor. - Verify_full: Falhe a ligação se o servidor não suportar SSL. Também verifica o certificado do servidor com o nome do host. Opções: Desativado (0) / Permitir (1) / Preferencial (2) (Padrão) / Obrigatório (3) / Verify_ca (4) / Verify_full (5) |
Não |
| tipo de autenticação | Tipo de autenticação para conexão com o banco de dados. Apenas suporta Basic. | Sim |
| conectarVia | O Integration Runtime para ser usado para se ligar ao armazenamento de dados. Saiba mais na seção Pré-requisitos . Se não for especificado, usa o Azure Integration Runtime padrão. | Não |
| Propriedades de conexão adicionais: | ||
| esquema | Define o caminho de pesquisa do esquema. | Não |
| Agrupamento | Se o pool de conexões deve ser usado. | Não |
| tempo de espera da conexão | O tempo de espera (em segundos) ao tentar estabelecer uma conexão antes de encerrar a tentativa e gerar um erro. | Não |
| commandTimeout | O tempo de espera (em segundos) ao tentar executar um comando antes de encerrar a tentativa e gerar um erro. Defina como zero para o infinito. | Não |
| trustServerCertificate | Se o certificado do servidor deve ser confiado sem validá-lo. | Não |
| sslCertificado | Localização de um certificado de cliente a ser enviado para o servidor. | Não |
| chave SSL | Localização de uma chave de cliente para um certificado de cliente a ser enviado para o servidor. | Não |
| sslPalavra-passe | Senha para uma chave para um certificado de cliente. | Não |
| tamanho do buffer de leitura | Determina o tamanho do buffer interno que o Npgsql usa durante a leitura. Aumentar pode melhorar o desempenho se transferir grandes valores do banco de dados. | Não |
| logParâmetros | Quando ativado, os valores dos parâmetros são registrados quando os comandos são executados. | Não |
| Fuso horário | Obtém ou define o fuso horário da sessão. | Não |
| codificação | Obtém ou define a codificação .NET que será usada para codificar/decodificar dados de strings PostgreSQL. | Não |
Nota
Para obter verificação SSL completa através da ligação ODBC ao utilizar o Self Hosted Integration Runtime, deve usar explicitamente uma ligação do tipo ODBC em vez do conector PostgreSQL, e completar a seguinte configuração:
- Configure o DSN em qualquer servidor SHIR.
- Coloque o certificado correto para PostgreSQL em C:\Windows\ServiceProfiles\DIAHostService\AppData\Roaming\postgresql\root.crt nos servidores SHIR. É aqui que o driver ODBC procura > o certificado SSL para verificar quando ele se conecta ao banco de dados.
- Na tua ligação do Data Factory, utiliza uma ligação do tipo ODBC, com a tua "cadeia de ligação" a apontar para o DSN que criaste nos teus servidores SHIR.
Exemplo:
{
"name": "PostgreSqlLinkedService",
"properties": {
"type": "PostgreSqlV2",
"typeProperties": {
"server": "<server>",
"port": 5432,
"database": "<database>",
"username": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
},
"sslmode": <sslmode>,
"authenticationType": "Basic"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Exemplo: armazenar a palavra-passe em Azure Key Vault
{
"name": "PostgreSqlLinkedService",
"properties": {
"type": "PostgreSqlV2",
"typeProperties": {
"server": "<server>",
"port": 5432,
"database": "<database>",
"username": "<username>",
"password": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName>"
}
"sslmode": <sslmode>,
"authenticationType": "Basic"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Propriedades do conjunto de dados
Para obter uma lista completa de seções e propriedades disponíveis para definir conjuntos de dados, consulte o artigo sobre conjuntos de dados. Esta seção fornece uma lista de propriedades suportadas pelo conjunto de dados PostgreSQL.
Para copiar dados do PostgreSQL, as seguintes propriedades são suportadas:
| Propriedade | Descrição | Obrigatório |
|---|---|---|
| tipo | A propriedade type do conjunto de dados deve ser definida como: PostgreSqlV2Table | Sim |
| esquema | Nome do esquema. | Não (caso "consulta" esteja especificada na fonte da atividade) |
| tabela | Nome da tabela. | Não (caso "consulta" esteja especificada na fonte da atividade) |
Exemplo
{
"name": "PostgreSQLDataset",
"properties":
{
"type": "PostgreSqlV2Table",
"linkedServiceName": {
"referenceName": "<PostgreSQL linked service name>",
"type": "LinkedServiceReference"
},
"annotations": [],
"schema": [],
"typeProperties": {
"schema": "<schema name>",
"table": "<table name>"
}
}
}
Se você estava usando RelationalTable o conjunto de dados digitado, ele ainda é suportado no estado em que se encontra, enquanto você é sugerido para usar o novo no futuro.
Propriedades da atividade de cópia
Para obter uma lista completa de seções e propriedades disponíveis para definir atividades, consulte o artigo Pipelines . Esta seção fornece uma lista de propriedades suportadas pela fonte PostgreSQL.
PostgreSQL como fonte
Para copiar dados do PostgreSQL, as seguintes propriedades são suportadas na secção source da atividade de cópia:
| Propriedade | Descrição | Obrigatório |
|---|---|---|
| tipo | A propriedade type da fonte de atividade de cópia deve ser definida como: PostgreSqlV2Source | Sim |
| consulta | Use a consulta SQL personalizada para ler dados. Por exemplo: "query": "SELECT * FROM \"MySchema\".\"MyTable\"". |
Não (caso "tableName" no conjunto de dados seja especificado) |
| tempo de espera da consulta | O tempo de espera antes de encerrar a tentativa de executar um comando e gerar um erro, o padrão é de 120 minutos. Se o parâmetro for definido para essa propriedade, os valores permitidos serão de intervalo de tempo, como "02:00:00" (120 minutos). Para obter mais informações, consulte CommandTimeout. Se ambos commandTimeout e queryTimeout estão configurados, queryTimeout tem precedência. |
Não |
Nota
Os nomes de esquema e tabela diferenciam maiúsculas de minúsculas. Coloque-os entre aspas duplas ("") na consulta.
Exemplo:
"activities":[
{
"name": "CopyFromPostgreSQL",
"type": "Copy",
"inputs": [
{
"referenceName": "<PostgreSQL input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "PostgreSqlV2Source",
"query": "SELECT * FROM \"MySchema\".\"MyTable\"",
"queryTimeout": "00:10:00"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Se estivesses a usar RelationalSource fonte tipada, ela ainda é suportada tal como está, mas é aconselhado a usar a nova daqui em diante.
Mapeamento de tipo de dados para PostgreSQL
Ao copiar dados do PostgreSQL, os mapeamentos a seguir são usados de tipos de dados PostgreSQL para tipos de dados provisórios usados pelo serviço internamente. Consulte Mapeamentos de esquema e tipo de dados para saber como a atividade de cópia mapeia o esquema de origem e o tipo de dados para o destino.
| Tipo de dados PostgreSQL | Tipo de dados de serviço provisório para PostgreSQL V2 | Tipo de dados de serviço provisório para PostgreSQL V1 |
|---|---|---|
SmallInt |
Int16 |
Int16 |
Integer |
Int32 |
Int32 |
BigInt |
Int64 |
Int64 |
Decimal (Precisão <= 28) |
Decimal |
Decimal |
Decimal (Precisão > 28) |
Sem suporte | String |
Numeric |
Decimal |
Decimal |
Real |
Single |
Single |
Double |
Double |
Double |
SmallSerial |
Int16 |
Int16 |
Serial |
Int32 |
Int32 |
BigSerial |
Int64 |
Int64 |
Money |
Decimal |
String |
Char |
String |
String |
Varchar |
String |
String |
Text |
String |
String |
Bytea |
Byte[] |
Byte[] |
Timestamp |
DateTime |
DateTime |
Timestamp with time zone |
DateTime |
String |
Date |
DateTime |
DateTime |
Time |
TimeSpan |
TimeSpan |
Time with time zone |
DateTimeOffset |
String |
Interval |
TimeSpan |
String |
Boolean |
Boolean |
Boolean |
Point |
String |
String |
Line |
String |
String |
Iseg |
String |
String |
Box |
String |
String |
Path |
String |
String |
Polygon |
String |
String |
Circle |
String |
String |
Cidr |
String |
String |
Inet |
String |
String |
Macaddr |
String |
String |
Macaddr8 |
String |
String |
Tsvector |
String |
String |
Tsquery |
String |
String |
UUID |
Guid |
Guid |
Json |
String |
String |
Jsonb |
String |
String |
Array |
String |
String |
Bit |
Byte[] |
Byte[] |
Bit varying |
Byte[] |
Byte[] |
XML |
String |
String |
IntArray |
String |
String |
TextArray |
String |
String |
NumericArray |
String |
String |
DateArray |
String |
String |
Range |
String |
String |
Bpchar |
String |
String |
Propriedades da atividade de consulta
Para saber detalhes sobre as propriedades, verifique atividade de consulta.
Atualizar o conector PostgreSQL
Aqui estão as etapas que ajudam você a atualizar seu conector PostgreSQL:
Crie um novo serviço vinculado PostgreSQL e configure-o consultando as propriedades do serviço vinculado.
O mapeamento de tipo de dados para o conector PostgreSQL V2 é diferente daquele para V1. Para saber o mapeamento de tipo de dados mais recente, consulte Mapeamento de tipo de dados para PostgreSQL.
Diferenças entre PostgreSQL V2 e V1
A tabela abaixo mostra as diferenças de mapeamento de tipo de dados entre o PostgreSQL V2 e V1.
| Tipo de dados PostgreSQL | Tipo de dados de serviço provisório para PostgreSQL V2 | Tipo de dados de serviço provisório para PostgreSQL V1 |
|---|---|---|
| Dinheiro | Decimal | Cordão |
| Data/Hora com Fuso Horário | Data e Hora | Cordão |
| Tempo com fuso horário | Desvio de Data e Hora | Cordão |
| Intervalo | Intervalo de Tempo | Cordão |
| BigDecimal | Não suportado. Como alternativa, utilize to_char() a função para converter BigDecimal em String. |
Cordão |
Conteúdos relacionados
Para obter uma lista de armazenamentos de dados suportados como fontes e destinos pela atividade de cópia, consulte armazenamentos de dados suportados.