Copiar dados do Netezza utilizando o Azure Data Factory ou o 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 tudo-em-um 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 avaliação gratuita!
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 em Atividade Copy, que apresenta uma visão geral da atividade Copy.
Dica
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.
Funcionalidades com suporte
Há suporte para o conector do Netezza para as seguintes funcionalidades:
Funcionalidades com suporte | IR |
---|---|
Atividade de cópia (origem/-) | ① ② |
Atividade de pesquisa | ① ② |
① Runtime de integração do Azure ② Runtime de integração auto-hospedada
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.
O conector do Netezza dá suporte à cópia paralela da origem. Confira a seção Cópia paralela do Netezza para obter detalhes.
O serviço fornece um driver interno para habilitar a conectividade. Você não precisa instalar manualmente nenhum driver para usar este 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
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.
Navegue até a guia Gerenciar no workspace do Azure Data Factory ou do Synapse e selecione Serviços Vinculados, em seguida, clique em Novo:
Procure Netezza e escolha o conector do Netezza.
Configure os detalhes do serviço, teste a conexão e crie o novo serviço vinculado.
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
As seguintes propriedades são suportadas para o serviço vinculado do Netezza:
Propriedade | Descrição | Obrigatório |
---|---|---|
type | O tipo propriedade deve ser definida como Netezza. | Sim |
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. |
Sim |
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. | Não |
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:
Propriedade | Descrição | Obrigatório |
---|---|---|
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. |
Não |
Exemplo
{
"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:
Propriedade | Descrição | Obrigatório |
---|---|---|
type | A propriedade type do conjunto de dados deve ser definida como: NetezzaTable | 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) |
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) |
Exemplo
{
"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
Dica
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:
Propriedade | Descrição | Obrigatório |
---|---|---|
type | A propriedade tipo da origem da Atividade de Cópia deve ser configurada para NetezzaSource. | Sim |
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. |
Não |
partitionSettings | Especifique o grupo de configurações para o particionamento de dados. Aplicar quando a opção de partição não for None . |
Não |
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. |
Não |
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. |
Não |
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. |
Não |
Exemplo:
"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.
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 obter um desempenho melhor do que gravar em um arquivo.
Cenário | 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>"
}
}
Pesquisar propriedades de atividades
Para saber detalhes sobre as propriedades, verifique Pesquisar atividade.
Conteúdo relacionado
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.