Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Unity Kataloğu'nun Hive meta veri deposunda depolanan tabloları yönetmesini sağlayan Hive meta veri deposu federasyonu tanıtılır. Dış Hive meta veri depolarını veya eski bir iç Azure Databricks Hive meta depolarını birleştirebilirsiniz.
Hive meta veri deposu federasyonu aşağıdaki kullanım örnekleri için kullanılabilir:
Unity Kataloğu'na geçiş yolunun bir parçası olarak, kod uyarlamasına ihtiyaç duymadan artımlı geçişi etkinleştirerek, bazı iş yüklerinizin Hive meta veri deponuzda kayıtlı verileri kullanmaya devam etmesini sağlarken, diğer iş yüklerinizin geçişine olanak tanıyabilirsiniz.
Federe iç Hive meta veri depoları hem okuma hem de yazma iş yüklerine izin verdiğinden, bu kullanım örneği günümüzde eski bir iç Azure Databricks Hive meta veri deposu kullanan kuruluşlar için en uygunudur.
Unity Kataloğu'nda kayıtlı verileriyle birlikte Hive meta deposunda bazı verileri tutması gereken kuruluşlar için daha uzun vadeli bir hibrit model sağlamak için.
Dış Hive meta veri deposu kullanan kuruluşlar için bu kullanım örneği en uygun olanıdır, çünkü bu Hive meta veri depoları için yabancı kataloglar salt okunurdur.
diyagramı
Hive metastore federasyonuna genel bakış
Hive meta veri deposu federasyonunda, Azure Databricks çalışma alanınızdan Hive meta veri deponuza bir bağlantı oluşturursunuz. Bunun ardından, Unity Kataloğu, bazen federasyon kataloğuolarak adlandırılan dış bir kataloğu doldurmak için Hive meta veri deposunda tarama yapar. Bu, kuruluşunuzun Unity Kataloğu'nda Hive meta veri deposu tablolarınızla çalışmasını sağlar ve merkezi erişim denetimleri, köken, arama ve daha fazlasını sunar.
Azure Databricks çalışma alanınızın dışındaki Federasyon Hive meta veri depoları Unity Kataloğu kullanılarak okumalara izin verir. İç Hive meta veri depoları okuma ve yazma işlemlerine izin verir ve siz yazarken Hive meta veri deposu meta verilerini ve Unity Kataloğu meta verilerini güncelleştirir.
Federasyon Hive meta veri deposundaki yabancı tabloları sorguladığınızda, Unity Catalog erişim denetimleri ve denetim işlemleri gibi işlevleri yerine getirirken, aynı zamanda sorgular Hive meta veri deposu semantiği kullanılarak yürütülür ve yönetişim katmanı sağlar. Örneğin, bir kullanıcı yabancı katalogda Parquet biçiminde depolanan bir tabloyu sorgularsa:
- Unity Kataloğu, kullanıcının tabloya erişimi olup olmadığını denetler ve sorgu için köken çıkartır.
- Sorgunun kendisi, temel alınan Hive meta veri deposuna karşı çalışır ve burada depolanan en son meta verileri ve bölüm bilgilerini kullanır.
Hive federasyon senaryosunda HMS, Unity Kataloğu ve Databricks iş yükleri arasındaki ilişkiyi gösteren
Hive metastore federasyonu, Unity Catalog'un harici tablolarının kullanımıyla ne düzeyde değerlendirilebilir?
Unity Kataloğu,
Her iki tablo türü de aşağıdaki özelliklere sahiptir:
- Bulut depolama alanına rastgele bir konumu tablo olarak kaydetmek için kullanılabilir.
- Unity Kataloğu izinlerini ve ayrıntılı erişim denetimlerini uygulayabilir.
- Sorgular onlara atıfta bulunduğunda soy ağacında görüntülenebilir.
Federasyon Hive meta veri deposundaki yabancı tablolar aşağıdaki özelliklere sahiptir:
- Hive metastore taraması yapılarak otomatik olarak keşfedilirler. Hive meta veri deposunda tablolar oluşturulur oluşturulmaz, bunlar erişime açılır ve Unity Kataloğu yurt dışı kataloğunda sorgulanabilir hale gelir.
- Tabloların Hive SerDes ve bölümler gibi Hive semantiğiyle tanımlanmasına izin verin.
- Tabloların yabancı kataloglardaki diğer tablolarla çakışan yollara sahip olmasını sağlar.
- Tabloların DBFS kök konumlarında bulunmasına izin verin.
- Hive meta veri deposunda tanımlanan görünümleri ekleyin.
Bu şekilde, federasyon Hive meta veri deposundaki harici tabloların, iş yüklerinin yalnızca Hive semantiğini kullanmasına izin verirken Hive meta veri deposuyla geriye dönük uyumluluk sunduğunu ve yönetimi Unity Kataloğu tarafından sağladığını düşünebilirsiniz.
Ancak, bazı Unity Kataloğu özellikleri yabancı tablolarda kullanılamaz, örneğin:
- Tahmine dayalı iyileştirme gibi yalnızca Unity Kataloğu yönetilen tablolarında kullanılabilen özellikler.
- Vektör araması, Delta Paylaşımı, Lakehouse izleme ve çevrimiçi tablolar.
- Özellik deposu işlevleri arasında, özellik deposu oluşturma, model sunumu oluşturma, özellik spesifikasyonu oluşturma, model günlüğü ve toplu puanlama yer almaktadır.
Hem Hive meta veri deposu hem de Unity Kataloğu yabancı bir tablonun sorgu yolunda olduğundan, performans Unity Kataloğu veya Hive meta veri deposundaki iş yüklerine kıyasla biraz daha kötü olabilir.
Desteklenen işlevler hakkında daha fazla bilgi için bkz . Gereksinimler ve özellik desteği.
Federasyon Hive meta veri deposunda yabancı bir kataloğa yazmak ne anlama gelir?
Yazma işlemleri yalnızca federasyon iç Hive meta veri depoları için desteklenir, dış Hive meta veri depoları için desteklenmez.
Federasyon meta veri depolarına yazma işlemleri iki türdedir:
CREATE TABLE
,ALTER TABLE
veDROP TABLE
gibi DDL işlemleri.DDL işlemleri, temel Hive meta veri deposuna eşzamanlı olarak yansıtılır. Örneğin,
CREATE TABLE
deyimini çalıştırmak, tabloyu hem Hive meta veri deposunda hem de yabancı katalogda oluşturur.Uyarı
Bu,
DROP
komutlarının Hive meta veri deposuna yansıtıldığını da gösterir. Örneğin, hive meta veri deposuDROP SCHEMA mySchema CASCADE
desteklemediğinden,UNDROP
UNDROP
seçeneği olmadan temel Hive meta veri deposu şemasındaki tüm tabloları bırakır.INSERT
,UPDATE
veDELETE
gibi DML işlemleri.DML işlemleri de temel hive meta veri deposu tablosuna zaman uyumlu olarak yansıtılır. Örneğin,
INSERT INTO
çalıştırmak Hive meta veri deposundaki tabloya kayıt ekler.Yazma desteği, Hive meta veri deposundan Unity Kataloğu'na geçiş sırasında sorunsuz bir geçişi etkinleştirmenin anahtarıdır. Bkz. Unity Kataloğu'na geçiş sırasında Hive meta veri deposu federasyonunu nasıl kullanırsınız?.
Hive meta veri deposu federasyonu nasıl kurulur?
Hive meta veri deposu federasyonu ayarlamak için aşağıdakileri yapın:
Unity Kataloğu'nda Hive meta veri deposuna erişim yolunu ve kimlik bilgilerini belirten bir bağlantı oluşturun.
Hive meta veri deposu federasyonu, Hive meta veri deposunda gezinmek için bu bağlantıyı kullanır. Çoğu veritabanı sistemi için bir kullanıcı adı ve parola sağlarsınız. Eski bir iç Azure Databricks çalışma alanı Hive meta veri deposuna bağlantı için Hive meta veri deposu federasyonu yetkilendirmeyi üstlenir.
Hive meta veri deposunda kayıtlı tabloların yolları için Unity Catalog'da depolama kimlik bilgisi ve dış konum oluşturun.
Dış konumlar yolları ve bu yollara erişmek için gereken depolama kimlik bilgilerini içerir. Depolama kimlik bilgileri, Azure yönetilen kimlikleri gibi kimlik bilgilerini belirtmek için kullanılan Unity Catalog güvenceli nesneleridir ve bulut depolamaya erişim sağlarlar. Dış konumları oluşturmak için seçtiğiniz iş akışına bağlı olarak, dış konumu oluşturmadan önce depolama kimlik bilgileri oluşturmanız gerekebilir.
1. adımda oluşturduğunuz bağlantıyı kullanarak Unity Kataloğu'nda bir yabancı katalog oluşturun.
Bu, çalışma alanı kullanıcılarının ve iş akışlarının Unity Kataloğu'nu kullanarak Hive meta veri deposu tablolarıyla çalışmak için kullandığı katalogdur. Yabancı kataloğu oluşturduktan sonra Unity Kataloğu bunu Hive meta veri deposunda kayıtlı tablolarla doldurur.
Unity Kataloğu'nu kullanarak yabancı katalogdaki tablolara ayrıcalıklar verin.
Ayrıntılı erişim denetimi için Unity Kataloğu satır ve sütun filtrelerini de kullanabilirsiniz.
Verileri sorgulamaya başlayın.
Unity Kataloğu kullanılarak yabancı tablolara erişim, dış Hive meta veri depoları için salt okunur ve iç Hive meta veri depoları için okuma ve yazma şeklindedir.
İç Hive meta veri depoları ve dış Hive meta veri depoları için Unity Kataloğu, Hive meta veri deposunda değiştikçe tablo meta verilerini sürekli olarak güncelleştirir. İç Hive meta veri depoları için, yabancı katalogdan işlenen yeni tablolar ve tablo güncelleştirmeleri Hive meta veri deposuna geri yazılır ve Unity Kataloğu ile Hive meta veri deposu katalogları arasında tam birlikte çalışabilirlik sağlanır.
Ayrıntılı yönergeler için bkz:
- Eski bir çalışma alanı Hive meta veri deposu için Hive meta veri deposu federasyonunu etkinleştirin
- Dış bir Hive meta veri deposu için Hive meta veri deposu federasyonunu etkinleştirme
Unity Kataloğu'na geçiş sırasında Hive meta veri deposu federasyonunu nasıl kullanırsınız?
Hive meta veri deposu federasyonu, ekipler ve iş yükleri arasındaki koordinasyon gereksinimini azaltarak Unity Kataloğu'na artımlı olarak geçiş yapmanızı sağlar. Özellikle, Azure Databricks çalışma alanınızın iç Hive meta veri deposundan geçiş gerçekleştiriyorsanız, hem Hive meta veri deposundan hem de Unity Kataloğu meta veri deposundan okuma ve yazma olanağı, geçiş sırasında "yansıtılmış" meta depoları koruyabileceğiniz ve aşağıdaki avantajları sağladığınız anlamına gelir:
- Yabancı kataloglara karşı çalışan iş yükleri Hive meta veri deposu uyumluluk modunda çalıştırılarak geçiş sırasında kod uyarlama maliyetini azaltır.
- Her iş yükü, geçiş döneminde verilerin hem Hive meta veri deposunda hem de Unity Kataloğu'nda kullanılabilir olacağını bilerek diğer iş yüklerinden bağımsız olarak geçiş yapmayı seçebilir ve bu sayede birbirine bağımlılıkları olan iş yükleri arasında eşgüdüm sağlama gereksinimi ortadan silinir.
Bu bölümde, Azure Databricks çalışma alanının iç eski Hive meta veri deposunun Unity Kataloğu'na geçirilmesine yönelik tipik bir iş akışı açıklanır ve Hive meta veri deposu federasyonu geçişi kolaylaştırabilir. Harici Hive meta veri deposunu taşımak için geçerli değildir. Dış Hive meta veri depoları için dış kataloglar yazma işlemlerini desteklemez.
1. Adım: İç Hive meta veri deposunu federe edin
Bu adımda, Unity Kataloğu'nda Hive meta veri deponuzu yansıtan bir yabancı katalog oluşturursunuz. Hadi ona hms_in_uc
diyelim.
Hive meta veri deposunda çalışan iş yüklerini ve aynalanmış Unity Kataloğu yabancı kataloğunun (foreign catalog) varlığını gösteren diyagram
Not
Federasyon işleminin bir parçası olarak, bulut depolamadaki verilere erişim sağlamak için dış konumlar ayarlarsınız. Bazı iş yüklerinin eski erişim mekanizmalarını kullanarak verileri sorguladığı ve diğer iş yüklerinin Unity Kataloğu'nda aynı verileri sorguladığı geçiş senaryolarında, dış konumlardaki Unity Kataloğu tarafından yönetilen erişim denetimleri, eski iş yüklerinin Unity Kataloğu özellikli işlemden depolama yollarına erişmesini engelleyebilir. Bu dış konumlarda "geri dönüş modunu" etkinleştirerek eski iş yükü için tanımlanan küme veya not defteri kapsamlı kimlik bilgilerine geri dönebilirsiniz. Geçişiniz tamamlandığında geri dönüş modunu kapatırsınız. Bkz. Geri dönüş modu nedir?.
Ayrıntılar için bkz. Hive meta veri deposu federasyonunu eski bir çalışma alanı için etkinleştirme.
Adım 2. Unity Kataloğu'nda yabancı kataloğa karşı yeni iş yükleri çalıştırma
Yabancı bir kataloğunuz olduğunda, SQL analistlerine ve veri bilimi tüketicilerine bu kataloğa erişim verebilir ve buna işaret eden yeni iş yükleri geliştirmeye başlayabilirsiniz. Yeni iş yükleri, Erişim denetimleri, arama ve köken gibi Unity Kataloğu'ndaki ek özellik kümesinden yararlanıyor.
Hive meta veri deposunda çalışan mevcut iş yüklerini ve aynalanmış Unity Catalog yabancı katalogunda çalışan yeni iş yüklerini gösteren diyagram
Bu adımda genellikle aşağıdakileri yaparsınız:
- Unity Kataloğu ile uyumlu işlem (standart veya ayrılmış işlem erişim modları, SQL ambarları veya sunucusuz işlem) seçeneğini belirleyin. Bkz . Gereksinimler ve özellik desteği.
- Yabancı kataloğu işlem kaynağındaki varsayılan katalog yapın veya kodunuzun en üstüne
USE CATALOG hms_in_uc
ekleyin. Yabancı katalogdaki şemalar ve tablo adları Hive meta veri deposundakilerin tam yansıtmaları olduğundan kodunuz yabancı kataloğa başvurmaya başlar.
Adım 3. Mevcut işleri yabancı katalog üzerinde çalışacak şekilde geçirme
Var olan işleri, yabancı kataloğu sorgulamak için geçirmek:
- İş kümesindeki varsayılan kataloğu
hms_in_uc
olacak şekilde değiştirmek için kümenin kendisinde bir özellik ayarlayın veya kodunuzun en üstüneUSE CATALOG hms_in_uc
ekleyin. - Görevi standart veya özel erişim modu işlemine geçirin ve Hive meta veri deposu federasyonunu destekleyen Databricks Runtime sürümlerinden birine yükseltin. Bkz . Gereksinimler ve özellik desteği.
- Azure Databricks yöneticisinden,
hms_in_uc
içindeki veri nesneleri ve işin eriştiği Unity Catalog dış konumlarında yer alan tüm bulut depolama yollarında doğru Unity Catalog ayrıcalıklarını vermesini isteyin. Unity Kataloğu'nda ayrıcalıkları yönetme konusuna bakın .
bağlamında HMS federasyonuna genel bakış sağlayan diyagramın ikinci örneği
Adım 4. Hive meta veri deposuna doğrudan erişimi devre dışı bırakma
Tüm iş yüklerinizi yabancı katalog üzerinde sorgulatacak şekilde aktardıktan sonra, artık Hive meta veri deposuna ihtiyacınız kalmaz.
Hive meta veri deposuna doğrudan erişimi devre dışı bırakın.
kullanıcıların, işlem ilkeleri ve Kullanıcı yalıtımını zorla çalışma alanı ayarını kullanarak tablo erişim denetimini atlayan (yalıtım olmayan paylaşılan erişim modu veya eski bir özel küme türü kullanarak) kümeler oluşturmasını ve kullanmasını engelleyin.
Bkz . İşlem yapılandırmaları ve Çalışma alanında kullanıcı yalıtım kümesi türlerini zorunlu kılma.
Çalışma alanının varsayılan kataloğu olarak federasyon kataloğunu ayarlayın.
Sık sorulan sorular
Aşağıdaki bölümlerde Hive meta veri deposu federasyonu hakkında daha ayrıntılı bilgiler sağlanmaktadır.
Geri dönüş modu nedir?
Geri Dönüş modu, Unity Kataloğu'na geçiş sırasında Unity Kataloğu izin denetimlerini atlamak için kullanabileceğiniz dış konumlardaki bir ayardır. Ayarın yapılması, henüz taşınmamış iş yüklerinin kurulum aşamasında etkilenmesini önler.
Unity Kataloğu, bulut depolama hesabınıza erişmek için bir yol ve kimlik bilgisi tanımlayan güvenli hale getirilebilir nesneler olan dış konumları kullanarak bulut depolamaya erişim elde eder. Yolu kimlerin kullanabileceğini yönetmek için READ FILES
gibi izinler verilmektedir. Geçiş işlemi sırasında karşılaşılan zorluklardan biri, yola referans veren, henüz geçirilmemiş mevcut iş yükleriniz olduğunda, örneğin, yolun tüm erişiminin hemen Unity Kataloğu tarafından yönetilmesini istemeyebilirsiniz.
Geri dönüş modu, harici konumlarda Unity Catalog erişim kontrolünü sıkı bir şekilde uygulamayı geciktirmenize olanak tanır. Geri dönüş modu etkinleştirildiğinde, yola erişen iş yükleri ilk olarak Unity Kataloğu izinlerine göre denetlenir ve başarısız olurlarsa örnek profilleri veya Apache Spark yapılandırma özellikleri gibi küme veya not defteri kapsamlı kimlik bilgilerini kullanmaya geri döner. Bu, mevcut iş yüklerinin geçerli kimlik bilgilerini kullanmaya devam etmesini sağlar.
Geri dönüş modu yalnızca geçiş sırasında kullanılmak üzere tasarlanmıştır. Tüm iş yükleri taşındığında ve Unity Catalog erişim denetimlerini uygulamaya hazır olduğunuzda, bunu kapatmalısınız.
Geri dönüş kullanımını aramak için denetim günlüğü sorgula
Dış konuma erişimin son 30 gün içinde geri dönüş modunu kullanıp kullanmadiğini denetlemek için aşağıdaki sorguyu kullanın. Hesabınızda geri dönüş modu erişimi yoksa Databricks geri dönüş modunu kapatmanızı önerir.
SELECT event_time, user_identity, action_name, request_params, response, identity_metadata
FROM system.access.audit
WHERE
request_params.fallback_enabled = 'true' AND
request_params.path LIKE '%some-path%' AND
event_time >= current_date() - INTERVAL 30 DAYS
LIMIT 10
Yetkili yollar nelerdir?
Hive meta veri deposu federasyonu tarafından yedeklenen bir yabancı katalog oluşturduğunuzda, Hive meta veri deposu tablolarının depolandığı bulut depolamaya yetkili yollar sağlamanız istenir. Hive meta veri deposu federasyonu kullanarak erişmek istediğiniz tüm tablolar bu yolların kapsamına alınmalıdır. Databricks, yetkili yollarınızın çok sayıda tabloda ortak olan alt yollar olmasını önerir. Örneğin, abfss://container@storageaccount.dfs.core.windows.net/bucket/table1
, ./bucket/table2
ve ./bucket/table3
tablolarınız varsa, yetkili yol olarak abfss://container@storageaccount.dfs.core.windows.net/bucket/
sağlamalısınız.
Hive meta veri deponuzda bulunan yolları belirlemenize yardımcı olması için UCX kullanabilirsiniz.
Yetkili yollar, Hive meta veri deposu federasyonu tarafından yedeklenen yabancı kataloglara ek bir güvenlik katmanı ekler. Katalog sahibinin kullanıcıların federasyon kullanarak erişebileceği verilere korumalar uygulamasına olanak tanır. Hive meta veri deponuz kullanıcıların meta verileri güncelleştirmesine ve tablo konumlarını rastgele değiştirmesine izin veriyorsa - bu güncellemelerin yabancı kataloğa eşitlenmesi yerine - bu çok yararlıdır. Bu senaryoda, kullanıcılar zaten erişimi olan tabloları yeniden tanımlayabilir ve böylece başka türlü erişmeyecekleri yeni konumlara işaret edebilir.
UCX kullanarak Hive meta veri depolarını federasyona ekleyebilir miyim?
Azure Databricks çalışma alanlarını Unity Kataloğu'na geçirmeye yönelik Databricks Labs projesi olan UCX, Hive meta veri deposu federasyonunu etkinleştirmeye yönelik yardımcı programlar içerir:
enable-hms-federation
create-federated-catalog
GitHubüzerindeki
Gereksinimler ve özellik desteği
Aşağıdaki tabloda Hive meta veri deposu federasyonu tarafından desteklenen hizmetler ve özellikler listelenmektedir. Bazı durumlarda desteklenmeyen hizmetler veya özellikler de listelenir. Bu tablolarda "HMS" Hive meta veri deposu anlamına gelir.
Kategori | Destekleniyor | Desteklenmiyor |
---|---|---|
Meta veri depoları |
|
|
Işlem |
|
|
Hive metastore veri varlıkları |
|
|
Depolama |
|
|
İşlem türleri |
|
Yalıtım kümesi yok |
Bilgi İşlem Sürümleri |
|
|
Unity Kataloğu özellikleri |
|
|
Sığ klonlarla çalışma
Önemli
Basit kopyalama desteği Genel Önizleme aşamasındadır.
Hive meta veri deposu federasyonu, Hive meta veri deposunda kayıtlı tablolardan aşağıdaki uyarılar ile sığ kopyaların oluşturulmasını destekler:
Hive meta veri deposu federe kataloğundan sığ kopyayı okuduğunuzda, kopyanın
DEGRADED
hazırlık durumu vardır. Bu, sığ kopyanın, sığ kopya tablosundan okuyan kullanıcının hem sığ kopya hem de temel tablodaSELECT
ayrıcalığına sahip olmasını gerektiren Hive izin modelini kullandığını gösterir.Sığ kopyayı Unity Kataloğu izin modeliyle tutarlı olacak şekilde yükseltmek için tablo sahibinin
REPAIR TABLE <table> SYNC METADATA
çalıştırması gerekir. Komut çalıştırıldıktan sonra tablonun sağlama durumuACTIVE
olarak değişir ve bundan sonra izinler Unity Kataloğu tarafından denetlenecektir. Sonraki okumalar yalnızca sığ kopya üzerindeSELECT
gerektirir, komut Unity Catalog'u destekleyen bir işlemde çalıştırıldığı sürece.DBFS'de oluşturulan veya DBFS'ye bağlanan tablolara dayalı sığ kopyaları desteklenmez.
Sınırlamalar
- Tablo dosyalarının federasyon tablosunun konumunun dışında depolandığı federasyon tablolarını sorgulayamazsınız. Bunlar, bölümlerin tablo konumu dışında depolandığı tabloları veya tablo özelliği kullanılarak
avro.schema.url
şemaya başvurulan Avro tablolarını içerebilir. Bu tür tablolar sorgulandığında birUNAUTHORIZED_ACCESS
veyaAccessDeniedException
özel durumu fırlatılabilir.