Ingerir dados em seu Warehouse usando a instrução COPY
Aplica-se a:✅Warehouse no Microsoft Fabric
A instrução COPY é a principal maneira de ingerir dados em tabelas do Warehouse. 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, ignorando linhas de cabeçalho e outras opções.
Este tutorial mostra exemplos de ingestão de dados para uma tabela do Warehouse usando a instrução T-SQL COPY. Ele usa os dados do exemplo da COVID-19 do Bing dos Conjunto de Dados em Aberto no Azure. Para obter detalhes sobre esses dados, incluindo seus direitos de esquema e uso, consulte COVID-19 do Bing.
Observação
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 workspace do Microsoft Fabric, localize e abra o warehouse.
Alterne para a guia Início e selecione Nova consulta SQL.
Para criar a tabela usada como destino nesse 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 Parquet por meio da instrução COPY
No primeiro exemplo, carregamos dados usando uma fonte Parquet. Como esses dados está disponível publicamente e não requer autenticação, você pode copiar facilmente esses dados especificando a origem e o destino. Nenhum detalhe de autenticação é necessário. Você só precisará especificar o argumento FILE_TYPE
.
Use o seguinte código 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 arquivos CSV (valores separados por vírgula) tenham uma linha de cabeçalho que forneça os nomes de coluna 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 em sua nova tabela. Você pode confirmar se a operação foi executada com êxito executando uma consulta que retorna o número total de linhas em sua tabela:
SELECT COUNT(*) FROM [dbo].[bing_covid-19_data];
Se você executou os dois exemplos sem excluir as linhas entre as execuções, verá o resultado dessa consulta com o dobro de linhas. Embora isso funcione para ingestão de dados nesse caso, considere excluir todas as linhas e ingerir dados apenas uma vez se você pretende fazer mais experimentos com esses dados.