Dış tablolarla çalışma
Dış tablolar, verileri bulut kiracınızdaki bulut nesne depolama alanında bir dizinde depolar. Dış tablo tanımlarken bir depolama konumu belirtmeniz gerekir.
Databricks, dış tabloların yalnızca Databricks dışı istemcilerden gelen verilere doğrudan erişime de ihtiyacınız olduğunda kullanılmasını önerir. Unity Kataloğu ayrıcalıkları, kullanıcılar dış sistemlerden veri dosyalarına eriştiğinde uygulanmaz.
Uyarı
Databricks dışı bir istemci kullanarak veya Databricks'in içinden yol tabanlı erişim kullanarak dış tablo meta verilerini güncelleştirirseniz, bu meta veriler Unity Kataloğu ile durumu otomatik olarak eşitlemez. Databricks bu tür meta veri güncelleştirmelerine karşı öneride bulunur, ancak bunu yaparsanız, Unity Kataloğu'nda şemayı güncel hale getirmek için MSCK REPAIR TABLE <table-name> SYNC METADATA
çalıştırmanız gerekir. Bkz. REPAIR TABLE.
Not
Bu makale Unity Kataloğu dış tablolarına odaklanır. Eski Hive meta veri deposundaki dış tabloların farklı davranışları vardır. Bkz. Eski Hive meta veri deposundaki veritabanı nesneleri.
Dış tablolarla çalışma
Azure Databricks yalnızca dış tablolar için meta verileri yönetir ve içeren şemayla ilişkili depolama konumunu yönetmeyi kullanmaz. Unity Kataloğu'ndaki tablo kaydı yalnızca veri dosyalarının işaretçisidir. Dış tabloyu bıraktığınızda veri dosyaları silinmez.
Dış tablo oluşturduğunuzda, mevcut bir veri dosyaları dizinini tablo olarak kaydedebilir veya yeni veri dosyaları oluşturmak için bir yol sağlayabilirsiniz.
Dış tablolar aşağıdaki dosya biçimlerini kullanabilir:
- DELTA
- CSV
- JSON
- AVRO
- PARKE
- ORC
- METİN
Dış tablo oluşturma
Dış tablo oluşturmak için SQL komutlarını veya Dataframe yazma işlemlerini kullanabilirsiniz.
Başlamadan önce
Dış tablo oluşturmak için aşağıdaki izin gereksinimlerini karşılamanız gerekir:
- Dış tablo tarafından erişilen
CREATE EXTERNAL TABLE
erişim veren bir dış konumdakiLOCATION
ayrıcalığı. - Tablonun ana şemasında
USE SCHEMA
izni. - Tablonun ana katalogdaki
USE CATALOG
izni. - Tablonun ana şemasında
CREATE TABLE
izni.
Dış konumları yapılandırma hakkında daha fazla bilgi için bkz . Bulut depolama alanını Azure Databricks'e bağlamak için dış konum oluşturma.
SQL komut örnekleri
Dış tablo oluşturmak için bir not defterinde veya SQL sorgu düzenleyicisinde aşağıdaki komut örneklerinden birini kullanın.
Aşağıdaki örneklerde yer tutucu değerlerini değiştirin:
-
<catalog>
: Tabloyu içerecek kataloğun adı. -
<schema>
: Tabloyu içerecek şemanın adı. -
<table-name>
: Tablonun adı. -
<column-specification>
: Her sütunun adı ve veri türü. -
<bucket-path>
: Tablonun oluşturulacağı bulut depolama demetinin yolu. -
<table-directory>
: Tablonun oluşturulacağı dizin. Her tablo için benzersiz bir dizin kullanın.
CREATE TABLE <catalog>.<schema>.<table-name>
(
<column-specification>
)
LOCATION 'abfss://<bucket-path>/<table-directory>';
Tablo oluşturma parametreleri hakkında daha fazla bilgi için bkz. CREATE TABLE.
Veri çerçevesi yazma işlemleri
Birçok kullanıcı sorgu sonuçlarından veya DataFrame yazma işlemlerinden dış tablolar oluşturur. Aşağıdaki makalelerde, Azure Databricks'te dış tablo oluşturmak için kullanabileceğiniz birçok desenden bazıları gösterilmektedir:
Bir dış tabloyu kaldır
Bir tabloyu silmek için sahibi olmalısınız veya tabloda MANAGE
ayrıcalığına sahip olmalısınız. Dış tabloyu bırakmak için aşağıdaki SQL komutunu çalıştırın:
DROP TABLE IF EXISTS catalog_name.schema_name.table_name;
Unity Kataloğu, dış tabloyu bıraktığınızda bulut depolamadaki temel verileri silmez. Tabloyla ilişkili verileri kaldırmanız gerekiyorsa, temel alınan veri dosyalarını doğrudan silmeniz gerekir.
Örnek not defteri: Dış tablolar oluşturma
Katalog, şema ve dış tablo oluşturmak ve bunlar üzerindeki izinleri yönetmek için aşağıdaki örnek not defterini kullanabilirsiniz.
Unity Kataloğu not defterinde dış tablo oluşturma ve yönetme
not defteri alma