Ingerir dados no seu Armazém usando a instrução COPY
Aplica-se a:✅ Armazém no Microsoft Fabric
A instrução COPY é a principal maneira de ingerir dados em tabelas de depósito. O COPY executa a ingestão de dados de alta taxa de transferência de uma conta de armazenamento externa do Azure, com a flexibilidade de configurar opções de formato de arquivo de origem, um local para armazenar linhas rejeitadas, ignorar linhas de cabeçalho e outras opções.
Este tutorial mostra exemplos de ingestão de dados para uma tabela Warehouse usando a instrução T-SQL COPY. Ele usa os dados de exemplo do Bing COVID-19 dos Conjuntos de Dados Abertos do Azure. Para obter detalhes sobre esses dados, incluindo seu esquema e direitos de uso, consulte Bing COVID-19.
Nota
Para saber mais sobre a instrução T-SQL COPY, incluindo mais exemplos e a sintaxe completa, consulte COPY (Transact-SQL).
Criar uma tabela
Antes de usar a instrução COPY, a tabela de destino precisa ser criada. Para criar a tabela de destino para este exemplo, use as seguintes etapas:
No espaço de trabalho do Microsoft Fabric, localize e abra seu depósito.
Alterne para a guia Página Inicial e selecione Nova consulta SQL.
Para criar a tabela usada como destino neste tutorial, execute o seguinte código:
CREATE TABLE [dbo].[bing_covid-19_data] ( [id] [int] NULL, [updated] [date] NULL, [confirmed] [int] NULL, [confirmed_change] [int] NULL, [deaths] [int] NULL, [deaths_change] [int] NULL, [recovered] [int] NULL, [recovered_change] [int] NULL, [latitude] [float] NULL, [longitude] [float] NULL, [iso2] [varchar](8000) NULL, [iso3] [varchar](8000) NULL, [country_region] [varchar](8000) NULL, [admin_region_1] [varchar](8000) NULL, [iso_subdivision] [varchar](8000) NULL, [admin_region_2] [varchar](8000) NULL, [load_time] [datetime2](6) NULL );
Ingerir dados do Parquet usando a declaração COPY
No primeiro exemplo, carregamos dados usando uma fonte Parquet. Como esses dados estão disponíveis publicamente e não exigem autenticação, você pode copiar facilmente esses dados especificando a origem e o destino. Não são necessários detalhes de autenticação. Você só precisará especificar o FILE_TYPE
argumento.
Use o código a seguir para executar a instrução COPY com uma fonte Parquet:
COPY INTO [dbo].[bing_covid-19_data]
FROM 'https://pandemicdatalake.blob.core.windows.net/public/curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.parquet'
WITH (
FILE_TYPE = 'PARQUET'
);
Ingerir dados CSV usando a instrução COPY e ignorando uma linha de cabeçalho
É comum que os arquivos CSV (valores separados por vírgula) tenham uma linha de cabeçalho que forneça os nomes das colunas que representam a tabela em um arquivo CSV. A instrução COPY pode copiar dados de arquivos CSV e ignorar uma ou mais linhas do cabeçalho do arquivo de origem.
Se você executou o exemplo anterior para carregar dados do Parquet, considere excluir todos os dados da tabela:
DELETE FROM [dbo].[bing_covid-19_data];
Para carregar dados de um arquivo CSV ignorando uma linha de cabeçalho, use o seguinte código:
COPY INTO [dbo].[bing_covid-19_data]
FROM 'https://pandemicdatalake.blob.core.windows.net/public/curated/covid-19/bing_covid-19_data/latest/bing_covid-19_data.csv'
WITH (
FILE_TYPE = 'CSV',
FIRSTROW = 2
);
Verificar os resultados
A instrução COPY é concluída ingerindo 4.766.736 linhas na nova tabela. Você pode confirmar que a operação foi executada com êxito executando uma consulta que retorna o número total de linhas na tabela:
SELECT COUNT(*) FROM [dbo].[bing_covid-19_data];
Se você executou ambos os exemplos sem excluir as linhas entre as execuções, verá o resultado dessa consulta com o dobro de linhas. Embora isso funcione para a ingestão de dados neste caso, considere excluir todas as linhas e ingerir dados apenas uma vez se você for experimentar ainda mais esses dados.