Ingerir dados no warehouse

Aplica-se a:Warehouse no Microsoft Fabric

O warehouse no Microsoft Fabric oferece ferramentas internas de ingestão de dados que permitem aos usuários ingerir dados em warehouses em escala usando experiências sem código ou com código.

Opções de ingestão de dados

Você pode ingerir dados em um warehouse usando uma das seguintes opções:

  • COPY (Transact-SQL): a instrução COPY oferece ingestão de dados flexível e de alta taxa de transferência de uma conta de armazenamento externa do Azure. Você pode usar a instrução COPY como parte da lógica ETL/ELT existente no código Transact-SQL.
  • Pipelines de dados: os pipelines oferecem uma experiência sem código ou de baixo código para ingestão de dados. Usando pipelines, você pode orquestrar fluxos de trabalho robustos para uma experiência completa de extração, transformação e carregamento (ETL) que inclui atividades para ajudar a preparar o ambiente de destino, executar instruções Transact-SQL personalizadas, executar pesquisas ou copiar dados de uma origem para um destino.
  • Fluxos de dados: uma alternativa aos pipelines, os fluxos de dados permitem uma fácil preparação, limpeza e transformação de dados usando uma experiência sem código.
  • Ingestão entre armazéns: a ingestão de dados de fontes de workspace também é possível. Esse cenário pode ser exigido quando houver a necessidade de criar uma nova tabela com um subconjunto de uma tabela diferente ou como resultado da junção de tabelas diferentes no warehouse e no lakehouse. Para ingestão entre warehouses, além das opções mencionadas, recursos do Transact-SQL, como INSERT... SELECT, SELECT INTO ou CREATE TABLE AS SELECT (CTAS) funcionam entre warehouses dentro do mesmo workspace.

Decidir qual ferramenta de ingestão de dados usar

Para decidir qual opção de ingestão de dados usar, você pode usar os seguintes critérios:

  • Use a instrução COPY (Transact-SQL) para operações de ingestão de dados ricas em código, para obter a maior taxa de transferência de ingestão de dados possível ou quando você precisar adicionar ingestão de dados como parte de uma lógica Transact-SQL. Para obter sintaxe, confira COPY INTO (Transact-SQL).
  • Use pipelines de dados para fluxos de trabalho de ingestão de dados robustos e sem código ou sem código que são executados repetidamente, em um agendamento ou que envolvem grandes volumes de dados. Para obter mais informações, confira Ingerir dados usando pipelines de dados.
  • Use fluxos de dados para uma experiência sem código que permita transformações personalizadas para os dados de origem antes de serem ingeridos. Essas transformações incluem (mas não se limitam a) alterar tipos de dados, adicionar ou remover colunas ou usar funções para produzir colunas calculadas. Para obter mais informações, confira Dataflows.
  • Use a ingestão entre warehouses para experiências ricas em código para criar novas tabelas com dados de origem no mesmo workspace. Para obter mais informações, confira Ingerir dados usando Transact-SQL e Gravar uma consulta entre bancos de dados.

Observação

A instrução COPY no Warehouse dá suporte apenas a fontes de dados em contas de armazenamento do Azure, com autenticação usando Assinatura de Acesso Compartilhado (SAS), Chave de Conta de Armazenamento (SAK) ou contas com acesso público. Para outras limitações, confira COPY (Transact-SQL).

Fontes e formatos de dados com suporte

A ingestão de dados para warehouse no Microsoft Fabric oferece um grande número de formatos de dados e fontes que você pode usar. Cada uma das opções descritas inclui sua própria lista de tipos de conectores de dados e formatos de dados com suporte.

Para ingestão entre armazéns, as fontes de dados devem estar dentro do mesmo workspace do Microsoft Fabric. As consultas podem ser executadas usando a nomenclatura de três partes para os dados de origem.

Por exemplo, suponha que haja dois warehouses chamados Inventário e Vendas em um workspace. Uma consulta como a seguinte cria uma nova tabela no depósito de inventário com o conteúdo de uma tabela no depósito de inventário, unida a uma tabela no depósito de vendas:

CREATE TABLE Inventory.dbo.RegionalSalesOrders
AS
SELECT s.SalesOrders, i.ProductName
FROM Sales.dbo.SalesOrders s
JOIN Inventory.dbo.Products i
WHERE s.ProductID = i.ProductID
    AND s.Region = 'West region'

A instrução COPY (Transact-SQL) atualmente dá suporte aos formatos de arquivo PARQUET e CSV. No momento, há suporte para fontes de dados Azure Data Lake Storage (ADLS) Gen2 e Armazenamento de Blobs do Azure.

Pipelines de dados e fluxos de dados dão suporte a uma ampla variedade de fontes de dados e formatos de dados. Para obter mais informações, confira Pipelines de dados e Fluxos de dados.

Práticas recomendadas

O recurso de comando COPY no Warehouse no Microsoft Fabric usa uma interface simples, flexível e rápida para ingestão de dados de alta taxa de transferência para cargas de trabalho SQL. Na versão atual, damos suporte apenas ao carregamento de dados de contas de armazenamento externas.

Você também pode usar o TSQL para criar uma nova tabela e inserir nela e, em seguida, atualizar e excluir linhas de dados. Os dados podem ser inseridos de qualquer banco de dados no workspace do Microsoft Fabric usando consultas entre bancos de dados. Se você quiser ingerir dados de um Lakehouse para um warehouse, poderá fazer isso com uma consulta entre bancos de dados. Por exemplo:

INSERT INTO MyWarehouseTable
SELECT * FROM MyLakehouse.dbo.MyLakehouseTable;
  • Evite ingerir dados usando instruções INSERT singleton, pois isso causa baixo desempenho em consultas e atualizações. Se instruções INSERT singleton foram usadas para ingestão de dados consecutivamente, recomendamos criar uma nova tabela usando padrões CREATE TABLE AS SELECT (CTAS) ou INSERT... SELECT, remover a tabela original e criar sua tabela novamente a partir da tabela criada usando CREATE TABLE AS SELECT (CTAS) ou INSERT... SELECT.
  • Ao trabalhar com dados externos em arquivos, recomendamos que os arquivos tenham pelo menos 4 MB de tamanho.
  • Para arquivos CSV compactados grandes, considere dividir o arquivo em vários arquivos.
  • O ADLS (Azure Data Lake Storage) Gen2 oferece melhor desempenho do que Armazenamento de Blobs do Azure (herdado). Considere usar uma conta do ADLS Gen2 sempre que possível.
  • Para pipelines executados com frequência, considere isolar sua conta de armazenamento do Azure de outros serviços que possam acessar os mesmos arquivos ao mesmo tempo.
  • As transações explícitas permitem agrupar várias alterações de dados para que elas só fiquem visíveis ao ler uma ou mais tabelas quando a transação for totalmente confirmada. Você também poderá reverter a transação se alguma das alterações falhar.
  • Se um SELECT estiver dentro de uma transação e inserções de dados o precederem, as estatísticas geradas automaticamente poderão ser imprecisas após uma reversão. Estatísticas imprecisas podem levar a planos de consulta e tempos de execução não otimizados. Se você reverter uma transação com SELECT após um grande INSERT, atualize as estatísticas das colunas mencionadas em seu SELECT.

Observação

Independentemente de como você ingere dados em armazéns, os arquivos parquet produzidos pela tarefa de ingestão de dados serão otimizados usando a otimização de gravação V-Order. O V-Order otimiza arquivos parquet para permitir leituras ultrarrápidas nos mecanismos de computação do Microsoft Fabric, como Power BI, SQL, Spark e outros. As consultas de armazém em geral se beneficiam de tempos de leitura mais rápidos para consultas com essa otimização, garantindo ainda que os arquivos parquet sejam 100% compatíveis com sua especificação de código aberto. Ao contrário do Fabric Data Engineering, o V-Order é uma configuração global no data warehouse do Synapse que não pode ser desabilitada.