Tabel eksternal
Berlaku untuk: Databricks SQL Databricks Runtime
Unity Catalog dan metastore Azure Databricks Hive bawaan menggunakan lokasi default untuk tabel terkelola. Unity Catalog memperkenalkan beberapa objek baru yang dapat diamankan untuk memberikan hak istimewa ke data dalam penyimpanan objek cloud.
-
Objek Unity Catalog digunakan untuk mengabstraksi info masuk jangka panjang dari penyedia penyimpanan cloud.
-
Objek Unity Catalog yang digunakan untuk mengaitkan URI penyimpanan objek cloud dengan kredensial penyimpanan.
-
Tabel Unity Catalog dibuat di lokasi eksternal yang dikelola Unity Catalog.
Tabel eksternal
Tabel eksternal adalah tabel yang mereferensikan jalur penyimpanan eksternal dengan menggunakan klausul LOCATION
.
Jalur penyimpanan harus berada dalam lokasi eksternal yang ada tempat Anda telah diberikan akses.
Atau, Anda dapat mereferensikan info masuk penyimpanan yang telah Anda berikan aksesnya.
Menggunakan tabel eksternal mengabstraksi jalur penyimpanan, lokasi eksternal, dan kredensial penyimpanan untuk pengguna yang diberikan akses ke tabel eksternal.
Peringatan
Jika skema (database) terdaftar di metastore Apache Hive tingkat ruang kerja Anda, menghilangkan skema tersebut CASCADE
menggunakan opsi menyebabkan semua file di lokasi skema tersebut dihapus secara rekursif, terlepas dari jenis tabel (terkelola atau eksternal).
Jika skema didaftarkan ke metastore Unity Catalog, file untuk tabel terkelola Unity Catalog akan dihapus secara rekursif. Namun, file untuk tabel eksternal tidak dihapus. Anda harus mengelola file tersebut menggunakan penyedia penyimpanan cloud secara langsung.
Oleh karena itu, untuk menghindari kehilangan data yang tidak disengaja, Anda tidak boleh mendaftarkan skema di metastore Apache Hive ke lokasi dengan data yang ada. Anda juga tidak boleh membuat tabel eksternal baru di lokasi yang dikelola oleh skema metastore Apache Hive atau berisi tabel terkelola Katalog Unity.
Representasi Grafis hubungan
Diagram berikut menjelaskan hubungan antara:
- info masuk penyimpanan
- lokasi eksternal
- tabel eksternal
- jalur penyimpanan
- Entitas IAM
- Akun layanan Azure
Contoh
-- `finance` can create an external table over specific object within the `finance_loc` location
> CREATE TABLE sec_filings LOCATION 'abfss://container@storageaccount.dfs.core.windows.net/depts/finance/sec_filings';
-- Create or replace an external table from a query
> CREATE OR REPLACE TABLE sec_filings
LOCATION 'abfss://container@storageaccount.dfs.core.windows.net/depts/finance/sec_filings'
AS (SELECT * FROM current_filings);
-- Cannot list files under an external table without permissions on it
> LIST `abfss://container@storageaccount.dfs.core.windows.net/depts/finance/sec_filings`
Error
> LIST `abfss://container@storageaccount.dfs.core.windows.net/depts/finance/sec_filings/_delta_log`
Error
-- Grant access to sec_filings to all employees
> GRANT SELECT ON TABLE sec_filings TO employee;
-- Any member of the `employee` group can securely read sec_filings
> SELECT count(1) FROM sec_filings;
20
-- Any member of the `employee` group can list files under the sec_filings table
> LIST `abfss://container@storageaccount.dfs.core.windows.net/depts/finance/sec_filings`
_delta_log
> LIST `abfss://container@storageaccount.dfs.core.windows.net/depts/finance/sec_filings/_delta_log`
00000.json