Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
APLICA-SE A:
Azure Data Factory
Azure Synapse Analytics
Dica
Data Factory no Microsoft Fabric é a próxima geração de Azure Data Factory, com uma arquitetura mais simples, IA interna e novos recursos. Se você não estiver familiarizado com a integração de dados, comece com Fabric Data Factory. As cargas de trabalho existentes do ADF podem ser atualizadas para Fabric para acessar novos recursos em ciência de dados, análise em tempo real e relatórios.
Para copiar dados de um data warehouse no Oracle Server, Netezza, Teradata ou SQL Server para Azure Synapse Analytics, você precisa carregar grandes quantidades de dados de várias tabelas. Normalmente, os dados precisam ser particionados em cada tabela para que seja possível carregar linhas com vários threads paralelamente de uma só tabela. Este artigo descreve um modelo a ser usado nesses cenários.
Observação
Se você quiser copiar dados de um pequeno número de tabelas com volume de dados relativamente pequeno para Azure Synapse Analytics, é mais eficiente usar a ferramenta Azure Data Factory Copiar Dados. O modelo descrito neste artigo é mais do que o necessário para esse cenário.
Sobre o modelo de solução
Este modelo recupera uma lista de partições do banco de dados de origem para copiar de uma tabela de controle externa. Em seguida, ele itera sobre cada partição no banco de dados de origem e copia os dados para o banco de dados de destino.
O modelo contém três atividades:
- Lookup obtém a lista de certas partições do banco de dados a partir de uma tabela de controle externa.
- ForEach obtém a lista de partições da atividade Pesquisa e itera cada partição para o atividade Copy.
- Copy copia cada partição do armazenamento de banco de dados de origem para o de destino.
O modelo define os seguintes parâmetros:
- Control_Table_Name é a tabela de controle externa, que armazena a lista de partições do banco de dados de origem.
- Control_Table_Schema_PartitionID é o nome da coluna em sua tabela de controle externa que armazena cada ID da partição. Verifique se a ID da partição é exclusiva para cada partição no banco de dados de origem.
- Control_Table_Schema_SourceTableName é a tabela de controle externa que armazena cada nome de tabela do banco de dados de origem.
- Control_Table_Schema_FilterQuery é o nome da coluna em sua tabela de controle externa que armazena a consulta de filtro a fim de obter os dados de cada partição no banco de dados de origem. Por exemplo, se você particionou os dados por ano, a consulta armazenada em cada linha pode ser semelhante a ‘select * from datasource where LastModifytime >= ''2015-01-01 00:00:00'' and LastModifytime <= ''2015-12-31 23:59:59.999'''.
- Data_Destination_Folder_Path é o caminho em que os dados são copiados para o repositório de destino (aplicável quando o destino escolhido é "Sistema de Arquivos" ou "Azure Data Lake Storage Gen1").
- Data_Destination_Container é o caminho da pasta raiz para a qual os dados são copiados em seu armazenamento de destino.
- Data_Destination_Directory é o caminho do diretório na raiz onde os dados são copiados para o armazenamento de destino.
Os últimos três parâmetros que definem o caminho no armazenamento de destino ficam visíveis apenas quando o destino escolhido é um armazenamento baseado em arquivos. Se você escolher "Azure Synapse Analytics" como o repositório de destino, esses parâmetros não serão necessários. Mas os nomes de tabela e o esquema em Azure Synapse Analytics devem ser iguais aos do banco de dados de origem.
Como usar este modelo de solução
Crie uma tabela de controle em SQL Server ou Banco de Dados SQL do Azure para armazenar a lista de partições do banco de dados de origem para cópia em massa. No exemplo a seguir, há cinco partições no banco de dados de origem. Três partições são para datasource_table e duas são para project_table. A coluna LastModifytime é usada para particionar os dados na tabela datasource_table do banco de dados de origem. A consulta usada para ler a primeira partição é 'select * from datasource_table where LastModifytime >= ''2015-01-01 00:00:00'' and LastModifytime <= ''2015-12-31 23:59:59.999'''. Você pode usar uma consulta semelhante para ler dados de outras partições.
Create table ControlTableForTemplate ( PartitionID int, SourceTableName varchar(255), FilterQuery varchar(255) ); INSERT INTO ControlTableForTemplate (PartitionID, SourceTableName, FilterQuery) VALUES (1, 'datasource_table','select * from datasource_table where LastModifytime >= ''2015-01-01 00:00:00'' and LastModifytime <= ''2015-12-31 23:59:59.999'''), (2, 'datasource_table','select * from datasource_table where LastModifytime >= ''2016-01-01 00:00:00'' and LastModifytime <= ''2016-12-31 23:59:59.999'''), (3, 'datasource_table','select * from datasource_table where LastModifytime >= ''2017-01-01 00:00:00'' and LastModifytime <= ''2017-12-31 23:59:59.999'''), (4, 'project_table','select * from project_table where ID >= 0 and ID < 1000'), (5, 'project_table','select * from project_table where ID >= 1000 and ID < 2000');Vá até o modelo Cópia em massa do banco de dados. Crie uma Nova conexão com a tabela de controle externa criada na etapa 1.
Crie uma Nova Conexão com o banco de dados de origem do qual você está copiando dados.
Crie uma Nova conexão com o armazenamento de dados de destino para o qual você está copiando os dados.
Selecione Usar este modelo.
Você verá o pipeline, conforme mostrado no seguinte exemplo:
Selecione Depurar, insira os Parâmetros e, em seguida, selecione Concluir.
Você vê resultados semelhantes ao exemplo a seguir:
(Opcional) Se você escolheu "Azure Synapse Analytics" como o destino de dados, deverá inserir uma conexão com o Azure Blob Storage para preparo, conforme exigido pelo Azure Synapse Analytics Polybase. O modelo gera automaticamente um caminho de contêiner para o Blob Storage. Verifique se o contêiner foi criado após a execução do pipeline.