Share via


Ingerir dados no Armazém

Aplica-se a: Armazém no Microsoft Fabric

O Warehouse in Microsoft Fabric oferece ferramentas integradas de ingestão de dados que permitem aos usuários ingerir dados em armazéns em escala usando experiências livres de código ou ricas em código.

Opções de ingestão de dados

Você pode ingerir dados em um depósito 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 de sua lógica ETL/ELT existente no código Transact-SQL.
  • Pipelines de dados: os pipelines oferecem uma experiência livre de código ou low-code para ingestão de dados. Usando pipelines, você pode orquestrar fluxos de trabalho robustos para uma experiência completa de Extrair, Transformar, Carregar (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 fácil preparação, limpeza e transformação de dados usando uma experiência livre de código.
  • Ingestão entre armazéns: a ingestão de dados de fontes de espaço de trabalho também é possível. Este cenário pode ser necessário quando há a necessidade de criar uma nova tabela com um subconjunto de uma tabela diferente, ou como resultado da junção de tabelas diferentes no armazém e na casa do lago. Para ingestão entre armazéns, além das opções mencionadas, os recursos do Transact-SQL, como INSERT... SELECT, SELECT INTO ou CREATE TABLE AS SELECT (CTAS) trabalham entre armazéns dentro do mesmo espaço de trabalho.

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 precisar adicionar ingestão de dados como parte de uma lógica Transact-SQL. Para sintaxe, consulte COPY INTO (Transact-SQL).
  • Use pipelines de dados para fluxos de trabalho robustos de ingestão de dados sem código ou low-code que são executados repetidamente, em uma programação ou que envolvem grandes volumes de dados. Para obter mais informações, consulte Ingerir dados usando pipelines de dados.
  • Use fluxos de dados para uma experiência livre de código que permita transformações personalizadas para dados de origem antes que eles sejam ingeridos. Essas transformações incluem (mas não estão limitadas a) alterar tipos de dados, adicionar ou remover colunas ou usar funções para produzir colunas calculadas. Para obter mais informações, consulte Fluxos de dados.
  • Use a ingestão entre armazéns para experiências ricas em código para criar novas tabelas com dados de origem no mesmo espaço de trabalho. Para obter mais informações, consulte Ingerir dados usando Transact-SQL e Gravar uma consulta entre bancos de dados.

Nota

A instrução COPY no Warehouse suporta apenas fontes de dados em contas de armazenamento do Azure, as fontes OneLake não são suportadas no momento.

Formatos e fontes de dados suportados

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

Para ingestão entre depósitos, as fontes de dados devem estar dentro do mesmo espaço de trabalho do Microsoft Fabric. As consultas podem ser realizadas usando nomenclatura de três partes para os dados de origem.

Como exemplo, suponha que haja dois armazéns chamados Estoque e Vendas em um espaço de trabalho. Uma consulta como a seguinte cria uma nova tabela no armazém de inventário com o conteúdo de uma tabela no armazém de inventário, unida a uma tabela no armazém 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 suporta os formatos de arquivo PARQUET e CSV. Para fontes de dados, atualmente o Azure Data Lake Storage (ADLS) Gen2 e o Azure Blob Storage são suportados.

Os pipelines e fluxos de dados suportam uma ampla variedade de fontes de dados e formatos de dados. Para obter mais informações, consulte Pipelines de dados e fluxos de dados.

Melhores práticas

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, suportamos o carregamento de dados apenas de contas de armazenamento externas.

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

INSERT INTO MyWarehouseTable
SELECT * FROM MyLakehouse.dbo.MyLakehouseTable;
  • Evite ingerir dados usando instruções INSERT singleton, pois isso causa um desempenho ruim em consultas e atualizações. Se instruções singleton INSERT foram usadas para ingestão de dados consecutivamente, recomendamos criar uma nova tabela usando CREATE TABLE AS SELECT (CTAS) ou INSERT... SELECT patterns, soltando a tabela original e, em seguida, criando sua tabela novamente a partir da tabela que você criou usando CREATE TABLE AS SELECT (CTAS).
    • Remover a tabela existente afeta seu modelo semântico, incluindo quaisquer medidas personalizadas ou personalizações que você possa ter feito no modelo semântico.
  • Ao trabalhar com dados externos em ficheiros, recomendamos que os ficheiros 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 Azure Blob Storage (legado). Considere usar uma conta ADLS Gen2 sempre que possível.
  • Para pipelines que são 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 estiver totalmente confirmada. Você também tem a capacidade de reverter a transação se alguma das alterações falhar.
  • Se um SELECT estiver dentro de uma transação e tiver sido precedido por inserções de dados, as estatísticas geradas automaticamente podem 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 INSERT grande, atualize as estatísticas para as colunas mencionadas em seu SELECT.

Nota

Independentemente de como você ingere dados em armazéns, os arquivos de 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 de 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, ainda garantindo que os arquivos de 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 Synapse Data Warehouse que não pode ser desabilitada.