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:
- Membuat ruang kerja
- Membuat Gudang
- 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.
Pastikan ruang kerja yang Anda buat di tutorial pertama terbuka.
Pada pita Beranda, pilih Kueri SQL Baru.
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;
Jalankan kueri.
Saat eksekusi selesai, ganti nama kueri sebagai
Create Top 10 Customer View
.Di panel
Explorer, dari dalam folder Tampilan untuk skema , verifikasi bahwa tampilan ada. Buat kueri baru untuk bekerja dengan kueri perjalanan waktu.
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.
Jalankan kueri.
Saat eksekusi selesai, ganti nama kueri sebagai
Time Travel
.Di panel Hasil , perhatikan nilai stempel waktu (nilai Anda akan menjadi tanggal dan waktu saat ini dalam UTC).
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');
Ganti nama kueri sebagai
Time Travel Now
.Kembali ke kueri
Time Travel
, lalu gunakan perintah Salin untuk menyalin hasil kueri.Kembali ke kueri
Time Travel Now
, lalu gantiYOUR_TIMESTAMP
dengan tanda waktu yang Anda salin ke clipboard.Jalankan kueri, dan perhatikan bahwa nilai
CustomerKey
teratas kedua adalah 49 untukTailspin Toys (Muir, MI)
.Ubah nilai tanda waktu ke waktu sebelumnya dengan mengurangi satu menit dari tanda waktu.
Jalankan kueri lagi, dan perhatikan bahwa nilai
CustomerKey
teratas kedua adalah 381 untukWingtip Toys (Sarversville, PA)
.
Tip
Untuk contoh perjalanan waktu lainnya, lihat Cara: Mengkueri menggunakan perjalanan waktu di tingkat pernyataan.