Membuat kueri data sesuai kondisi di masa lalu

Berlaku untuk:✅ Titik akhir analitik SQL dan Gudang di Microsoft Fabric

Microsoft Fabric menawarkan kemampuan untuk mengueri data historis sebagaimana kondisinya pada waktu tertentu di masa lalu dalam item warehouse dan titik akhir analitik SQL (pratinjau). Kemampuan untuk mengkueri data dari tanda waktu tertentu dikenal di industri pergudangan data sebagai perjalanan waktu.

  • Perjalanan waktu memfasilitasi pelaporan yang stabil dengan mempertahankan konsistensi dan akurasi data dari waktu ke waktu.
  • Perjalanan waktu memungkinkan analisis tren historis dengan mengkueri berbagai titik waktu lalu, dan membantu mengantisipasi tren di masa mendatang.
  • Perjalanan waktu mempermudah perbandingan yang hemat biaya di antara versi-versi data sebelumnya.
  • Perjalanan waktu membantu menganalisis performa dari waktu ke waktu.
  • Perjalanan waktu memungkinkan organisasi untuk mengaudit perubahan data dari waktu ke waktu, sering kali diperlukan untuk tujuan kepatuhan.
  • Perjalanan waktu membantu mereproduksi hasil dari model pembelajaran mesin.
  • Perjalanan waktu dapat mengkueri tabel seperti yang ada pada titik waktu tertentu di beberapa gudang di ruang kerja yang sama.
  • Petunjuk perjalanan waktu dapat digunakan dengan tabel temp yang berbatasan dengan lingkup sesi, yang tidak terpengaruh oleh TIMESTAMP sintaks.

Apa itu perjalanan waktu?

Perjalanan waktu di gudang data adalah kemampuan bernilai rendah dan efisien untuk mengkueri versi data sebelumnya dengan cepat.

Microsoft Fabric saat ini memungkinkan pengambilan status data sebelumnya dengan cara berikut:

Perjalanan waktu dengan perintah FOR TIMESTAMP AS OF T-SQL

Tabel dapat dikueri menggunakan sintaks OPTION FOR TIMESTAMP AS OF T-SQL untuk mengambil data pada titik waktu sebelumnya. Klausul FOR TIMESTAMP AS OF ini memengaruhi seluruh pernyataan SQL, termasuk semua tabel gudang yang terhubung.

Hasil yang diperoleh dari kueri tabel temporal secara inheren hanya baca. Operasi tulis seperti INSERT, UPDATE, dan DELETE tidak dapat terjadi saat menggunakan hint kueri FOR TIMESTAMP AS OF.

Gunakan klausa OPTION untuk menentukan petunjuk kueri FOR TIMESTAMP AS OF. Kueri mengembalikan data persis seperti yang ada pada tanda waktu, yang ditentukan sebagai YYYY-MM-DDTHH:MM:SS[.fff]. Contohnya:

SELECT *
FROM [dbo].[dimension_customer] AS DC
OPTION (FOR TIMESTAMP AS OF '2024-03-13T19:39:35.28'); --March 13, 2024 at 7:39:35.28 PM UTC

Gunakan sintaks CONVERT untuk format tanggal dan waktu yang diperlukan dengan format 126.

Tanda waktu hanya dapat ditentukan sekali menggunakan OPTION klausul untuk kueri, prosedur tersimpan, tampilan, dll. Berlaku OPTION untuk semua yang ada dalam pernyataan SELECT .

Untuk contoh, lihat Cara: Kueri menggunakan perjalanan waktu.

Retensi data di Fabric Data Warehouse

  • Untuk Fabric Data Warehouse, perjalanan waktu dibatasi oleh periode retensi data yang dapat dikonfigurasi warehouse, yang otomatis.
  • Untuk titik akhir analitik Lakehouse SQL, perjalanan waktu dibatasi pada tingkat tabel dengan pengaturan retensi vakum. Pemeliharaan tabel Lakehouse dapat dijalankan secara manual di portal Fabric atau sebagai proses terjadwal dan terorkestrasi dengan menggunakan notebook, alur, atau REST API.

Di Microsoft Fabric, gudang secara otomatis mempertahankan dan memelihara berbagai versi data berdasarkan periode retensi konfigurasi. Periode retensi gudang default adalah 30 hari kalender, dan dapat dikonfigurasi berdasarkan kebutuhan organisasi Anda. Ini memungkinkan untuk melakukan kueri tabel sebelumnya pada titik waktu tertentu dalam jendela retensi. Semua penyisipan, pembaruan, dan penghapusan yang dilakukan pada gudang data disimpan.

Retensi secara otomatis dimulai dari saat gudang dibuat. File yang kedaluwarsa dihapus secara otomatis setelah ambang retensi.

  • Saat ini, pernyataan SELECT dengan petunjuk kueri FOR TIMESTAMP AS OF mengembalikan versi terbaru dari tabel schema.
  • Setiap rekaman yang dihapus dalam tabel tersedia untuk dikueri seperti yang ada sebelum penghapusan, jika penghapusan berada dalam periode retensi.
  • Kueri perjalanan waktu ke titik waktu sebelum perubahan skema hanya berhasil ketika mereferensikan kolom yang sudah ada pada saat itu, dan gagal jika mereferensikan kolom yang diperkenalkan nanti.

Skenario perjalanan waktu

Pertimbangkan kemampuan untuk melakukan perjalanan waktu ke data sebelumnya dalam skenario berikut:

Pelaporan stabil

Eksekusi pekerjaan ekstraksi, transformasi, dan pemuatan (ETL) yang sering dilakukan sangat penting untuk mengikuti lanskap data yang terus berubah. Kemampuan untuk perjalanan waktu mendukung tujuan ini dengan memastikan integritas data sambil memberikan fleksibilitas untuk menghasilkan laporan berdasarkan hasil kueri yang dikembalikan pada titik waktu sebelumnya, seperti malam sebelumnya, saat pemrosesan latar belakang sedang berlangsung.

Aktivitas ETL dapat berjalan bersamaan saat tabel yang sama dikueri pada titik waktu sebelumnya.

Tren historis dan analisis prediktif

Perjalanan waktu menyederhanakan analisis data historis, membantu mengungkap tren dan pola berharga melalui kueri data di berbagai kerangka waktu sebelumnya. Ini memfasilitasi analisis prediktif dengan mengaktifkan eksperimen dengan himpunan data historis dan pelatihan model prediktif. Ini membantu mengantisipasi tren di masa depan dan membantu membuat keputusan berbasis data yang terinformasi dengan baik.

Analisis dan perbandingan

Perjalanan waktu menawarkan kemampuan pemecahan masalah yang efisien dan hemat biaya dengan menyediakan lensa historis untuk analisis dan perbandingan, memfasilitasi identifikasi akar penyebabnya.

Analisis Performa

Perjalanan waktu dapat membantu menganalisis performa kueri gudang dari waktu ke waktu. Ini membantu mengidentifikasi tren penurunan performa, berdasarkan mana kueri dapat dioptimalkan.

Audit dan kepatuhan

Perjalanan waktu menyederhanakan prosedur audit dan kepatuhan dengan memberdayakan auditor untuk menavigasi melalui riwayat data. Ini tidak hanya membantu untuk tetap mematuhi peraturan tetapi juga membantu meningkatkan jaminan dan transparansi.

Model pembelajaran mesin

Kemampuan perjalanan waktu membantu mereproduksi hasil model pembelajaran mesin dengan memfasilitasi analisis data historis dan mensimulasikan skenario dunia nyata. Ini meningkatkan keandalan keseluruhan model sehingga keputusan berbasis data yang akurat dapat dibuat.

Pertimbangan Desain

Pertimbangan untuk petunjuk kueri OPTION FOR TIMESTAMP AS OF

  • Petunjuk kueri FOR TIMESTAMP AS OF tidak dapat digunakan untuk membuat tampilan pada titik waktu mana pun sebelumnya dalam periode retensi. Ini dapat digunakan untuk mengkueri tampilan pada titik waktu lalu, dalam periode retensi.
  • FOR TIMESTAMP AS OF Petunjuk kueri hanya dapat digunakan sekali dalam SELECT pernyataan.
  • FOR TIMESTAMP AS OF Petunjuk kueri dapat ditentukan dalam SELECT pernyataan dalam prosedur tersimpan.
  • Petunjuk FOR TIMESTAMP AS OF kueri tidak memengaruhi tabel temporer berlingkup sesi, seperti #temp_table.

Izin untuk perjalanan waktu

Setiap pengguna yang memiliki peran ruang kerja Admin, Anggota, Kontributor, atau Penampil dapat mengkueritabel pada titik waktu lalu. Saat pengguna mengkueri tabel, pembatasan yang diberlakukan oleh keamanan tingkat kolom (CLS), keamanan tingkat baris (RLS), atau masking data dinamis (DDM) secara otomatis diberlakukan.

Batasan

  • Setiap modifikasi yang dilakukan pada skema tabel, termasuk tetapi tidak terbatas pada penambahan atau penghapusan kolom, hanya dapat dikueri dari titik waktu perubahan dilakukan. Kueri perjalanan waktu ke titik waktu sebelum perubahan skema hanya berhasil ketika mereferensikan kolom yang sudah ada pada saat itu, dan gagal jika mereferensikan kolom yang diperkenalkan nanti. Demikian pula, menghilangkan dan membuat ulang tabel dengan data yang sama akan menghapus riwayatnya.
  • Berikan paling banyak tiga digit pecahan detik pada cap waktu. Jika Anda menyediakan presisi lebih, Anda akan menerima pesan kesalahan An error occurred during timestamp conversion. Please provide a timestamp in the format yyyy-MM-ddTHH:mm:ss[.fff]. Msg 22440, Level 16, State 1, Code line 29.
  • Saat ini, hanya zona waktu Waktu Universal Terkoordinasi (UTC) yang digunakan untuk perjalanan waktu.
  • Saat ini, retensi data untuk kueri perjalanan waktu dapat dikonfigurasi dari 1 hingga 120 hari kalender. Periode retensi default adalah tiga puluh hari kalender. Untuk informasi selengkapnya, lihat Retensi data yang dapat dikonfigurasi.
  • FOR TIMESTAMP AS OF nilai dalam OPTION klausa harus deterministik. Untuk contoh parameterisasi, lihat Perjalanan waktu dalam prosedur tersimpan.
  • Petunjuk kueri OPTION FOR TIMESTAMP AS OF hanya dapat digunakan dalam kueri yang diawali dengan statemen SELECT.
  • Definisi tampilan tidak boleh berisi OPTION FOR TIMESTAMP AS OF sintaks T-SQL. Tampilan dapat dikueri dengan SELECT .. FROM <view> ... OPTION FOR TIMESTAMP AS OF sintaks T-SQL. Namun, Anda tidak dapat mengkueri data sebelumnya dari tabel dalam tampilan sebelum tampilan dibuat.
  • Sintaks FOR TIMESTAMP AS OF T-SQL untuk perjalanan waktu saat ini tidak didukung dalam mode kueri Power BI Desktop Direct atau opsi Jelajahi data ini.
  • Saat ini, fitur time travel untuk endpoint analitik SQL hanya diaktifkan untuk endpoint analitik SQL yang dibuat dengan New metadata sync (preview) diaktifkan.

Langkah selanjutnya