Compartilhar via


Copiar dados do Greenplum utilizando o Azure Data Factory ou Synapse Analytics

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Dica

Experimente o Data Factory no Microsoft Fabric, uma solução de análise completa para empresas. O Microsoft Fabric abrange desde movimentação de dados até ciência de dados, análise em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!

Este artigo descreve como usar a atividade de cópia nos pipelines do Azure Data Factory ou do Azure Synapse Analytics para copiar dados de uma tabela do Greenplum. Ele amplia o artigo Visão geral da atividade de cópia que apresenta uma visão geral da atividade de cópia.

Importante

O conector Greenplum versão 1.0 está em fase de remoção. É recomendável atualizar o conector Greenplum da versão 1.0 para a 2.0.

Funcionalidades com suporte

O conector Greenplum é compatível com as seguintes funcionalidades:

Funcionalidades com suporte IR
Atividade de cópia (origem/-) (1) (2)
Atividade de pesquisa (1) (2)

① Tempo de execução de integração do Azure ② Tempo de execução de integração auto-hospedado

Para obter uma lista de armazenamentos de dados com suporte como origens/coletores da atividade de cópia, confira a tabela Armazenamentos de dados com suporte.

O serviço fornece um driver interno para habilitar a conectividade, portanto, não é necessário instalar manualmente qualquer driver usando esse conector.

Pré-requisitos

Se o armazenamento de dados estiver localizado dentro de uma rede local, em uma rede virtual do Azure ou na Amazon Virtual Private Cloud, você precisará configurar um runtime de integração auto-hospedada para se conectar a ele.

Se o armazenamento de dados for um serviço de dados de nuvem gerenciado, você poderá usar o Azure Integration Runtime. Se o acesso for restrito aos IPs que estão aprovados nas regras de firewall, você poderá adicionar IPs do Azure Integration Runtime à lista de permissões.

Você também pode usar o recurso de runtime de integração da rede virtual gerenciada no Azure Data Factory para acessar a rede local sem instalar e configurar um runtime de integração auto-hospedada.

Para obter mais informações sobre os mecanismos de segurança de rede e as opções compatíveis com o Data Factory, consulte Estratégias de acesso a dados.

Introdução

Para executar a atividade de cópia com um pipeline, você pode usar uma das seguintes ferramentas ou SDKs:

Criar um serviço vinculado ao Greenplum usando a interface do usuário

Use as etapas a seguir para criar um serviço vinculado ao Greenplum na interface do usuário do portal do Azure.

  1. Navegue até a guia Gerenciar no workspace do Azure Data Factory ou do Synapse e selecione Serviços Vinculados. Depois, clique em Novo:

  2. Pesquise por Greenplum e selecione o conector do Greenplum.

    Captura de tela do conector do Greenplum.

  3. Configure os detalhes do serviço, teste a conexão e crie o novo serviço vinculado.

    Captura de tela da configuração do serviço vinculado para o Greenplum.

Detalhes da configuração do conector

As seções a seguir fornecem detalhes sobre as propriedades usadas para definir entidades do Data Factory específicas ao conector do Greenplum.

Propriedades do serviço vinculado

O conector do Greenplum agora dá suporte à versão 2.0. Consulte esta seção para atualizar sua versão do conector Greenplum da versão 1.0. Para obter detalhes sobre as propriedades, consulte as seções correspondentes.

Versão 2.0

O serviço vinculado do Greenplum dá suporte às seguintes propriedades ao aplicar a versão 2.0:

Propriedade Descrição Obrigatório
tipo A propriedade type deve ser definida como: Greenplum Sim
versão A versão que você especifica. O valor é 2.0. Sim
hospedar Especifica o nome do host e, opcionalmente, a porta, em que o banco de dados está em execução. Sim
porta A porta TCP do servidor de banco de dados. O valor padrão é 5432. Não
banco de dados O banco de dados ao qual se conectar. Sim
nome de usuário O nome de usuário usado para se conectar. Não é necessário se estiver usando o IntegratedSecurity. Sim
senha A senha usada para se conectar. Não é necessário se estiver usando o IntegratedSecurity. Marque esse campo como SecureString para armazená-lo com segurança. Você também pode referenciar um segredo armazenado no Azure Key Vault. Sim
Modo ssl Controla se o SSL é usado, dependendo do suporte ao servidor.
- Desabilitar: o SSL está desabilitado. Se o servidor exigir SSL, a conexão falhará.
- Permitir: prefira conexões não SSL se o servidor permitir, mas permitir conexões SSL.
- Prefira: prefira conexões SSL se o servidor permitir, mas permitir conexões sem SSL.
- Exigir: A conexão falha se o servidor não der suporte ao SSL.
- Verificar-ca: A conexão falha se o servidor não der suporte ao SSL. Também verifica o certificado do servidor.
- Verificar-completo: a conexão falha se o servidor não oferecer suporte ao SSL. Também verifica o certificado do servidor com o nome do host.
Opções: Desabilitar (0) / Permitir (1) / Preferir (2) / Exigir (3) (Padrão) / Verify-ca (4) / Verify-full (5)
Sim
tipoDeAutenticação Tipo de autenticação para se conectar ao banco de dados. Só dá suporte ao Básico. Sim
connectVia O Integration Runtime a ser usado para se conectar ao armazenamento de dados. Saiba mais na seção Pré-requisitos. Se não for especificado, ele usa o Integration Runtime padrão do Azure. Não
Propriedades de conexão adicionais:
connectionTimeout O tempo de espera (em segundos) para tentar estabelecer uma conexão antes de encerrar a tentativa e gerar um erro. O valor padrão é 15. Não
commandTimeout O tempo de espera (em segundos) para tentar executar um comando antes de encerrar a tentativa e gerar um erro. Defina-o como zero para infinito. O valor padrão é 30. Não

Exemplo:

{
    "name": "GreenplumLinkedService",
    "properties": {
        "type": "Greenplum",
        "version": "2.0",
        "typeProperties": {
            "host": "<host>",
            "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 senha no Azure Key Vault

{
    "name": "GreenplumLinkedService",
    "properties": {
        "type": "Greenplum",
        "version": "2.0",
        "typeProperties": {
            "host": "<host>",
            "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"
        }
    }
}

Versão 1.0

O serviço vinculado do Greenplum dá suporte às seguintes propriedades ao aplicar a versão 1.0:

Propriedade Descrição Obrigatório
tipo A propriedade type deve ser definida como: Greenplum Sim
connectionString Uma cadeia de conexão ODBC para se conectar ao Greenplum.
Você também pode colocar uma senha no Azure Key Vault e extrair a configuração pwd da cadeia de conexão. Confira os exemplos a seguir e o artigo Armazenar credenciais no Azure Key Vault com mais detalhes.
Sim
connectVia O Integration Runtime a ser usado para se conectar ao armazenamento de dados. Saiba mais na seção Pré-requisitos. Se não for especificado, ele usa o Integration Runtime padrão do Azure. Não

Exemplo:

{
    "name": "GreenplumLinkedService",
    "properties": {
        "type": "Greenplum",
        "typeProperties": {
            "connectionString": "HOST=<server>;PORT=<port>;DB=<database>;UID=<user name>;PWD=<password>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Exemplo: armazenar a senha no Azure Key Vault

{
    "name": "GreenplumLinkedService",
    "properties": {
        "type": "Greenplum",
        "typeProperties": {
            "connectionString": "HOST=<server>;PORT=<port>;DB=<database>;UID=<user name>;",
            "pwd": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Propriedades do conjunto de dados

Para obter uma lista completa das seções e propriedades disponíveis para definir os conjuntos de dados, confira o artigo sobre conjuntos de dados. Esta seção fornece uma lista das propriedades com suporte pelo conjunto de dados do Greenplum.

Para copiar dados do Greenplum, defina a propriedade type do conjunto de dados como GreenplumTable. Há suporte para as seguintes propriedades:

Propriedade Descrição Obrigatório
tipo A propriedade type do conjunto de dados precisa ser definida como: GreenplumTable Sim
esquema Nome do esquema. Não (se "query" na fonte da atividade for especificada)
tabela Nome da tabela. Não (se "query" na fonte da atividade for especificada)
nome da tabela Nome da tabela com esquema. Essa propriedade é compatível com versões anteriores. Use schema e table para uma nova carga de trabalho. Não (se "query" na fonte da atividade for especificada)

Exemplo

{
    "name": "GreenplumDataset",
    "properties": {
        "type": "GreenplumTable",
        "typeProperties": {},
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<Greenplum linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Propriedades da atividade de cópia

Para obter uma lista completa das seções e propriedades disponíveis para definir atividades, confia o artigo Pipelines. Esta seção fornece uma lista das propriedades com suporte pela fonte do Greenplum.

GreenplumSource como fonte

Para copiar dados do Greenplum, defina o tipo de fonte na atividade de cópia como GreenplumSource. As propriedades a seguir têm suporte na seção source da atividade de cópia:

Propriedade Descrição Obrigatório
tipo A propriedade type da fonte da atividade de cópia deve ser definida como: GreenplumSource Sim
consulta Utiliza a consulta SQL personalizada para ler os dados. Por exemplo: "SELECT * FROM MyTable". Não (se "tableName" no conjunto de dados for especificado)

Exemplo:

"activities":[
    {
        "name": "CopyFromGreenplum",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Greenplum input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "GreenplumSource",
                "query": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Mapeamento de tipo de dados para Greenplum

Quando você copia dados do Greenplum, os mapeamentos a seguir se aplicam dos tipos de dados do Greenplum aos tipos de dados internos usados pelo serviço. Para saber mais sobre como a atividade Copy mapeia o tipo de dados e esquema de origem para o coletor, consulte Mapeamentos de tipo de dados e esquema.

Tipo de dados Greenplum Tipo de dados de serviço provisório (para a versão 2.0) Tipo de dados de serviço provisório (para a versão 1.0)
SmallInt Int16 Int16
Número Inteiro Int32 Int32
BigInt Int64 Int64
Decimal (Precisão <= 28) Decimal Decimal
DECIMAL (Precisão > 28) Decimal fio
Numérico Decimal Decimal
Real Solteiro Solteiro
Double Double Double
SmallSerial Int16 Int16
Serial Int32 Int32
BigSerial Int64 Int64
Money Decimal fio
Char fio fio
Varchar fio fio
Texto fio fio
Bytea Byte[] Byte[]
Timestamp Data e Hora Data e Hora
Carimbo de data/hora com fuso horário DateTimeOffset fio
Data Data Data e Hora
Hora TimeSpan TimeSpan
Hora com fuso horário DateTimeOffset fio
Intervalo TimeSpan fio
booleano booleano booleano
Point fio fio
Linha fio fio
Iseg fio fio
Box fio fio
Caminho fio fio
Polygon fio fio
Círculo fio fio
Cidr fio fio
Inet fio fio
Macaddr fio fio
Macaddr8 fio fio
Tsvector fio fio
Tsquery fio fio
Identificador Único Universal (UUID) Guid Guid
Json fio fio
Jsonb fio fio
Array fio fio
bit Byte[] Byte[]
Modulação de bits Byte[] Byte[]
XML fio fio
IntArray fio fio
TextArray fio fio
NumericArray fio fio
DateArray fio fio
Intervalo fio fio
Bpchar fio fio

Pesquisar propriedades de atividade

Para saber detalhes sobre as propriedades, verifique Pesquisar atividade.

Atualizar o conector do Greenplum

Estas são as etapas que ajudam você a atualizar o conector do Greenplum:

  1. Na página Editar serviço vinculado , selecione a versão 2.0 e configure o serviço vinculado referindo-se às propriedades do serviço vinculado versão 2.0.

  2. O mapeamento de tipo de dados para o serviço vinculado greenplum versão 2.0 é diferente do da versão 1.0. Para saber o mapeamento de tipo de dados mais recente, consulte o mapeamento de tipo de dados para Greenplum.

Diferenças entre o Greenplum versão 2.0 e a versão 1.0

O conector Greenplum versão 2.0 oferece novas funcionalidades e é compatível com a maioria dos recursos da versão 1.0. A tabela a seguir mostra as diferenças de recursos entre a versão 2.0 e a versão 1.0.

Versão 2.0 Versão 1.0
Os mapeamentos a seguir são usados dos tipos de dados Greenplum para o tipo de dados de serviço provisório.

Decimal (Precisão > 28) –> Decimal
Dinheiro -> Decimal
Carimbo de data/hora com fuso horário -> DateTimeOffset
Hora com fuso horário -> DateTimeOffset
Intervalo -> TimeSpan
Os mapeamentos a seguir são usados dos tipos de dados Greenplum para o tipo de dados de serviço provisório.

Decimal (Precisão > 28) -> Cadeia de caracteres
Dinheiro -> Cadeia de caracteres
Carimbo de data/hora com fuso horário ->Cadeia de caracteres
Tempo com fuso horário -> Cadeia de caracteres
Intervalo -> Cadeia de caracteres

Para obter uma lista de armazenamentos de dados com suporte como coletores e fontes da atividade de cópia, confira os armazenamentos de dados com suporte.