Inserir dados no armazém de dados

Aplica-se a:✅Armazém no Microsoft Fabric

O warehouse no Microsoft Fabric fornece ferramentas internas de ingestão de dados. Use essas ferramentas para ingerir dados em armazéns de dados em escala, utilizando experiências sem código ou com código.

Escolher uma ferramenta de ingestão de dados

Escolha uma opção de ingestão de dados com base nos seguintes critérios:

  • Use a instrução COPY (Transact-SQL) para operações de ingestão de dados ricas em código. Ele fornece a maior taxa de transferência de ingestão de dados. Use-o quando precisar adicionar ingestão de dados como parte de sua lógica de Transact-SQL.
    • Para começar, consulte Ingestão de dados usando a instrução COPY.
    • O Warehouse também dá suporte à instrução tradicional BULK INSERT, que é um sinônimo para COPY INTO com opções de carregamento clássicas.
    • A instrução COPY no Warehouse dá suporte às fontes de dados das contas de armazenamento do Azure e das pastas do Lakehouse do OneLake.
  • Use pipelines para fluxos de trabalho de ingestão de dados robustos, sem código ou com pouco código, que são executados repetidamente, de acordo com um cronograma ou que envolvem grandes volumes de dados.
    • Para começar, consulte Ingestão de dados em seu Data Warehouse usando pipelines.
    • Usando pipelines, você pode orquestrar fluxos de trabalho robustos para uma experiência completa de ETL (Extrair, Transformar, Carregar). Essa experiência inclui atividades para ajudar a preparar o ambiente de destino, executar instruções Transact-SQL personalizadas, executar pesquisas ou copiar dados de uma fonte para um destino.
  • Use fluxos de dados para uma experiência sem código que permita transformações personalizadas nos dados de origem antes da ingestão.
    • Para começar, consulte Ingestão de dados usando um fluxo de dados.
    • 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.
  • Use a ingestão de T-SQL para experiências ricas em código, a fim de criar novas tabelas ou atualizar as existentes com dados de origem no mesmo workspace ou em armazenamento externo.
    • Para começar, consulte Ingerir dados em seu Warehouse usando o Transact-SQL.
    • Use recursos do Transact-SQL como INSERT...SELECT, SELECT INTO ou CREATE TABLE AS SELECT (CTAS) para ler dados de tabelas que fazem referência a outros armazéns, lakehouses ou bancos de dados espelhados no mesmo workspace. Você também pode usar esses recursos para ler dados da função OPENROWSET que faz referência a arquivos em contas de armazenamento de Azure externas.
    • Você também pode crever consultas entre bancos de dados entre diferentes armazéns em seu workspace Fabric.

Fontes e formatos de dados com suporte

A ingestão de dados para Warehouse no Microsoft Fabric dá suporte a muitos formatos de dados e fontes. Cada opção descrita neste artigo inclui sua própria lista de tipos de conector de dados com suporte e formatos de dados.

Para a ingestão T-SQL, as fontes de dados da tabela devem estar dentro do mesmo espaço de trabalho Microsoft Fabric, e as fontes de dados de arquivo devem estar no Azure Data Lake ou no armazenamento de blobs do Azure. Você pode consultar dados usando a nomenclatura de três partes ou a OPENROWSET função para os dados de origem. As fontes de dados de tabela podem referenciar conjuntos de dados Delta Lake, enquanto OPENROWSET podem referenciar arquivos Parquet, CSV ou JSONL no armazenamento do Azure Data Lake ou do Azure Blob.

Por exemplo, suponha que um workspace tenha dois armazéns, nomeados Inventory e Sales. Uma consulta como a seguinte cria uma nova tabela no Inventory warehouse com o conteúdo de uma tabela no Inventory armazém unida a uma tabela no Sales warehouse e com arquivos externos que contêm informações do cliente:

CREATE TABLE Inventory.dbo.RegionalSalesOrders
AS
SELECT 
    s.SalesOrders,
    i.ProductName,
    c.CustomerName
FROM Sales.dbo.SalesOrders s
JOIN Inventory.dbo.Products i
    ON s.ProductID = i.ProductID
JOIN OPENROWSET( BULK 'abfss://<container>@<storage>.dfs.core.windows.net/<customer-file>.csv' ) AS c
    ON s.CustomerID = c.CustomerID
WHERE s.Region = 'West region';

Note

Ler dados com OPENROWSET pode ser mais lento do que consultar dados de uma tabela. Se você planeja acessar os mesmos dados externos repetidamente, considere ingerê-los em uma tabela dedicada para melhorar o desempenho e a eficiência da consulta.

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

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

Práticas recomendadas

O comando COPY no Warehouse no Microsoft Fabric fornece 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, ele dá suporte apenas ao carregamento de dados de contas de armazenamento externo.

Você também pode usar a linguagem T-SQL para criar uma nova tabela e inserir nela e, em seguida, atualizar e excluir linhas de dados. Você pode inserir dados de qualquer banco de dados no workspace 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 singleton INSERT , pois essa abordagem causa um desempenho ruim em consultas e atualizações. Se você usar instruções singleton INSERT para ingestão de dados consecutivamente, crie uma nova tabela usando CREATE TABLE AS SELECT (CTAS) ou INSERT...SELECT padrões, solte a tabela original e, em seguida, crie sua tabela novamente a partir da tabela que você criou usando CREATE TABLE AS SELECT (CTAS).
    • O descarte da tabela existente afeta o modelo semântico, incluindo todas as medidas personalizadas ou as personalizações que você possa ter feito no modelo semântico.
  • 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 Azure Data Lake Storage (ADLS) Gen2 oferece melhor desempenho do que o Armazenamento de Blobs do Azure (legado). 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 for precedido por inserções de dados, 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 SELECTs após um grande INSERT, atualize as estatísticas das colunas mencionadas em seu SELECT.

Note

Independentemente de como você ingere dados em data warehouses, a tarefa de ingestão de dados otimiza os arquivos parquet que produz usando a otimização de gravação de ordem V. 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 de dados em geral se beneficiam de tempos de leitura reduzidos com essa otimização, ao mesmo tempo garantindo que os arquivos parquet estejam 100% em conformidade com sua especificação de código aberto. Não desabilite a Ordem V, pois ela pode afetar o desempenho de leitura. Para obter mais informações sobre o V-Order, consulte Entender e gerenciar o V-Order para depósito.

Perguntas frequentes sobre ingestão de dados para Fabric Data Warehouse

Quais são as diretrizes de divisão de arquivo para o comando COPY que carrega arquivos CSV compactados?

Considere dividir arquivos CSV grandes, especialmente quando o número de arquivos for pequeno, mas mantenha os arquivos com no mínimo 4 MB cada para melhorar o desempenho.

Quais são as diretrizes de divisão de arquivo para o comando COPY que carrega arquivos Parquet?

Considere dividir arquivos Parquet grandes, especialmente quando o número de arquivos for pequeno.

Há alguma limitação quanto ao número ou ao tamanho dos arquivos?

Não há limitações no número ou tamanho dos arquivos. No entanto, para obter melhor desempenho, use arquivos com pelo menos 4 MB.

Qual método de autenticação o comando COPY usará se eu não especificar uma credencial?

Por padrão, COPY INTO usa o Microsoft Entra ID do usuário em execução.