Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Tabel streaming adalah tabel dengan dukungan untuk pemrosesan data streaming atau inkremental. Tabel streaming didukung oleh pipa. Setiap kali tabel streaming di-refresh, data yang ditambahkan ke tabel sumber ditambahkan ke tabel streaming. Anda dapat me-refresh tabel streaming secara manual atau sesuai jadwal.
Untuk mempelajari selengkapnya tentang cara melakukan atau menjadwalkan refresh, lihat Menjalankan pembaruan alur.
Syntax
CREATE [OR REFRESH] [PRIVATE] STREAMING TABLE
table_name
[ table_specification ]
[ table_clauses ]
[ AS query ]
table_specification
( { column_identifier column_type [column_properties] } [, ...]
[ column_constraint ] [, ...]
[ , table_constraint ] [...] )
column_properties
{ NOT NULL | COMMENT column_comment | column_constraint | MASK clause } [ ... ]
table_clauses
{ USING DELTA
PARTITIONED BY (col [, ...]) |
CLUSTER BY clause |
LOCATION path |
COMMENT view_comment |
TBLPROPERTIES clause |
WITH { ROW FILTER clause } } [ ... ]
Parameter-parameternya
REFRESH
Jika ditentukan, akan membuat tabel, atau memperbarui tabel yang sudah ada dan kontennya.
SWASTA
Membuat tabel streaming privat.
- Mereka tidak ditambahkan ke katalog dan hanya dapat diakses dalam alur yang menentukan
- Mereka dapat memiliki nama yang sama dengan objek yang ada di katalog. Dalam alur, jika tabel streaming privat dan objek dalam katalog memiliki nama yang sama, referensi ke nama tersebut akan diarahkan ke tabel streaming privat.
- Tabel streaming privat hanya dipertahankan selama masa operasional alur, tidak hanya satu pembaruan.
Tabel streaming privat sebelumnya dibuat dengan
TEMPORARYparameter .table_name
Nama tabel yang baru dibuat. Nama tabel yang sepenuhnya memenuhi syarat harus unik.
spesifikasi_tabel
Klausa opsional ini menentukan daftar kolom, jenis, properti, deskripsi, dan batasan kolomnya.
-
Nama kolom harus unik dan sesuai dengan kolom output kueri.
-
Menentukan jenis data kolom. Tidak semua jenis data yang didukung oleh Azure Databricks didukung oleh tabel streaming.
column_comment
STRINGopsional yang menjelaskan kolom. Opsi ini harus ditentukan bersama dengancolumn_type. Jika jenis kolom tidak ditentukan, komentar kolom akan dilewati.-
Menambahkan batasan yang memvalidasi data saat mengalir ke tabel. Lihat Mengelola kualitas data dengan ekspektasi alur kerja.
-
Penting
Fitur ini ada di Pratinjau Umum.
Menambahkan fungsi masker kolom untuk menganonimkan data sensitif.
-
pembatasan_tabel
Penting
Fitur ini ada di Pratinjau Umum.
Saat menentukan skema, Anda dapat menentukan kunci primer dan asing. Batasan bersifat informasi dan tidak diberlakukan. Lihat klausa CONSTRAINT dalam referensi bahasa SQL.
Nota
Untuk menentukan batasan tabel, alur Anda harus berupa alur yang mendukung Katalog Unity.
table_clauses
Tentukan pemartisian, komentar, dan properti yang ditentukan pengguna secara opsional untuk tabel. Setiap sub klausul hanya dapat ditentukan satu kali.
MENGGUNAKAN DELTA
Menetapkan format data. Satu-satunya opsi adalah DELTA.
Klausa ini bersifat opsional, dan secara default menjadi DELTA.
DISEGMENKAN OLEH
Daftar opsional dari satu atau beberapa kolom yang akan digunakan untuk pemartisian dalam tabel. Bersifat saling eksklusif dengan
CLUSTER BY.Pengklusteran cairan memberikan solusi yang fleksibel dan dioptimalkan untuk pengklusteran. Pertimbangkan untuk menggunakan
CLUSTER BYalih-alihPARTITIONED BYuntuk alur.CLUSTER BY
Aktifkan pengklusteran cair pada tabel dan tentukan kolom yang akan digunakan sebagai kunci pengklusteran. Gunakan pengklusteran cairan otomatis dengan
CLUSTER BY AUTO, dan Databricks dengan cerdas memilih kunci pengklusteran untuk mengoptimalkan performa kueri. Bersifat saling eksklusif denganPARTITIONED BY.LOKASI
Lokasi penyimpanan opsional untuk data tabel. Jika tidak diatur, sistem akan menggunakan lokasi penyimpanan pipeline secara default.
KOMENTAR
Literal
STRINGyang opsional untuk menjelaskan tabel.TBLPROPERTIES
Daftar properti tabel opsional untuk tabel.
DENGAN ROW FILTER
Penting
Fitur ini ada di Pratinjau Umum.
Menambahkan fungsi filter baris ke tabel. Kueri di masa mendatang untuk tabel tersebut akan mendapatkan bagian dari baris-baris yang fungsinya bernilai BENAR. Ini berguna untuk kontrol akses terperintah, karena memungkinkan fungsi untuk memeriksa identitas dan keanggotaan grup pengguna yang memanggil untuk memutuskan apakah akan memfilter baris tertentu.
Lihat klausa
ROW FILTER.-
Klausa ini mengisi tabel menggunakan data dari
query. Kueri ini harus berupa kueri streaming . Gunakan kata kunci STREAM untuk menggunakan semantik streaming untuk membaca dari sumbernya. Jika pembacaan mengalami perubahan atau penghapusan pada rekaman yang ada, akan menghasilkan kesalahan. Paling aman untuk membaca dari sumber statis atau yang hanya bisa ditambahkan. Untuk memasukkan data yang memiliki komit perubahan, Anda dapat menggunakan Python dan opsiSkipChangeCommitsuntuk menangani kesalahan.Saat Anda menentukan
querydantable_specificationbersama-sama, skema tabel yang ditentukan dalamtable_specificationharus berisi semua kolom yang dikembalikan olehquery, jika tidak, Anda akan mendapatkan kesalahan. Kolom apa pun yang ditentukan dalamtable_specificationtetapi tidak dikembalikan olehquerymengembalikan nilainullsaat dikueri.Untuk informasi selengkapnya tentang data streaming, lihat Mengubah data dengan alur.
Memerlukan izin
Pengguna 'run-as' untuk pipeline harus memiliki izin berikut:
-
SELECThak akses atas tabel dasar yang direferensikan oleh tabel streaming. -
USE CATALOGhak istimewa pada katalog induk dan hak istimewaUSE SCHEMApada skema induk. -
CREATE MATERIALIZED VIEWhak akses pada skema untuk tabel streaming.
Agar pengguna dapat memperbarui alur tempat tabel streaming ditentukan, mereka memerlukan:
-
USE CATALOGhak istimewa pada katalog induk dan hak istimewaUSE SCHEMApada skema induk. - Kepemilikan atau hak istimewa pada tabel streaming
REFRESH. - Pemilik tabel streaming harus memiliki
SELECThak istimewa atas tabel dasar yang dirujuk oleh tabel streaming.
Agar pengguna dapat mengkueri tabel streaming yang dihasilkan, mereka memerlukan:
-
USE CATALOGhak istimewa pada katalog induk dan hak istimewaUSE SCHEMApada skema induk. -
SELECThak akses istimewa atas tabel streaming.
Keterbatasan
- Hanya pemilik tabel yang dapat memperbarui tabel streaming untuk mendapatkan data terbaru.
-
ALTER TABLEperintah tidak diperbolehkan di tabel streaming. Definisi dan properti tabel harus diubah melalui pernyataanCREATE OR REFRESHatau ALTER STREAMING TABLE. - Mengembangkan skema tabel melalui perintah DML seperti
INSERT INTO, danMERGEtidak didukung. - Perintah berikut ini tidak didukung pada tabel streaming:
CREATE TABLE ... CLONE <streaming_table>COPY INTOANALYZE TABLERESTORETRUNCATEGENERATE MANIFEST[CREATE OR] REPLACE TABLE
- Mengganti nama tabel atau mengubah pemilik tidak didukung.
- Kolom yang dihasilkan, kolom identitas, dan kolom default tidak didukung.
Examples
-- Define a streaming table from a volume of files:
CREATE OR REFRESH STREAMING TABLE customers_bronze
AS SELECT * FROM STREAM read_files("/databricks-datasets/retail-org/customers/*", format => "csv")
-- Define a streaming table from a streaming source table:
CREATE OR REFRESH STREAMING TABLE customers_silver
AS SELECT * FROM STREAM(customers_bronze)
-- Define a table with a row filter and column mask:
CREATE OR REFRESH STREAMING TABLE customers_silver (
id int COMMENT 'This is the customer ID',
name string,
region string,
ssn string MASK catalog.schema.ssn_mask_fn COMMENT 'SSN masked for privacy'
)
WITH ROW FILTER catalog.schema.us_filter_fn ON (region)
AS SELECT * FROM STREAM(customers_bronze)
-- Define a streaming table that you can add flows into:
CREATE OR REFRESH STREAMING TABLE orders;