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.
Di Unity Catalog, tabel eksternal menyimpan file datanya di penyimpanan objek cloud dalam tenant cloud Anda. Katalog Unity terus mengelola metadata tabel, memastikan tata kelola data penuh di semua kueri. Namun, ini tidak mengelola siklus hidup, pengoptimalan, lokasi penyimpanan, atau tata letak data.
Saat Anda menentukan tabel eksternal Unity Catalog, Anda harus menentukan lokasi penyimpanan. Lokasi ini adalah lokasi eksternal yang terdaftar di Unity Catalog. Saat Anda menghapus tabel eksternal, Katalog Unity menghapus metadata tabel tetapi tidak menghapus file data yang mendasar.
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.
Kapan menggunakan tabel eksternal
Databricks merekomendasikan penggunaan tabel eksternal untuk kasus penggunaan berikut:
- Anda perlu mendaftarkan tabel yang didukung oleh data yang ada yang tidak kompatibel dengan tabel terkelola Unity Catalog.
- Anda juga memerlukan akses langsung ke data dari klien non-Databricks yang tidak mendukung pola akses eksternal lainnya. Hak istimewa Unity Catalog tidak diberlakukan saat pengguna mengakses file data dari sistem eksternal. Lihat Mengakses data Databricks dengan menggunakan sistem eksternal.
Dalam kebanyakan kasus, Databricks merekomendasikan penggunaan tabel terkelola Unity Catalog untuk memanfaatkan pengoptimalan tabel otomatis, performa kueri yang lebih cepat, dan mengurangi biaya. Untuk memigrasikan tabel eksternal ke tabel terkelola, lihat Mengonversi tabel eksternal ke tabel Katalog Unity terkelola.
Penting
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.
Format file untuk tabel eksternal
Tabel eksternal dapat menggunakan format file berikut:
- DELTA
- CSV
- JSON
- AVRO
- PARKET
- Ork
- TEKS
Membuat tabel eksternal
Anda dapat membuat tabel eksternal menggunakan perintah SQL atau operasi penulisan DataFrame.
Sebelum Anda memulai
Sebelum membuat tabel eksternal, Anda harus terlebih dahulu mengonfigurasi lokasi eksternal yang memberikan akses ke penyimpanan cloud Anda.
Untuk informasi selengkapnya tentang mengonfigurasi lokasi eksternal, lihat Membuat lokasi eksternal untuk menyambungkan penyimpanan cloud ke Azure Databricks.
Untuk membuat tabel eksternal, Anda harus memenuhi persyaratan izin berikut:
- Hak istimewa
CREATE EXTERNAL TABLEpada lokasi eksternal yang memberikan akses keLOCATIONyang diakses oleh tabel eksternal. - Izin
USE CATALOGpada katalog induk tabel. - Izin
USE SCHEMApada skema induk tabel. - Izin
CREATE TABLEpada skema induk tabel.
Nota
Saat lokasi eksternal S3 dikaitkan dengan beberapa metastores, hindari memberikan akses tulis ke tabel yang menggunakan lokasi S3 tersebut karena menulis dari metastores yang berbeda ke tabel eksternal yang sama dapat menyebabkan masalah konsistensi. Namun, membaca dari lokasi eksternal S3 yang sama di beberapa metastores aman.
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.
ADLS
CREATE TABLE <catalog>.<schema>.<table-name>
(
<column-specification>
)
LOCATION 'abfss://<bucket-path>/<table-directory>';
S3
CREATE TABLE <catalog>.<schema>.<table-name>
(
<column-specification>
)
LOCATION 's3://<bucket-path>/<table-directory>';
Untuk informasi selengkapnya tentang parameter pembuatan tabel, lihat CREATE TABLE.
Operasi penulisan DataFrame
Anda juga dapat membuat tabel eksternal dari hasil kueri atau operasi penulisan DataFrame.
LOCATION Gunakan klausa untuk menentukan jalur penyimpanan eksternal saat membuat tabel dengan DataFrames.
Opsi sintaks SQL berikut berfungsi dengan operasi DataFrame:
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.