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.
Anda dapat membuat dan memuat ulang tampilan materialisasi mandiri serta tabel streaming dari notebook menggunakan Python. Tulis alur Anda dalam buku catatan Python dan jalankan dengan spark.sql(). Ini memungkinkan Anda mengelola alur mandiri bersama alur kerja notebook berbasis Python lainnya.
Python sumber untuk alur mandiri memerlukan notebook yang dilampirkan ke komputasi umum tanpa server. Anda tidak dapat menggunakan Python untuk membuat atau menyegarkan pipeline mandiri dari gudang SQL Databricks, karena gudang SQL hanya menjalankan pernyataan SQL, bukan notebook Python. Untuk menggunakan gudang SQL sebagai gantinya, lihat Menggunakan tampilan terwujud mandiri dan Menggunakan tabel streaming mandiri.
Important
Membuat dan menyegarkan tampilan terwujud mandiri dan tabel streaming dari buku catatan pada komputasi umum tanpa server ada di Beta dan tersedia di wilayah tertentu. Lihat Notebook.
Requirements
Untuk membuat dan memperbarui pipeline mandiri dengan Python, Anda memerlukan notebook yang terhubung ke komputasi umum nirserver pada Databricks Runtime 18.1 atau yang lebih baru. Untuk daftar lengkap persyaratan, termasuk ketersediaan dan izin regional, lihat Notebook.
Cara kerjanya
Dalam buku catatan Python, berikan pernyataan yang sama yang akan Anda jalankan dari gudang Databricks SQL ke spark.sql(). Tampilan terwujud mandiri dan sintaks tabel streaming identik; hanya cara Anda mengirimkan pernyataan yang berbeda. Seperti pada gudang data, setiap pernyataan CREATE atau REFRESH menjalankan pipeline nirserver untuk memproses operasi.
Sesi spark tersedia secara default di buku catatan Azure Databricks, sehingga tidak diperlukan impor.
Buat tampilan terwujud
Contoh berikut membuat tampilan mv1 materialisasi dari tabel base_table1dasar :
spark.sql("""
CREATE OR REPLACE MATERIALIZED VIEW mv1
AS SELECT
date,
sum(sales) AS sum_of_sales
FROM base_table1
GROUP BY date
""")
Untuk detail lengkap CREATE MATERIALIZED VIEW, seperti refresh terjadwal dan refresh yang dipicu, lihat Membuat tampilan termaterialisasi.
Buat tabel streaming
Contoh berikut ini membuat tabel streaming sales dari tabel raw_data:
spark.sql("""
CREATE OR REFRESH STREAMING TABLE sales
AS SELECT product, price FROM STREAM raw_data
""")
Untuk detail selengkapnya CREATE STREAMING TABLE , termasuk memuat file dengan Auto Loader dan penjadwalan, lihat Menggunakan tabel streaming mandiri.
Muat ulang tampilan terwujud atau tabel streaming
REFRESH Gunakan pernyataan untuk memperbarui tabel mandiri dengan data terbaru dari sumbernya:
spark.sql("REFRESH MATERIALIZED VIEW mv1")
spark.sql("REFRESH STREAMING TABLE sales")
Pada komputasi umum nirserver, penyegaran dilakukan secara sinkron. Penyegaran asinkron (kata kunci ASYNC) tidak didukung. Lihat Komputasi umum tanpa server.
Jadikan pernyataan berparameter
Untuk meneruskan nilai dari kode Python Anda ke dalam pernyataan alih-alih mengodekannya secara permanen, gunakan penanda parameter bernama di SQL dan berikan nilainya melalui args argumen spark.sql(). Gunakan penanda seperti :min_sales secara langsung untuk nilai harfiah. Bungkus penanda IDENTIFIER() hanya jika parameter adalah nama objek, seperti tabel, tampilan, atau skema, karena pengidentifikasi tidak dapat diganti sebagai nilai string biasa.
Contoh berikut membuat parameter nama tampilan materialisasi dan nilai filter:
mv_name = "main.sales.regional_sales"
min_sales = 1000
spark.sql("""
CREATE OR REPLACE MATERIALIZED VIEW IDENTIFIER(:mv)
AS SELECT
region,
sum(sales) AS sum_of_sales
FROM base_table1
WHERE sales > :min_sales
GROUP BY region
""", args={
"mv": mv_name,
"min_sales": min_sales,
})
Untuk informasi selengkapnya, lihat penanda parameter dan klausa IDENTIFIER.
Jalankan pernyataan lainnya
Anda dapat menjalankan tampilan terwujud mandiri atau pernyataan tabel streaming dari buku catatan Python dengan meneruskannya ke spark.sql(), termasuk pernyataan untuk menjadwalkan refresh, mengubah tabel, atau menghilangkan tabel. Untuk memahami cara menggunakan tampilan materialisasi dan tabel streaming, termasuk sintaks SQL, lihat Menggunakan tampilan materialisasi mandiri dan Menggunakan tabel streaming mandiri.
Keterbatasan
Tampilan terwujud mandiri dan tabel streaming yang dibuat pada komputasi umum tanpa server memiliki batasan tambahan, seperti tidak ada dukungan untuk refresh asinkron dan tidak ada atribusi biaya per tabel. Untuk daftar lengkapnya, lihat Komputasi umum tanpa server.
Karena pipeline ini berjalan pada komputasi umum tanpa server daripada gudang SQL, mereka tidak mewarisi tag kustom dari gudang yang melampirkan. Propagasi tag gudang hanya system.billing.usage berlaku untuk tampilan materialisasi dan tabel streaming yang pernyataannya berjalan dari gudang SQL. Lihat Biaya atribut ke gudang SQL dengan tag kustom.