Tutorial: Mengkueri HDFS dalam kluster big data SQL Server

Berlaku untuk: SQL Server 2019 (15.x)

Penting

Add-on Kluster Big Data Microsoft SQL Server 2019 akan dihentikan. Dukungan untuk Kluster Big Data SQL Server 2019 akan berakhir pada 28 Februari 2025. Semua pengguna SQL Server 2019 yang ada dengan Jaminan Perangkat Lunak akan didukung penuh pada platform dan perangkat lunak akan terus dipertahankan melalui pembaruan kumulatif SQL Server hingga saat itu. Untuk informasi selengkapnya, lihat posting blog pengumuman dan opsi Big data di platform Microsoft SQL Server.

Tutorial ini menunjukkan cara Mengkueri data HDFS dalam Kluster Big Data SQL Server 2019.

Dalam tutorial ini, Anda akan mempelajari cara:

  • Buat tabel eksternal yang menunjuk ke data HDFS dalam kluster big data.
  • Gabungkan data ini dengan data bernilai tinggi dalam instans master.

Tip

Jika mau, Anda dapat mengunduh dan menjalankan skrip untuk perintah dalam tutorial ini. Untuk mengetahui petunjuknya, lihat Sampel virtualisasi data di GitHub.

Video 7 menit ini memancang Anda melalui kueri data HDFS dalam kluster big data:

Prasyarat

Membuat tabel eksternal ke HDFS

Kumpulan penyimpanan berisi data aliran klik web dalam file CSV yang disimpan dalam HDFS. Gunakan langkah-langkah berikut untuk menentukan tabel eksternal yang bisa mengakses data dalam file tersebut.

  1. Di Azure Data Studio, sambungkan ke instans master SQL Server kluster big data Anda. Untuk informasi selengkapnya, lihat Menyambungkan ke instans master SQL Server.

  2. Klik dua kali pada koneksi di jendela Server untuk menampilkan dasbor server untuk instans master SQL Server. Pilih Kueri Baru.

    SQL Server kueri instans master

  3. Jalankan perintah Transact-SQL berikut untuk mengubah konteks ke database Penjualan dalam instans master.

    USE Sales
    GO
    
  4. Tentukan format file CSV untuk dibaca dari HDFS. Tekan F5 untuk menjalankan pernyataan.

    CREATE EXTERNAL FILE FORMAT csv_file
    WITH (
        FORMAT_TYPE = DELIMITEDTEXT,
        FORMAT_OPTIONS(
            FIELD_TERMINATOR = ',',
            STRING_DELIMITER = '"',
            FIRST_ROW = 2,
            USE_TYPE_DEFAULT = TRUE)
    );
    
  5. Buat sumber data eksternal ke kumpulan penyimpanan jika belum ada.

    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
    
  6. Buat tabel eksternal yang dapat membaca /clickstream_data dari kumpulan penyimpanan. SqlStoragePool dapat diakses dari instans master kluster 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
    

Mengkueri data

Jalankan kueri berikut untuk menggabungkan data HDFS dalam web_clickstream_hdfs tabel eksternal dengan data relasional di database lokal Sales .

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

Membersihkan

Gunakan perintah berikut untuk menghapus tabel eksternal yang digunakan dalam tutorial ini.

DROP EXTERNAL TABLE [dbo].[web_clickstreams_hdfs];
GO

Langkah berikutnya

Lanjutkan ke artikel berikutnya untuk mempelajari cara mengkueri Oracle dari kluster big data.