Partilhar via


Copie dados do Netezza usando o Azure Data Factory ou o Synapse Analytics

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Tip

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 Atividade de Cópia no Azure Data Factory ou nos pipelines do Synapse Analytics para copiar dados do Netezza. O artigo baseia-se na Atividade de Cópia, que apresenta uma visão geral da Atividade de Cópia.

Tip

Para cenários de migração de dados da Netezza para Azure, saiba mais sobre Migre dados do servidor Netezza local para Azure.

Important

O conector Netezza versão 1.0 está em fase de remoção. Recomenda-se atualizar o conector Netezza da versão 1.0 para 2.0.

Capacidades suportadas

Este conector Netezza é suportado para as seguintes funcionalidades:

Capacidades suportadas IR
Atividade de cópia (fonte/-) (1) (apenas para a versão 1.0) (2)
Atividade de pesquisa (1) (apenas para a versão 1.0) (2)

(1) Runtime de integração Azure (2) Runtime de integração auto-hospedado

Para obter uma lista de armazenamentos de dados que a Atividade de Cópia suporta como fontes e coletores, consulte Formatos e armazenamentos de dados suportados.

Este conector Netezza suporta:

  • Cópia paralela do código-fonte. Consulte a seção Cópia paralela do Netezza para obter detalhes.
  • Netezza Performance Server versão 11.
  • Versões do Windows neste artigo.

O serviço fornece um driver interno para habilitar a conectividade. Não é necessário instalar manualmente nenhum driver para usar esse conector.

Para a versão 2.0, é necessário instalar um driver ODBC do IBM Netezza manualmente. Para a versão 1.0, o serviço fornece um driver interno para habilitar a conectividade. Não é necessário instalar manualmente nenhum driver para usar esse conector.

Prerequisites

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.

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.

Para a versão 1.0

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 Azure Integration Runtime IPs à lista de permissõ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.

Instale o driver Netezza ODBC para a versão 2.0

Para utilizar o conector Netezza com a versão 2.0, instale o driver ODBC IBM Netezza versão 11.02.02 ou superior na máquina onde está em execução o runtime de integração auto-hospedado.

Introdução

Pode criar um pipeline que use uma atividade de cópia usando o SDK .NET, o SDK Python, Azure PowerShell, a API REST ou um template do Azure Resource Manager. Consulte o tutorial sobre atividade de cópia para obter instruções passo a passo para criar um pipeline com uma atividade de cópia.

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

Use os seguintes passos para criar um serviço ligado à Netezza na interface do portal Azure.

  1. 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:

  2. Procure Netezza e selecione o conector Netezza.

    Screenshot do conector Netezza.

  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 Netezza.

Detalhes de configuração do conector

As seções a seguir fornecem detalhes sobre as propriedades que você pode usar para definir entidades que são específicas para o conector Netezza.

Propriedades do serviço vinculado

O conector Netezza agora suporta a versão 2.0. Consulte esta seção para atualizar sua versão do conector Netezza a partir da versão 1.0. Para obter os detalhes da propriedade, consulte as seções correspondentes.

Versão 2.0

O serviço vinculado Netezza suporta as seguintes propriedades quando aplicar a versão 2.0:

Property Description Required
tipo A propriedade type deve ser definida como Netezza. Yes
versão A versão que especificares. O valor é 2.0. Yes
servidor O nome do host ou o endereço IP do servidor Netezza. Yes
porta O número da porta do listener do servidor. Yes
base de dados Nome do banco de dados Netezza. Yes
uid O ID de usuário usado para se conectar ao banco de dados. Yes
pwd A senha usada para se conectar ao banco de dados. Yes
SecurityLevel O nível de segurança que o driver usa para a conexão com a base de dados.
Exemplo: SecurityLevel=preferredUnSecured. Os valores suportados são:
- Apenas não protegido (onlyUnSecured): O driver não usa SSL.
- Preferido não seguro (preferredUnSecured) (padrão): Se o servidor oferecer uma escolha, o driver não usará SSL, como opção padrão.
No
connectVia O Integration Runtime a usar para ligação ao armazenamento de dados. Saiba mais na seção Pré-requisitos . Só pode utilizar o runtime de integração self-hosted. No

Example

{
    "name": "NetezzaLinkedService",
    "properties": {
        "type": "Netezza",
        "version": "2.0",
        "typeProperties": {
            "server": "<server>",
	        "port": "<port>",
            "database": "<database>",
 		    "uid": "<username>",
		    "pwd": {
                "type": "SecureString",
                "value": "<password>"
             },
		    "securityLevel": "preferredUnSecured"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Versão 1.0

As seguintes propriedades são suportadas para o serviço vinculado Netezza ao aplicar a versão 1.0:

Property Description Required
tipo A propriedade type deve ser definida como Netezza. Yes
connectionString Uma cadeia de ligação ODBC para se conectar ao Netezza.
Também podes colocar palavra-passe no Azure Key Vault e retirar a configuração pwd do cadeia de ligação. Consulte os seguintes exemplos e o artigo Armazenar credenciais no Azure Key Vault para mais detalhes.
Yes
connectVia O Integration Runtime a usar para ligação ao armazenamento de dados. Saiba mais na seção Pré-requisitos . Se não for especificado, o Azure Integration Runtime padrão é usado. No

Um cadeia de ligação típico é Server=<server>;Port=<port>;Database=<database>;UID=<user name>;PWD=<password>. A tabela a seguir descreve mais propriedades que você pode definir:

Property Description Required
SecurityLevel O nível de segurança que o driver usa para a conexão com a base de dados.
Exemplo: SecurityLevel=preferredUnSecured. Os valores suportados são:
- Apenas não protegido (onlyUnSecured): O driver não usa SSL.
- Preferido não seguro (preferredUnSecured) (padrão): Se o servidor oferecer uma escolha, o driver não usará SSL, como opção padrão.
No

Note

O conector não suporta SSLv3, pois é oficialmente preterido pelo Netezza.

Example

{
    "name": "NetezzaLinkedService",
    "properties": {
        "type": "Netezza",
        "typeProperties": {
            "connectionString": "Server=<server>;Port=<port>;Database=<database>;UID=<user name>;PWD=<password>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Exemplo: armazenar a palavra-passe em Azure Key Vault

{
    "name": "NetezzaLinkedService",
    "properties": {
        "type": "Netezza",
        "typeProperties": {
            "connectionString": "Server=<server>;Port=<port>;Database=<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

Esta seção fornece uma lista de propriedades que o conjunto de dados Netezza suporta.

Para obter uma lista completa de seções e propriedades disponíveis para definir conjuntos de dados, consulte Conjuntos de dados.

Para copiar dados do Netezza, defina a propriedade type do conjunto de dados como NetezzaTable. As seguintes propriedades são suportadas:

Property Description Required
tipo A propriedade type do conjunto de dados deve ser definida como: NetezzaTable Yes
esquema Nome do esquema. Não (se "consulta" na fonte da atividade for especificado)
tabela Nome da tabela. Não (se "consulta" na fonte da atividade for especificado)
tableName Nome da tabela com esquema. Esta propriedade é suportada para compatibilidade com versões anteriores. Use schema e table para nova carga de trabalho. Não (se "consulta" na fonte da atividade for especificado)

Example

{
    "name": "NetezzaDataset",
    "properties": {
        "type": "NetezzaTable",
        "linkedServiceName": {
            "referenceName": "<Netezza linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {}
    }
}

Propriedades da Atividade de Cópia

Esta seção fornece uma lista de propriedades que a fonte Netezza suporta.

Para obter uma lista completa de seções e propriedades disponíveis para definir atividades, consulte Pipelines.

Netezza como fonte

Tip

Para carregar dados do Netezza de forma eficiente usando particionamento de dados, saiba mais na seção Cópia paralela do Netezza .

Para copiar dados do Netezza, defina o tipo de origem em Copiar atividade como NetezzaSource. As seguintes propriedades são suportadas na seção fonte da Atividade de Cópia:

Property Description Required
tipo A propriedade type da fonte Copy Activity deve ser definida como NetezzaSource. Yes
consulta Utilize uma consulta SQL personalizada para ler dados. Exemplo: "SELECT * FROM MyTable" Não (se "tableName" estiver especificado no conjunto de dados)
partitionOptions Especifica as opções de particionamento de dados usadas para carregar dados do Netezza.
Os valores permitidos são: Nenhum (padrão), DataSlice, e DynamicRange.
Quando uma opção de partição está habilitada (ou seja, não None), o grau de paralelismo para carregar dados simultaneamente de um banco de dados Netezza é controlado pela configuração parallelCopies na atividade de cópia.
No
partitionSettings Especifique o grupo de configurações para particionamento de dados.
Aplicar quando a opção de partição não for None.
No
partitionColumnName Especifique o nome da coluna de origem do tipo inteiro que será usado pelo particionamento de intervalo para cópia paralela. Se não for especificado, a chave primária da tabela será detetada automaticamente e usada como coluna de partição.
Aplique quando a opção de partição for DynamicRange. Se você usar uma consulta para recuperar os dados de origem, conecte ?AdfRangePartitionColumnName na cláusula WHERE. Consulte o exemplo na seção Cópia paralela do Netezza.
No
partitionUpperBound O valor máximo da coluna de partição para copiar dados para fora.
Aplicar quando a opção de partição for DynamicRange. Se utilizar uma query para recuperar dados de origem, conecte ?AdfRangePartitionUpbound na cláusula WHERE. Para obter um exemplo, consulte a seção Cópia paralela do Netezza .
No
partitionLowerBound O valor mínimo da coluna de partição para copiar dados para fora.
Aplique quando a opção de partição for DynamicRange. Se utilizar uma consulta para recuperar os dados de origem, inclua ?AdfRangePartitionLowbound na cláusula WHERE. Para obter um exemplo, consulte a seção Cópia paralela do Netezza .
No

Example:

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

Cópia paralela de Netezza

O conector Netezza Data Factory fornece particionamento de dados integrado para copiar dados do Netezza em paralelo. Você pode encontrar opções de particionamento de dados na tabela Origem da atividade de cópia.

Captura de ecrã das opções de partição

Quando você habilita a cópia particionada, o serviço executa consultas paralelas na fonte Netezza para carregar dados por partições. O grau paralelo é controlado pela configuração parallelCopies na atividade de cópia. Por exemplo, se você definir parallelCopies como quatro, o serviço simultaneamente gerará e executará quatro consultas com base na opção e nas configurações de partição especificadas, e cada consulta recuperará uma parte dos dados do banco de dados Netezza.

Sugere-se que você habilite a cópia paralela com particionamento de dados, especialmente quando você carrega uma grande quantidade de dados do seu banco de dados Netezza. A seguir estão sugeridas configurações para diferentes cenários. Ao copiar dados para o armazenamento de dados baseado em arquivo, é recomendável gravar em uma pasta como vários arquivos (especifique apenas o nome da pasta), caso em que o desempenho é melhor do que gravar em um único arquivo.

Scenario Configurações sugeridas
Carga completa a partir de uma mesa grande. Opção de partição: Data Slice.

Durante a execução, o serviço particiona automaticamente os dados com base nas fatias de dados internas do Netezza e copia os dados por partições.
Carregue uma grande quantidade de dados usando uma consulta personalizada. Opção de partição: Data Slice.
Consulta: SELECT * FROM <TABLENAME> WHERE mod(datasliceid, ?AdfPartitionCount) = ?AdfDataSliceCondition AND <your_additional_where_clause>.
Durante a execução, o serviço substitui ?AdfPartitionCount (com o número de cópia paralelo definido na atividade de cópia) e ?AdfDataSliceCondition usando a lógica de fatia de partição de dados, e a envia para a Netezza.
Carregue uma grande quantidade de dados usando uma consulta personalizada, incluindo uma coluna de tipo inteiro cujo valor está uniformemente distribuído para facilitar o particionamento por intervalos. Opções de partição: Partição de intervalo dinâmico.
Consulta: SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>.
Coluna de partição: especifique a coluna usada para particionar dados. Você pode particionar a coluna com o tipo de dados inteiro.
Limite superior da partição e limite inferior da partição: especifique se deseja filtrar na coluna da partição para recuperar dados somente entre o intervalo inferior e superior.

Durante a execução, o serviço substitui ?AdfRangePartitionColumnName, ?AdfRangePartitionUpbounde ?AdfRangePartitionLowbound com o nome da coluna real e intervalos de valores para cada partição, e envia para Netezza.
Por exemplo, se a coluna de partição "ID" for definida com o limite inferior como 1 e o limite superior como 80, com cópia paralela definida como 4, o serviço recuperará dados por 4 partições. Os seus IDs situam-se entre [1,20], [21, 40], [41, 60] e [61, 80], respetivamente.

Exemplo: consulta com partição de fatia de dados

"source": {
    "type": "NetezzaSource",
    "query": "SELECT * FROM <TABLENAME> WHERE mod(datasliceid, ?AdfPartitionCount) = ?AdfDataSliceCondition AND <your_additional_where_clause>",
    "partitionOption": "DataSlice"
}

Exemplo: consulta com partição de intervalo dinâmico

"source": {
    "type": "NetezzaSource",
    "query": "SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>",
    "partitionOption": "DynamicRange",
    "partitionSettings": {
        "partitionColumnName": "<dynamic_range_partition_column_name>",
        "partitionUpperBound": "<upper_value_of_partition_column>",
        "partitionLowerBound": "<lower_value_of_partition_column>"
    }
}

Mapeamento de tipo de dados para Netezza

Quando você copia dados do Netezza, os mapeamentos a seguir se aplicam dos tipos de dados do Netezza aos tipos de dados internos usados pelo serviço. Para saber como a atividade de cópia mapeia o esquema de origem e o tipo de dados para o destino, consulte Mapeamentos de esquema e tipo de dados.

Tipo de dados Netezza 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)
BOOLEAN booleano booleano
CHAR String String
VARCHAR String String
NCHAR String String
NVARCHAR String String
DATE Date DateTime
TIMESTAMP DateTime DateTime
TIME Time TimeSpan
INTERVAL Não suportado TimeSpan
TEMPO COM FUSO HORÁRIO String String
NUMERIC(p,s) Decimal Decimal
REAL Single Single
Double Precision Double Double
INTEGER Int32 Int32
BYTEINT Int16 SByte
SMALLINT Int16 Int16
BIGINT Int64 Int64

Propriedades da atividade de consulta

Para saber detalhes sobre as propriedades, verifique Atividade de pesquisa.

Ciclo de vida e atualização do conector Netezza

A tabela a seguir mostra o estágio de liberação e os logs de alteração para diferentes versões do conector Netezza:

Version Fase de lançamento Registo de alterações
Versão 1.0 Removed Não aplicável.
Versão 2.0 Versão GA disponível Apenas suporta o runtime de integração auto-hospedado.

• BYTEINT é lido como tipo de dados Int16.

• DATE é lido como o tipo de dados Date.

• TIME é interpretado como o tipo de dados Time.

• INTERVAL não é suportado.

Atualize o conector Netezza da versão 1.0 para a versão 2.0

  1. Na página Editar serviço vinculado , selecione 2.0 para a versão. Para obter mais informações, consulte Propriedades do serviço vinculado versão 2.0.
  2. O mapeamento de tipo de dados para o serviço vinculado Netezza versão 2.0 é diferente daquele para a versão 1.0. Para saber o mapeamento de tipo de dados mais recente, consulte Mapeamento de tipo de dados para Netezza.
  3. Apenas suporta o runtime de integração auto-hospedado. O runtime de integração com o Azure não é suportado pela versão 2.0.

Para obter uma lista de armazenamentos de dados que a Atividade de Cópia suporta como fontes e coletores, consulte Formatos e armazenamentos de dados suportados.