Compartilhar via


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

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Tip

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 Netezza. O artigo se baseia na Atividade de Cópia, que apresenta uma visão geral da Atividade de Cópia.

Tip

Para o cenário de migração de dados do Netezza para o Azure, saiba mais em Migrar dados do servidor do Netezza local para o Azure.

Important

O conector Netezza versão 1.0 está no estágio de remoção. É recomendável atualizar o conector do Netezza da versão 1.0 para a 2.0.

Capacidades suportadas

Há suporte para o conector do Netezza para as seguintes funcionalidades:

Capacidades suportadas IR
Atividade de cópia (origem/-) ① (somente para a versão 1.0) ②
Atividade de pesquisa ① (somente para a versão 1.0) ②

① 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 que o Copy Activity suporta como fontes e coletores, consulte Armazenamentos de dados e formatos compatíveis.

Esse conector Netezza suporta:

  • Cópia paralela da fonte. Confira 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. Você não precisa instalar manualmente nenhum driver para usar este conector.

Para a versão 2.0, você precisa instalar um driver ODBC IBM Netezza manualmente. Para a versão 1.0, o serviço fornece um driver interno para habilitar a conectividade. Você não precisa instalar manualmente nenhum driver para usar este conector.

Prerequisites

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.

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.

Para a versão 1.0

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 a IPs aprovados nas regras de firewall, você poderá adicionar IPs do Azure Integration Runtime à lista de permitidos.

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.

Instalar o driver ODBC do Netezza para a versão 2.0

Para usar o conector do Netezza com a versão 2.0, instale o driver ODBC do IBM Netezza versão 11.02.02 ou superior no computador que executa o runtime de Integração auto-hospedada.

Introdução

Você pode criar um pipeline que usa uma atividade de cópia usando o SDK do .NET, o SDK do Python, o Azure PowerShell, a API REST ou um modelo do Azure Resource Manager. Confira o Tutorial de Atividade de Cópia para obter instruções passo a passo sobre a criação de um pipeline com uma atividade de cópia.

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

Use as etapas a seguir para criar um serviço vinculado ao Netezza 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. Procure Netezza e escolha o conector do Netezza.

    Captura de tela do conector do 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 ao Netezza.

Detalhes da configuração do conector

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

Propriedades do serviço vinculado

O conector do Netezza agora dá suporte à versão 2.0. Consulte esta seção para atualizar a versão do conector do Netezza 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 Netezza dá suporte às seguintes propriedades ao aplicar a versão 2.0:

Property Description Required
tipo O tipo propriedade deve ser definida como Netezza. Yes
versão A versão que você especifica. 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 ouvinte do servidor. Yes
banco de dados Nome do banco de dados Netezza. Yes
uid A ID do usuário usada 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 usa o driver para a conexão ao armazenamento de dados.
Exemplo: SecurityLevel=preferredUnSecured. Os valores com suporte são:
- Apenas inseguro (onlyUnSecured): o driver não usa SSL.
- Preferencialmente não segura (preferredUnSecured) (padrão): se o servidor fornece uma opção, o driver não usa SSL.
No
connectVia O runtime de integração a ser usado para se conectar ao armazenamento de dados. Saiba mais na seção Pré-requisitos. Você só pode usar o runtime de integração auto-hospedada. 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 propriedades a seguir são suportadas para o serviço vinculado do Netezza quando se aplica a versão 1.0:

Property Description Required
tipo O tipo propriedade deve ser definida como Netezza. Yes
connectionString Uma cadeia de conexão ODBC para conectar-se ao Netezza.
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.
Yes
connectVia O runtime de integração a ser usado para se conectar ao armazenamento de dados. Saiba mais na seção Pré-requisitos. Se não especificado, o Azure Integration Runtime padrão será usado. No

Uma cadeia de conexão válida é Server=<server>;Port=<port>;Database=<database>;UID=<user name>;PWD=<password>. A tabela a seguir descreve as propriedades mais que você pode definir:

Property Description Required
SecurityLevel O nível de segurança que usa o driver para a conexão ao armazenamento de dados.
Exemplo: SecurityLevel=preferredUnSecured. Os valores com suporte são:
- Apenas inseguro (onlyUnSecured): o driver não usa SSL.
- Preferencialmente não segura (preferredUnSecured) (padrão): se o servidor fornece uma opção, o driver não usa SSL.
No

Note

O conector não suporta SSLv3, pois ele foi oficialmente descontinuado pela 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 senha no 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 do Netezza suporta.

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

Para copiar dados do Netezza, defina as tipo propriedade do conjunto de dados como NetezzaTable. Há suporte para as seguintes propriedades:

Property Description Required
tipo A propriedade type do conjunto de dados deve ser definida como: NetezzaTable Yes
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)
tableName 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)

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

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

Netezza como fonte

Tip

Para carregar dados do Netezza com eficiência usando o particionamento de dados, saiba mais na seção Cópia paralela do Netezza.

Para copiar dados do Netezza, defina as fonte tipo de atividade de cópia para NetezzaSource. As seguintes propriedades são suportadas na seção source da atividade de cópia:

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

O conector do Netezza Data Factory fornece particionamento de dados interno 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 tela das opções de partição

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

É recomendável habilitar a cópia paralela com o particionamento de dados, especialmente quando você carrega grandes quantidades de dados do banco de dados Netezza. Veja a seguir as configurações sugeridas para cenários diferentes. Ao copiar dados para o armazenamento de dados baseado em arquivo, recomendamos gravá-los em uma pasta como vários arquivos (apenas especifique o nome da pasta) para ter um desempenho melhor do que gravar em um arquivo.

Scenario Configurações sugeridas
Carga completa de uma tabela grande. Opção de partição: Fatia de dados.

Durante a execução, o serviço particiona automaticamente os dados com base nas fatias de dados internas do Netezza e copiam os dados por partições.
Carregue uma grande quantidade de dados usando uma consulta personalizada. Opção de partição: Fatia de dados.
Consulta: SELECT * FROM <TABLENAME> WHERE mod(datasliceid, ?AdfPartitionCount) = ?AdfDataSliceCondition AND <your_additional_where_clause>.
Durante a execução, o serviço substitui ?AdfPartitionCount (com número de cópia paralela definido na atividade de cópia) e ?AdfDataSliceCondition pela lógica de partição da fatia de dados e envia para o Netezza.
Carregue uma grande quantidade de dados usando uma consulta personalizada, tendo uma coluna de inteiros com valor distribuído uniformemente para o particionamento de intervalo. 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 em relação à coluna com tipo de dados Integer.
Limite superior da partição e Limite inferior da partição: especifique se deseja filtrar a coluna de partição para recuperar dados somente entre os intervalos inferior e superior.

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

Exemplo: consulta com a partição da 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 a partição do 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 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 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 Sem suporte TimeSpan
TIME WITH TIME ZONE String String
NUMERIC(p,s) Decimal Decimal
REAL Single Single
Dupla precisão Double Double
INTEGER Int32 Int32
BYTEINT Int16 SByte
SMALLINT Int16 Int16
BIGINT Int64 Int64

Pesquisar propriedades de atividade

Para saber detalhes sobre as propriedades, verifique Pesquisar atividade.

Ciclo de vida e atualização do conector do Netezza

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

Version Fase de liberação Log de alterações
Versão 1.0 Removed Não aplicável.
Versão 2.0 Versão GA disponível • Dá suporte apenas ao runtime de integração auto-hospedada.

• BYTEINT é lido como tipo de dados Int16.

• DATA é lida como o tipo de dados de data.

• TIME é lido como tipo de dados tempo.

• Não há suporte para INTERVAL.

Atualizar o conector do 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 as propriedades da versão 2.0 do serviço vinculado.
  2. O mapeamento de tipo de dados para o serviço vinculado netezza 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 Netezza.
  3. Dá suporte apenas ao runtime de integração auto-hospedada. Não há suporte para o Azure Integration Runtime na versão 2.0.

Para obter uma lista de armazenamentos de dados que o Copy Activity suporta como fontes e coletores, consulte Armazenamentos de dados e formatos compatíveis.