Bagikan melalui


Tutorial: Perjalanan waktu dengan T-SQL di Gudang

Dalam tutorial ini, pelajari cara menggunakan perintah-perintah T-SQL untuk perjalanan waktu pada tabel gudang. Perjalanan waktu berarti untuk mengkueri data sebagaimana adanya pada titik waktu tertentu, yang secara otomatis dimungkinkan oleh retensi data Fabric Warehouse .

Catatan

Tutorial ini merupakan bagian dari skenario end-to-end. Untuk menyelesaikan tutorial ini, Anda harus terlebih dahulu menyelesaikan tutorial ini:

  1. Membuat ruang kerja
  2. Membuat Gudang
  3. Memasukkan data ke gudang data

Menangani kueri perjalanan waktu

Dalam tugas ini, pelajari cara membuat tampilan 10 pelanggan teratas berdasarkan penjualan. Anda akan menggunakan tampilan dalam tugas berikutnya untuk menjalankan kueri lintas waktu.

  1. Pastikan ruang kerja yang Anda buat di tutorial pertama terbuka.

  2. Pada pita Beranda, pilih Kueri SQL Baru.

    Cuplikan layar opsi kueri SQL Baru pada pita.

  3. Di editor kueri, tempelkan kode berikut. Kode membuat tampilan bernama Top10Customers. Tampilan menggunakan kueri untuk mengambil sepuluh pelanggan teratas berdasarkan penjualan.

    --Create the Top10Customers view.
    CREATE VIEW [dbo].[Top10Customers]
    AS
    SELECT TOP(10)
        FS.[CustomerKey],
        DC.[Customer],
        SUM(FS.[TotalIncludingTax]) AS [TotalSalesAmount]
    FROM
        [dbo].[dimension_customer] AS DC
        INNER JOIN [dbo].[fact_sale] AS FS
            ON DC.[CustomerKey] = FS.[CustomerKey]
    GROUP BY
        FS.[CustomerKey],
        DC.[Customer]
    ORDER BY
        [TotalSalesAmount] DESC;
    
  4. Jalankan kueri.

  5. Saat eksekusi selesai, ganti nama kueri sebagai Create Top 10 Customer View.

  6. Di panel Explorer, dari dalam folder Tampilan untuk skema , verifikasi bahwa tampilan ada.

    Cuplikan layar panel Explorer, menyoroti tampilan yang baru dibuat.

  7. Buat kueri baru untuk bekerja dengan kueri perjalanan waktu.

  8. Di editor kueri, tempelkan kode berikut. Kode memperbarui nilai TotalIncludingTax untuk satu baris data fakta untuk sengaja menggelembungkan total penjualannya. Ini juga mengambil tanda waktu saat ini.

     --Update the TotalIncludingTax for a single fact row to deliberately inflate its total sales.
     UPDATE [dbo].[fact_sale]
     SET [TotalIncludingTax] = 200000000
     WHERE [SaleKey] = 22632918; --For customer 'Tailspin Toys (Muir, MI)'
     GO
    
     --Retrieve the current (UTC) timestamp.
     SELECT CURRENT_TIMESTAMP;
    

    Catatan

    Saat ini, Anda hanya dapat menggunakan zona waktu Waktu Universal Terkoordinasi (UTC) untuk perjalanan waktu.

  9. Jalankan kueri.

  10. Saat eksekusi selesai, ganti nama kueri sebagai Time Travel.

  11. Di panel Hasil , perhatikan nilai stempel waktu (nilai Anda akan menjadi tanggal dan waktu saat ini dalam UTC).

    Cuplikan layar panel Hasil, menyoroti nilai tanda waktu untuk disalin.

  12. Untuk mengambil 10 pelanggan teratas mulai sekarang, di editor kueri baru, tempelkan pernyataan berikut. Kode mengambil data 10 pelanggan teratas dengan menggunakan hint kueri FOR TIMESTAMP AS OF.

     --Retrieve the top 10 customers as of now.
     SELECT *
     FROM [dbo].[Top10Customers]
     OPTION (FOR TIMESTAMP AS OF 'YOUR_TIMESTAMP');
    
  13. Ganti nama kueri sebagai Time Travel Now.

  14. Kembali ke kueri Time Travel, lalu gunakan perintah Salin untuk menyalin hasil kueri.

    Cuplikan layar perintah Salin, menyoroti hasil Salin Kueri.

  15. Kembali ke kueri Time Travel Now, lalu ganti YOUR_TIMESTAMP dengan tanda waktu yang Anda salin ke clipboard.

  16. Jalankan kueri, dan perhatikan bahwa nilai CustomerKey teratas kedua adalah 49 untuk Tailspin Toys (Muir, MI).

  17. Ubah nilai tanda waktu ke waktu sebelumnya dengan mengurangi satu menit dari tanda waktu.

  18. Jalankan kueri lagi, dan perhatikan bahwa nilai CustomerKey teratas kedua adalah 381 untuk Wingtip Toys (Sarversville, PA).

Tip

Untuk contoh perjalanan waktu lainnya, lihat Cara: Mengkueri menggunakan perjalanan waktu di tingkat pernyataan.

Langkah selanjutnya