Tutorial: Consultar o HDFS em um cluster de Big Data do SQL Server
Aplica-se a: SQL Server 2019 (15.x)
Importante
O complemento Clusters de Big Data do Microsoft SQL Server 2019 será desativado. O suporte para Clusters de Big Data do SQL Server 2019 será encerrado em 28 de fevereiro de 2025. Todos os usuários existentes do SQL Server 2019 com Software Assurance terão suporte total na plataforma e o software continuará a ser mantido por meio de atualizações cumulativas do SQL Server até esse momento. Para obter mais informações, confira a postagem no blog de anúncio e as opções de Big Data na plataforma do Microsoft SQL Server.
Este tutorial demonstra como consultar dados do HDFS em um Clusters de Big Data do SQL Server 2019.
Neste tutorial, você aprenderá como:
- Criar uma tabela externa apontando para os dados do HDFS em um cluster de Big Data.
- Unir esses dados com os dados de alto valor na instância mestre.
Dica
Se preferir, você poderá baixar e executar um script para os comandos neste tutorial. Para obter instruções, confira os Exemplos de virtualização de dados no GitHub.
Este vídeo de 7 minutos orienta você pela consulta de dados do HDFS em um cluster de Big Data:
Pré-requisitos
- Ferramentas de Big Data
- kubectl
- Azure Data Studio
- Extensão do SQL Server 2019
- Carregar dados de exemplo em seu cluster de Big Data
Criar uma tabela externa no HDFS
O pool de armazenamento contém dados de cliques da Web em um arquivo CSV armazenado no HDFS. Use as etapas a seguir para definir uma tabela externa que pode acessar os dados nesse arquivo.
No Azure Data Studio, conecte-se à instância mestre do SQL Server do cluster de Big Data. Para obter mais informações, confira Conectar-se à instância mestre do SQL Server.
Clique duas vezes na conexão na janela Servidores para mostrar o painel do servidor da instância mestre do SQL Server. Selecione Nova Consulta.
Execute o seguinte comando Transact-SQL para alterar o contexto para o banco de dados Vendas na instância mestre.
USE Sales GO
Defina o formato do arquivo CSV a ser lido no HDFS. Pressione F5 para executar a instrução.
CREATE EXTERNAL FILE FORMAT csv_file WITH ( FORMAT_TYPE = DELIMITEDTEXT, FORMAT_OPTIONS( FIELD_TERMINATOR = ',', STRING_DELIMITER = '"', FIRST_ROW = 2, USE_TYPE_DEFAULT = TRUE) );
Crie uma fonte de dados externos para o pool de armazenamento se ela ainda não existir.
IF NOT EXISTS(SELECT * FROM sys.external_data_sources WHERE name = 'SqlStoragePool') BEGIN CREATE EXTERNAL DATA SOURCE SqlStoragePool WITH (LOCATION = 'sqlhdfs://controller-svc/default'); END
Crie uma tabela externa que possa ler o
/clickstream_data
do pool de armazenamento. O SqlStoragePool pode ser acessado da instância mestre de um cluster de Big Data.CREATE EXTERNAL TABLE [web_clickstreams_hdfs] ("wcs_click_date_sk" BIGINT , "wcs_click_time_sk" BIGINT , "wcs_sales_sk" BIGINT , "wcs_item_sk" BIGINT , "wcs_web_page_sk" BIGINT , "wcs_user_sk" BIGINT) WITH ( DATA_SOURCE = SqlStoragePool, LOCATION = '/clickstream_data', FILE_FORMAT = csv_file ); GO
Consultar os dados
Execute a consulta a seguir para unir os dados do HDFS na tabela externa web_clickstream_hdfs
com os dados relacionais no banco de dados Sales
local.
SELECT
wcs_user_sk,
SUM( CASE WHEN i_category = 'Books' THEN 1 ELSE 0 END) AS book_category_clicks,
SUM( CASE WHEN i_category_id = 1 THEN 1 ELSE 0 END) AS [Home & Kitchen],
SUM( CASE WHEN i_category_id = 2 THEN 1 ELSE 0 END) AS [Music],
SUM( CASE WHEN i_category_id = 3 THEN 1 ELSE 0 END) AS [Books],
SUM( CASE WHEN i_category_id = 4 THEN 1 ELSE 0 END) AS [Clothing & Accessories],
SUM( CASE WHEN i_category_id = 5 THEN 1 ELSE 0 END) AS [Electronics],
SUM( CASE WHEN i_category_id = 6 THEN 1 ELSE 0 END) AS [Tools & Home Improvement],
SUM( CASE WHEN i_category_id = 7 THEN 1 ELSE 0 END) AS [Toys & Games],
SUM( CASE WHEN i_category_id = 8 THEN 1 ELSE 0 END) AS [Movies & TV],
SUM( CASE WHEN i_category_id = 9 THEN 1 ELSE 0 END) AS [Sports & Outdoors]
FROM [dbo].[web_clickstreams_hdfs]
INNER JOIN item it ON (wcs_item_sk = i_item_sk
AND wcs_user_sk IS NOT NULL)
GROUP BY wcs_user_sk;
GO
Limpar
Use o comando a seguir para remover a tabela externa usada neste tutorial.
DROP EXTERNAL TABLE [dbo].[web_clickstreams_hdfs];
GO
Próximas etapas
Avance para o próximo artigo para saber como consultar o Oracle de um cluster de Big Data.