Bekerja dengan tabel eksternal
Tabel eksternal menyimpan data dalam direktori di penyimpanan objek cloud di penyewa cloud Anda. Anda harus menentukan lokasi penyimpanan saat menentukan tabel eksternal.
Databricks merekomendasikan penggunaan tabel eksternal hanya ketika Anda juga memerlukan akses langsung ke data dari klien non-Databricks. Hak istimewa Unity Catalog tidak diberlakukan saat pengguna mengakses file data dari sistem eksternal.
Peringatan
Jika Anda memperbarui metadata tabel eksternal menggunakan klien non-Databricks atau menggunakan akses berbasis jalur dari dalam Databricks, metadata tersebut tidak secara otomatis menyinkronkan status dengan Unity Catalog. Databricks merekomendasikan untuk menghindari pembaruan metadata tersebut, tetapi jika Anda melakukannya, Anda harus menjalankan MSCK REPAIR TABLE <table-name> SYNC METADATA
untuk memperbarui skema di Katalog Unity. Lihat REPAIR TABLE.
Catatan
Artikel ini berfokus pada tabel eksternal Unity Catalog. Tabel eksternal dalam metastore Apache Hive lama memiliki perilaku yang berbeda. Lihat Objek database di metastore Apache Hive warisan.
Bekerja dengan tabel eksternal
Azure Databricks hanya mengelola metadata untuk tabel eksternal dan tidak menggunakan lokasi kelola penyimpanan yang terkait dengan skema yang berisi. Pendaftaran tabel di Unity Catalog hanyalah penunjuk ke file data. Saat Anda menghapus tabel eksternal, file data tidak dihapus.
Saat membuat tabel eksternal, Anda dapat mendaftarkan direktori file data yang ada sebagai tabel atau menyediakan jalur untuk membuat file data baru.
Tabel eksternal dapat menggunakan format file berikut:
- DELTA
- CSV
- JSON
- AVRO
- PARKET
- ORC
- TEXT
Membuat tabel eksternal
Untuk membuat tabel eksternal, bisa menggunakan perintah SQL atau operasi penulisan Dataframe.
Sebelum Anda mulai
Untuk membuat tabel eksternal, Anda harus memenuhi persyaratan izin berikut:
- Hak istimewa
CREATE EXTERNAL TABLE
pada lokasi eksternal yang memberikan akses keLOCATION
yang diakses oleh tabel eksternal. - Izin
USE SCHEMA
pada skema induk tabel. - Izin
USE CATALOG
pada katalog induk dari tabel tersebut. - Izin
CREATE TABLE
pada skema induk tabel.
Untuk informasi selengkapnya tentang mengonfigurasi lokasi eksternal, lihat Membuat lokasi eksternal untuk menyambungkan penyimpanan cloud ke Azure Databricks.
Contoh perintah SQL
Gunakan salah satu contoh perintah berikut di buku catatan atau editor kueri SQL untuk membuat tabel eksternal.
Dalam contoh berikut ini, ganti nilai placeholder:
-
<catalog>
: Nama katalog yang akan berisi tabel. -
<schema>
: Nama skema yang akan berisi tabel. -
<table-name>
: Nama untuk tabel. -
<column-specification>
: Nama dan jenis data untuk setiap kolom. -
<bucket-path>
: Jalur ke wadah penyimpanan cloud tempat tabel akan dibuat. -
<table-directory>
: Direktori tempat tabel akan dibuat. Gunakan direktori unik untuk setiap tabel.
CREATE TABLE <catalog>.<schema>.<table-name>
(
<column-specification>
)
LOCATION 'abfss://<bucket-path>/<table-directory>';
Untuk informasi selengkapnya tentang parameter pembuatan tabel, lihat CREATE TABLE.
Operasi penulisan dataframe
Banyak pengguna membuat tabel eksternal dari hasil kueri atau operasi penulisan DataFrame. Artikel berikut menunjukkan beberapa pola yang dapat Anda gunakan untuk membuat tabel eksternal di Azure Databricks:
Menghapus tabel eksternal
Untuk menghapus tabel, Anda harus menjadi pemiliknya atau memiliki hak istimewa MANAGE
pada tabel. Untuk menghilangkan tabel eksternal, jalankan perintah SQL berikut:
DROP TABLE IF EXISTS catalog_name.schema_name.table_name;
Katalog Unity tidak menghapus data yang mendasar di penyimpanan cloud saat Anda menghilangkan tabel eksternal. Anda harus langsung menghapus file data yang mendasar jika Anda perlu menghapus data yang terkait dengan tabel.
Contoh buku catatan: Membuat tabel eksternal
Anda bisa menggunakan contoh buku catatan berikut untuk membuat katalog, skema, dan tabel eksternal, dan untuk mengelola izin pada buku catatan tersebut.