Unity Kataloğu en iyi yöntemleri
Bu belge, veri idaresi gereksinimlerinizi karşılamak için Unity Kataloğu ve Delta Paylaşımı'nı kullanmaya yönelik öneriler sağlar.
Unity Kataloğu, Databricks platformundaki veriler ve yapay zeka için ayrıntılı bir idare çözümüdür. Veri erişimini yönetmek ve denetlemek için merkezi bir yer sağlayarak verilerinizin güvenliğini ve idaresini basitleştirmeye yardımcı olur. Delta Sharing, Azure Databricks'teki verileri kuruluşunuzun dışındaki kullanıcılarla paylaşmanızı sağlayan güvenli bir veri paylaşım platformudur. Paylaşım davranışını yönetmek ve denetlemek için Unity Kataloğu'nu kullanır.
Veri idaresi ve veri yalıtımı yapı taşları
Kuruluşunuzda çalışan bir veri idaresi modeli ve veri yalıtım planı geliştirmek için, Azure Databricks'te veri idaresi çözümünüzü oluştururken kullanabileceğiniz birincil yapı taşları anlamanıza yardımcı olur.
Aşağıdaki diyagramda Unity Kataloğu'ndaki birincil veri hiyerarşisi gösterilmektedir (bazı güvenli hale getirilebilir nesneler, kataloglar altında yönetilen nesne hiyerarşisini vurgulayan gri gösterilir).
Bu hiyerarşideki nesneler aşağıdakileri içerir:
Meta veri deposu: Meta veri deposu, Unity Kataloğu'ndaki nesnelerin en üst düzey kapsayıcısıdır. Meta veri depoları hesap düzeyinde çalışır ve Azure Databricks veri idaresi modelinde piramidin en üstünde yer alır.
Meta veri depoları veri varlıklarını (tablolar, görünümler ve birimler) ve bunlara erişimi yöneten izinleri yönetir. Azure Databricks hesap yöneticileri, çalıştıkları her bölge için bir meta veri deposu oluşturabilir ve bunları aynı bölgedeki birden çok Azure Databricks çalışma alanına atayabilir. Meta veri deposu yöneticileri meta veri deposundaki tüm nesneleri yönetebilir. Meta veri deposunda kayıtlı tabloları okumak ve bunlara yazmak için doğrudan erişimleri yoktur, ancak veri nesnesi sahipliğini aktarma yetenekleri aracılığıyla dolaylı erişime sahip olurlar.
Belirli bir meta veri deposu için fiziksel depolama varsayılan olarak hesabınızdaki diğer meta veri depoları için depolama alanından yalıtılır.
Meta veri depoları bölgesel yalıtım sağlar ancak veri yalıtım birimi olarak tasarlanmamıştır. Veri yalıtımı katalog düzeyinde başlamalıdır.
Katalog: Kataloglar, Unity Kataloğu meta veri deposu tarafından yönetilen veri hiyerarşisindeki (katalog > şema > tablosu/görünümü/birimi) en yüksek düzeydir. Bunlar tipik bir Azure Databricks veri idaresi modelinde birincil veri yalıtım birimi olarak tasarlanmıştır.
Kataloglar, genellikle veri erişim gereksinimleriyle sınırlanmış bir mantıksal şema grubunu temsil eder. Kataloglar genellikle kuruluş birimlerini veya yazılım geliştirme yaşam döngüsü kapsamlarını yansıtır. Örneğin, üretim verileri için bir katalog ve geliştirme verileri için bir katalog ya da müşteri dışı veriler için bir katalog ve hassas müşteri verileri için bir katalog seçebilirsiniz.
Kataloglar meta veri deposu düzeyinde depolanabilir veya bir kataloğu üst meta veri deposunun geri kalanından ayrı olarak depolanacak şekilde yapılandırabilirsiniz. Çalışma alanınız Unity Kataloğu için otomatik olarak etkinleştirildiyse meta veri deposu düzeyinde depolama alanı yoktur ve katalog oluştururken bir depolama konumu belirtmeniz gerekir.
Katalog, Azure Databricks veri idaresi modelindeki birincil veri yalıtım birimiyse, çalışma alanı veri varlıklarıyla çalışmaya yönelik birincil ortamdır. Meta veri deposu yöneticileri ve katalog sahipleri, kataloglara erişimi çalışma alanlarından bağımsız olarak yönetebilir veya belirli veri türlerinin yalnızca bu çalışma alanlarında işlenmesini sağlamak için katalogları belirli çalışma alanlarına bağlayabilir. Örneğin, ayrı üretim ve geliştirme çalışma alanları veya kişisel verileri işlemek için ayrı bir çalışma alanı isteyebilirsiniz.
Varsayılan olarak, güvenli hale getirilebilir bir nesnenin erişim izinleri, hiyerarşinin en üstünde kataloglar ile bu nesnenin alt öğeleri tarafından devralınır. Bu, verileriniz için varsayılan erişim kuralları ayarlamayı ve hiyerarşinin her düzeyinde yalnızca ihtiyacınız olan yerlerde farklı kurallar belirtmeyi kolaylaştırır.
Şema (Veritabanı): Veritabanları olarak da bilinen şemalar, tablosal verilerin (tablolar ve görünümler), tablosal olmayan verilerin (birimler), işlevlerin ve makine öğrenmesi modellerinin mantıksal gruplandırmasıdır. Bunlar, kataloglardan daha ayrıntılı olan verileri düzenlemeniz ve bunlara erişimi denetlemeniz için size bir yol sağlar. Genellikle tek bir kullanım örneğini, projeyi veya takım korumalı alanını temsil ederler.
Şemalar üst katalogla aynı fiziksel depolama alanında depolanabilir veya bir şemayı üst kataloğun geri kalanından ayrı olarak depolanacak şekilde yapılandırabilirsiniz.
Meta veri deposu yöneticileri, üst katalog sahipleri ve şema sahipleri şemalara erişimi yönetebilir.
Tablolar: Tablolar Unity Kataloğu'nun üç düzeyli ad alanının üçüncü katmanında yer alır. Bunlar veri satırları içerir.
Unity Kataloğu, yönetilen tablolar ve dış tablolar oluşturmanıza olanak tanır.
Yönetilen tablolar için Unity Kataloğu yaşam döngüsünü ve dosya düzenini tam olarak yönetir. Varsayılan olarak, yönetilen tablolar bir meta veri deposu oluşturduğunuzda yapılandırdığınız kök depolama konumunda depolanır. Bunun yerine, katalog veya şema düzeylerinde yönetilen tablolar için depolamayı yalıtmayı seçebilirsiniz.
Dış tablolar, Unity Kataloğu'nu değil, veri yaşam döngüsünü ve dosya düzenini bulut sağlayıcınız ve diğer veri platformları kullanılarak yönetilen tablolardır. Genellikle büyük miktarlarda mevcut verilerinizi kaydetmek için dış tablolar kullanırsınız veya Azure Databricks kümeleri ve Databricks SQL ambarları dışındaki araçları kullanarak verilere yazma erişimine de ihtiyacınız varsa. Bir dış tablo Unity Kataloğu meta veri deposuna kaydedildikten sonra, yönetilen tablolarda olduğu gibi Azure Databricks erişimini yönetebilir ve denetleyebilirsiniz.
Üst katalog sahipleri ve şema sahipleri, meta veri deposu yöneticileri (dolaylı olarak) gibi tablolara erişimi yönetebilir.
Görünümler: Görünüm, meta veri deposundaki bir veya daha fazla tablo ve görünümden türetilmiş salt okunur bir nesnedir.
Satırlar ve sütunlar: Veri maskeleme ile birlikte satır ve sütun düzeyinde erişim, dinamik görünümler veya satır filtreleri ve sütun maskeleri kullanılarak verilir. Dinamik görünümler salt okunur durumdadır.
Birimler: Birimler Unity Kataloğu'nun üç düzeyli ad alanının üçüncü katmanında yer alır. Tablosal olmayan verileri yönetir. Dosyaları yapılandırılmış, yarı yapılandırılmış ve yapılandırılmamış veriler dahil olmak üzere herhangi bir biçimde depolamak, düzenlemek ve bunlara erişmek için birimleri kullanabilirsiniz. Birimlerdeki dosyalar tablo olarak kaydedilemez.
Modeller ve işlevler: Bunlar tam olarak açık olmasa da, veri varlıkları, kayıtlı modeller ve kullanıcı tanımlı işlevler unity Kataloğu'nda da yönetilebilir ve nesne hiyerarşisinde en düşük düzeyde bulunabilir. Bkz. Unity Kataloğu'nda model yaşam döngüsünü yönetme ve Unity Kataloğu'nda Kullanıcı tanımlı işlevler (UDF) .
Veri yalıtım modelinizi planlama
Bir kuruluş Azure Databricks gibi bir veri platformu kullandığında, genellikle ortamlar (geliştirme ve üretim gibi) veya kuruluş işletim birimleri arasında veri yalıtımı sınırları olması gerekir.
Yalıtım standartları kuruluşunuz için farklılık gösterebilir, ancak genellikle aşağıdaki beklentileri içerir:
- Kullanıcılar yalnızca belirtilen erişim kurallarına göre verilere erişim elde edebilir.
- Veriler yalnızca belirlenen kişiler veya ekipler tarafından yönetilebilir.
- Veriler depolama alanında fiziksel olarak ayrılır.
- Verilere yalnızca belirlenen ortamlarda erişilebilir.
Veri yalıtımı gereksinimi, hem veri idaresini hem de işbirliğini gereksiz yere zorlaştırabilecek silolu ortamlara yol açabilir. Azure Databricks, birleşik bir veri idare platformunun bakımını yaparken çeşitli veri yalıtım seçenekleri sağlayan Unity Kataloğu'nu kullanarak bu sorunu çözer. Bu bölümde, ister merkezi bir veri idaresi modelini ister dağıtılmış bir modeli tercih edin, Azure Databricks'te sağlanan veri yalıtımı seçenekleri ve bunların nasıl kullanılacağı açıklanmaktadır.
Kullanıcılar yalnızca belirtilen erişim kurallarına göre verilere erişim elde edebilir
Çoğu kuruluş, iç veya mevzuat gereksinimlerine göre veri erişimiyle ilgili katı gereksinimlere sahiptir. Güvenliğinin korunması gereken tipik veri örnekleri arasında çalışan maaş bilgileri veya kredi kartı ödeme bilgileri yer alır. Bu tür bilgilere erişim genellikle sıkı bir şekilde denetlenip düzenli aralıklarla denetlenmektedir. Unity Kataloğu, bu sektör standartlarını karşılamak için katalogdaki veri varlıkları üzerinde ayrıntılı denetim sağlar. Unity Kataloğu'un sağladığı denetimlerle kullanıcılar yalnızca görme ve sorgulama hakkına sahip oldukları verileri görebilir ve sorgulayabilir.
Veriler yalnızca belirlenen kişiler veya ekipler tarafından yönetilebilir
Unity Kataloğu, merkezi ve dağıtılmış idare modelleri arasında seçim yapabilmenizi sağlar.
Merkezi idare modelinde, idare yöneticileriniz meta veri deposunun sahipleridir ve herhangi bir nesnenin sahipliğini alıp izinleri verebilir ve iptal edebilir.
Dağıtılmış idare modelinde katalog veya katalog kümesi veri etki alanıdır. Bu kataloğun sahibi tüm varlıkları oluşturup sahip olabilir ve bu etki alanı içindeki idareyi yönetebilir. Belirli bir etki alanının sahipleri, diğer etki alanlarının sahiplerinden bağımsız olarak çalışabilir.
Veri etki alanınız olarak meta depoyu veya katalogları seçmenizden bağımsız olarak Databricks, meta veri deposu yöneticisi veya katalog sahibi olarak bir grup ayarlamanızı kesinlikle önerir.
Veriler depolama alanında fiziksel olarak ayrılmıştır
Bir kuruluş, belirli türlerdeki verilerin bulut kiracısında belirli hesaplarda veya demetlerde depolanmasını gerektirebilir.
Unity Kataloğu, bu gereksinimleri karşılamak için meta veri deposu, katalog veya şema düzeyinde depolama konumlarını yapılandırma olanağı sağlar.
Örneğin, kuruluşunuzun insan kaynaklarıyla ilgili üretim verilerinin kapsayıcı abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net bulunmasına ihtiyaç duyan bir şirket uyumluluk ilkesi olduğunu varsayalım. Unity Kataloğu'nda, katalog düzeyinde bir konum ayarlayarak, örneğin hr_prod
adlı bir katalog oluşturarak ve buna abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net/unity-catalog konumunu atayarak bu gereksinimi elde edebilirsiniz. Bu, katalogda oluşturulan yönetilen tabloların veya birimlerin hr_prod
(örneğin, kullanarak CREATE TABLE hr_prod.default.table …
) verilerini abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net/unity-catalog içinde depoladıkları anlamına gelir. İsteğe bağlı olarak, içindeki verileri daha ayrıntılı bir düzeyde düzenlemek için şema düzeyinde konumlar sağlamayı hr_prod catalog
seçebilirsiniz.
Böyle bir depolama yalıtımı gerekli değilse, meta veri deposu düzeyinde bir depolama konumu ayarlayabilirsiniz. Sonuç olarak, bu konumun yönetilen tabloları ve birimleri meta veri deposundaki kataloglar ve şemalar arasında depolamak için varsayılan bir konum görevi görür.
Sistem, şemadan kataloğa ve meta veri deposuna kadar depolama konumlarının hiyerarşisini değerlendirir.
Örneğin, içinde my-region-metastore
bir tablo myCatalog.mySchema.myTable
oluşturulduysa, tablo depolama konumu aşağıdaki kurala göre belirlenir:
- için
mySchema
bir konum sağlandıysa, orada depolanır. - Aksi takdirde ve üzerinde
myCatalog
bir konum sağlanmışsa, orada depolanır. - Son olarak, üzerinde
myCatalog
hiçbir konum sağlanmadıysa, ilemy-region-metastore
ilişkilendirilmiş konumda depolanır.
Verilere yalnızca belirlenen ortamlarda erişilebilir
Kuruluş ve uyumluluk gereksinimleri genellikle kişisel veriler gibi belirli verileri yalnızca belirli ortamlarda erişilebilir tutmanızı belirtir. Ayrıca üretim verilerini geliştirme ortamlarından yalıtılmış olarak tutmak veya belirli veri kümelerinin ve etki alanlarının hiçbir zaman bir araya gelemediğinden emin olmak isteyebilirsiniz.
Databricks'te çalışma alanı birincil veri işleme ortamıdır ve kataloglar birincil veri etki alanıdır. Unity Kataloğu, meta veri deposu yöneticilerinin ve katalog sahiplerinin belirli çalışma alanlarına katalog atamasına veya "bağlamasına" olanak tanır. Bu ortam algılayan bağlamalar, kullanıcıya verilen veri nesnelerinde belirli ayrıcalıklardan bağımsız olarak çalışma alanında yalnızca belirli katalogların kullanılabilir olmasını sağlama olanağı sağlar.
Şimdi Unity Kataloğu'nu gereksinimlerinizi karşılayacak şekilde ayarlama işlemine daha ayrıntılı bir göz atalım.
Unity Kataloğu meta veri deposu yapılandırma
Meta veri deposu, Unity Kataloğu'ndaki nesnelerin en üst düzey kapsayıcısıdır. Meta veri depoları, veri varlıklarını (tablolar, görünümler ve birimler) ve Unity Kataloğu tarafından yönetilen diğer güvenli hale getirilebilir nesneleri yönetir. Güvenliği sağlanabilir nesnelerin tam listesi için bkz . Unity Kataloğu'nda Güvenliği sağlanabilir nesneler.
Bu bölümde meta veri depoları oluşturma ve yapılandırma ipuçları sağlanır. Çalışma alanınız Unity Kataloğu için otomatik olarak etkinleştirildiyse, meta veri deposu oluşturmanız gerekmez, ancak bu bölümde sunulan bilgiler yine de yararlı olabilir. Bkz. Unity Kataloğunun otomatik olarak etkinleştirilmesi.
Meta veri depolarını yapılandırma ipuçları:
Azure Databricks çalışma alanlarının bulunduğu her bölge için bir meta veri deposu ayarlamanız gerekir.
Tek bir bölgesel meta veri deposuna bağlı her çalışma alanının meta veri deposu tarafından yönetilen verilere erişimi vardır. Meta veri depoları arasında veri paylaşmak istiyorsanız Delta Paylaşımı'nı kullanın.
Her meta veri deposu, bulut kiracınızda yönetilen tabloları ve yönetilen birimleri depolamak için kullanılabilecek bir yönetilen depolama konumuyla (kök depolama olarak da adlandırılır) yapılandırılabilir.
Meta veri deposu düzeyinde yönetilen bir konum oluşturmayı seçerseniz, hiçbir kullanıcının bu konuma doğrudan erişimi olmadığından emin olmanız gerekir (yani, bu konumu içeren bulut hesabı aracılığıyla). Bu depolama konumuna erişim vermek, bir kullanıcının Unity Kataloğu meta veri deposundaki erişim denetimlerini atlamasına ve denetlenebilirliği kesintiye uğratmasına olanak sağlayabilir. Bu nedenlerden dolayı meta veri deposu tarafından yönetilen depolama alanınız ayrılmış bir kapsayıcı olmalıdır. Aynı zamanda DBFS kök dosya sisteminiz olan veya daha önce DBFS kök dosya sistemi olan bir kapsayıcıyı yeniden kullanmamalısınız.
Ayrıca, meta veri deposunun kök depolama konumunu geçersiz kılarak katalog ve şema düzeylerinde yönetilen depolama tanımlama seçeneğiniz de vardır. Çoğu senaryoda Databricks, yönetilen verilerin katalog düzeyinde depolanmasını önerir.
Unity Kataloğu için etkinleştirilmiş çalışma alanlarındaki çalışma alanı yöneticilerinin ayrıcalıklarını anlamanız ve mevcut çalışma alanı yönetici atamalarınızı gözden geçirmeniz gerekir.
Çalışma alanı yöneticileri, çalışma alanları için kullanıcı ve hizmet sorumluları ekleme, küme oluşturma ve diğer kullanıcıları çalışma alanı yöneticisi olarak atama gibi işlemleri yönetebilir. Çalışma alanınız Unity Kataloğu için otomatik olarak etkinleştirildiyse, çalışma alanı yöneticileri varsayılan olarak kataloglar ve diğer birçok Unity Kataloğu nesnesi oluşturabilir. Unity Kataloğu için çalışma alanları otomatik olarak etkinleştirildiğinde çalışma alanı yöneticisi ayrıcalıklarına bakın
Çalışma alanı yöneticileri ayrıca, Unity Kataloğu'nda kayıtlı verilere dolaylı erişim verebilen iş sahipliğini yönetme ve not defterlerini görüntüleme gibi çalışma alanı yönetim görevlerini gerçekleştirebilir. Çalışma alanı yöneticisi, dikkatli bir şekilde dağıtmanız gereken ayrıcalıklı bir roldür.
Kullanıcı veri erişimini yalıtmak için çalışma alanları kullanıyorsanız, çalışma alanı-katalog bağlamalarını kullanmak isteyebilirsiniz. Çalışma alanı-katalog bağlamaları, katalog erişimini çalışma alanı sınırlarına göre sınırlamanıza olanak tanır. Örneğin, çalışma alanı yöneticilerinin ve kullanıcılarının içindeki üretim verilerine
prod_catalog
yalnızca bir üretim çalışma alanı ortamından erişebildiğinden emin olabilirsiniz.prod_workspace
Varsayılan değer, kataloğu geçerli meta veri deposuna eklenmiş tüm çalışma alanlarıyla paylaşmaktır. Bkz. Katalog erişimini belirli çalışma alanlarıyla sınırlama.Çalışma alanınız Unity Kataloğu için otomatik olarak etkinleştirildiyse, önceden sağlanan çalışma alanı kataloğu varsayılan olarak çalışma alanınıza bağlıdır.
Bkz . Unity Kataloğu meta veri deposu oluşturma.
Dış konumları ve depolama kimlik bilgilerini yapılandırma
Dış konumlar Unity Kataloğu'nun bulut kiracınızdaki verileri kullanıcılar adına okumasına ve yazmasına olanak tanır. Dış konumlar, bulut depolama yolu olarak tanımlanır ve bu konuma erişmek için kullanılabilecek bir depolama kimlik bilgileriyle birlikte kullanılır.
Dış tabloları ve dış birimleri Unity Kataloğu'na kaydetmek için dış konumları kullanabilirsiniz. Bu varlıkların içeriği, bir kullanıcı birimi veya tabloyu oluşturduğunda başvuruda bulunılan dış bir konumdaki bir alt yolda fiziksel olarak bulunur.
Depolama kimlik bilgileri , bulut depolamaya erişim sağlayan uzun vadeli bir bulut kimlik bilgilerini kapsüller. Azure yönetilen kimliği (kesinlikle önerilir) veya hizmet sorumlusu olabilir. Azure yönetilen kimliği kullanmanın hizmet sorumlusu kullanmanın avantajları şunlardır:
- Yönetilen kimlikler kimlik bilgilerini korumanızı veya gizli dizileri döndürmenizi gerektirmez.
- Azure Databricks çalışma alanınız kendi sanal ağınıza dağıtıldıysa (sanal ağ ekleme olarak da bilinir), depolama güvenlik duvarı tarafından korunan bir Azure Data Lake Storage 2. Nesil hesabına bağlanabilirsiniz.
Daha fazla veri yalıtımı için hizmet kimlik bilgilerini, depolama kimlik bilgilerini ve dış konumları belirli çalışma alanlarına bağlayabilirsiniz. Bkz . (İsteğe bağlı) Belirli çalışma alanlarına hizmet kimlik bilgisi atama, (İsteğe bağlı) Belirli çalışma alanlarına dış konum atama ve (İsteğe bağlı) Belirli çalışma alanlarına depolama kimlik bilgisi atama.
İpucu
Dış konumlar, depolama kimlik bilgilerini ve depolama yollarını birleştirerek, depolama erişimi için güçlü denetim ve denetlenebilirlik sağlar. Kullanıcıların Unity Kataloğu tarafından sağlanan erişim denetimini atlamasını önlemek için, dış konum olarak kullanılan herhangi bir kapsayıcıya doğrudan erişimi olan kullanıcı sayısını sınırlamanız gerekir. Aynı nedenle, dış konum olarak da kullanılıyorsa depolama hesaplarını DBFS'ye bağlamamalısınız. Databricks, Katalog Gezgini'ni kullanarak bulut depolama konumlarındaki bağlamaları Unity Kataloğu'ndaki dış konumlara geçirmenizi önerir.
Dış konumları yönetmeye yönelik en iyi yöntemlerin listesi için bkz . Dış konumları, dış tabloları ve dış birimleri yönetme. Ayrıca bkz. Bulut depolamayı Azure Databricks'e bağlamak için dış konum oluşturma.
Verilerinizi düzenleme
Databricks, kuruluşunuzun bilgi mimarisinde ayrım sağlamak için katalogların kullanılmasını önerir. Bu genellikle katalogların bir yazılım geliştirme ortamı kapsamına, ekibine veya iş birimine karşılık geldiğini gösterir. Çalışma alanlarını, örneğin üretim ve geliştirme ortamları için farklı çalışma alanlarını veya son derece hassas verilerle çalışmak için belirli bir çalışma alanını kullanarak veri yalıtım aracı olarak kullanıyorsanız, kataloğu belirli çalışma alanlarına da bağlayabilirsiniz. Bu, belirtilen verilerin tüm işlemlerinin uygun çalışma alanında işlenmesini sağlar. Bkz. Katalog erişimini belirli çalışma alanlarıyla sınırlama.
Şema (veritabanı olarak da adlandırılır), Unity Kataloğu'nun üç düzeyli ad alanının ikinci katmanıdır ve tabloları, görünümleri ve birimleri düzenler. Varlıklarınız için izinleri düzenlemek ve tanımlamak için şemaları kullanabilirsiniz.
Unity Kataloğu tarafından yönetilen nesneler yönetilebilir veya dış olabilir:
Yönetilen nesneler , Unity Kataloğu'nda veri nesneleri oluşturmanın varsayılan yoludur.
Unity Kataloğu, bu güvenli hale getirilebilir öğeler için yaşam döngüsünü ve dosya düzenini yönetir. Yönetilen tablolardaki veya birimlerdeki dosyaları doğrudan işlemek için Azure Databricks dışındaki araçları kullanmamalısınız.
Yönetilen tablolar ve birimler, herhangi bir tablo veya birim için meta veri deposu, katalog veya şema düzeyinde bulunabilen yönetilen depolama alanında depolanır. Bkz. Veriler depolama alanında fiziksel olarak ayrılmıştır.
Yönetilen tablolar ve birimler, dış konumlar ve depolama kimlik bilgileri oluşturma ve yönetme ek yükü olmadan içeriğiniz için yönetilen bir konum sağlamak istediğinizde kullanışlı bir çözüm sağlar.
Yönetilen tablolar her zaman Delta tablo biçimini kullanır.
Dış nesneler , veri yaşam döngüsü ve dosya düzeni Unity Kataloğu tarafından yönetilmeyen güvenli hale getirilebilir nesnelerdir.
Dış birimler ve tablolar, veri kopyalama etkinliğine gerek kalmadan bulut depolama alanında zaten var olan çok sayıda dosyaya erişim sağlamak için bir dış konuma kaydedilir. Diğer sistemler tarafından oluşturulan ve Bunların Azure Databricks içinden erişim için hazırlanmasını istediğiniz dosyalarınız varsa veya Azure Databricks dışındaki araçlar bu dosyalara doğrudan erişim gerektirdiğinde dış nesneleri kullanın.
Dış tablolar Delta Lake'i ve Parquet, JSON ve CSV gibi diğer birçok veri biçimini destekler. Hem yönetilen hem de dış birimler rastgele biçimlerdeki dosyalara erişmek ve dosyaları depolamak için kullanılabilir: veriler yapılandırılabilir, yarı yapılandırılmış veya yapılandırılmamış olabilir.
Tablo ve birim oluşturma hakkında daha fazla bilgi için bkz . Tablo ve görünüm nedir? ve Unity Kataloğu birimleri nedir?.
Dış konumları, dış tabloları ve dış birimleri yönetme
Aşağıdaki diyagram, tek bir bulut depolama kapsayıcısının dosya sistemi hiyerarşisini temsil eder ve bir depolama kimlik bilgilerini paylaşan dört dış konum vardır.
Unity Kataloğu'nda dış konumları yapılandırdıktan sonra, dış konumların içindeki dizinlerde dış tablolar ve birimler oluşturabilirsiniz. Daha sonra Unity Kataloğu'nu kullanarak bu tablo ve birimlere kullanıcı ve grup erişimini yönetebilirsiniz. Bu, belirli kullanıcılara veya gruplara bulut depolama kapsayıcısında belirli dizinlere ve dosyalara erişim sağlamanıza olanak tanır.
Not
Bir dış birim tanımladığınızda, birim yolu altındaki verilere bulut URI erişimi birimin depolandığı dış konumda verilen ayrıcalıklara değil, birimde verilen ayrıcalıklara tabidir.
Dış konumları kullanma önerileri
Dış konumlarda izin verme önerileri:
Yalnızca Unity Kataloğu ile bulut depolama alanı arasında bağlantı kurma görevi olan bir yöneticiye veya güvenilen veri mühendislerine dış konumlar oluşturma olanağı verin.
Dış konumlar, Unity Kataloğu'nun içinden bulut depolamadaki geniş kapsamlı bir konuma (örneğin, bir demet veya kapsayıcının tamamı (abfss://my-container@storage-account.dfs.core.windows.net) ya da geniş bir alt yol (abfss://my-container@storage-account.dfs.core.windows.net/path/to/subdirectory) erişimi sağlar. Amaç, bir bulut yöneticisinin birkaç dış konum ayarlamaya dahil edilebileceği ve ardından bu konumları yönetme sorumluluğunu kuruluşunuzdaki bir Azure Databricks yöneticisine devredebileceğidir. Azure Databricks yöneticisi daha sonra dış konum altında belirli ön eklere dış birimler veya dış tablolar kaydederek dış konumu daha ayrıntılı izinlere sahip alanlar halinde düzenleyebilir.
Dış konumlar çok karmaşık olduğundan, Databricks yalnızca Unity Kataloğu ile bulut depolama alanı arasında bağlantı kurma görevi olan bir yöneticiye veya güvenilir veri mühendislerine izin verilmesini
CREATE EXTERNAL LOCATION
önerir. Databricks, diğer kullanıcılara daha ayrıntılı erişim sağlamak için dış tabloların veya birimlerin dış konumların üzerine kaydedilmesini ve kullanıcılara birimleri veya tabloları kullanarak verilere erişim verilmesini önerir. Tablolar ve birimler bir kataloğun ve şemanın alt öğeleri olduğundan, katalog veya şema yöneticileri erişim izinleri üzerinde nihai denetime sahiptir.Ayrıca, dış konuma erişimi belirli çalışma alanlarına bağlayarak da denetleyebilirsiniz. Bkz. (İsteğe bağlı) Belirli çalışma alanlarına dış konum atama.
Son kullanıcılara dış konumlar üzerinde genel
READ FILES
veyaWRITE FILES
izinler verme.Birimlerin kullanılabilirliği sayesinde kullanıcılar tablo, birim veya yönetilen konum oluşturma dışında dış konumları kullanmamalıdır. Veri bilimi veya diğer tablo dışı veri kullanım örnekleri için yol tabanlı erişim için dış konumlar kullanmamalıdır.
Birimler, SQL komutlarını, dbutil'leri, Spark API'lerini, REST API'lerini, Terraform'ı ve dosyalara göz atma, karşıya yükleme ve indirme için kullanıcı arabirimini kullanarak dosyalarla çalışma desteği sağlar. Ayrıca, birimler altında
/Volumes/<catalog_name>/<schema_name>/<volume_name>/
yerel dosya sisteminde erişilebilen bir FUSE bağlaması sunar. FUSE bağlaması, veri bilimcilerinin ve ML mühendislerinin birçok makine öğrenmesi veya işletim sistemi kitaplığının gerektirdiği şekilde yerel bir dosya sistemindeymiş gibi dosyalara erişmesini sağlar.Dış konumdaki dosyalara doğrudan erişim vermeniz gerekiyorsa (örneğin, bir kullanıcı bir dış tablo veya birim oluşturmadan önce bulut depolamadaki dosyaları keşfetmek için) ve vekleyebilirsiniz
READ FILES
. VermeWRITE FILES
için kullanım örnekleri nadirdir.
Aşağıdakileri yapmak için dış konumları kullanmanız gerekir:
- veya
CREATE TABLE
komutlarını kullanarakCREATE EXTERNAL VOLUME
dış tabloları ve birimleri kaydedin. - Belirli bir ön ekte dış tablo veya birim oluşturmadan önce bulut depolamadaki mevcut dosyaları keşfedin. Ayrıcalık
READ FILES
bir önkoşuldur. - Meta veri deposu kök demeti yerine bir konumu kataloglar ve şemalar için yönetilen depolama alanı olarak kaydedin. Ayrıcalık
CREATE MANAGED STORAGE
bir önkoşuldur.
Dış konumları kullanma hakkında daha fazla öneri:
Yol çakışmalarını önle: Hiçbir zaman dış konum kökünde dış birimler veya tablolar oluşturmayın.
Dış konum kökünde dış birimler veya tablolar oluşturursanız, dış konumda başka dış birimler veya tablolar oluşturamazsınız. Bunun yerine, dış konumun içindeki bir alt dizinde dış birimler veya tablolar oluşturun.
Dış birimleri kullanma önerileri
Aşağıdakileri yapmak için dış birimleri kullanmanız gerekir:
- ETL işlem hatlarının ve diğer veri mühendisliği etkinliklerinin ilk aşamalarında işlenmesini desteklemek üzere dış sistemler tarafından üretilen ham veriler için giriş alanlarını kaydedin.
- Alma için hazırlama konumlarını kaydedin; örneğin, Otomatik Yükleyici veya
COPY INTO
CTAS (CREATE TABLE AS
) deyimlerini kullanın. - Yönetilen birimler bir seçenek olmadığında veri bilimcileri, veri analistleri ve makine öğrenmesi mühendislerinin keşif veri analizi ve diğer veri bilimi görevlerinin bir parçası olarak kullanması için dosya depolama konumları sağlayın.
- Azure Databricks kullanıcılarına, izleme sistemleri veya IoT cihazları tarafından yakalanan büyük yapılandırılmamış veri koleksiyonları (görüntü, ses, video ve PDF dosyaları gibi) veya yerel bağımlılık yönetim sistemlerinden veya CI/CD işlem hatlarından dışarı aktarılan kitaplık dosyaları (JAR'ler ve Python tekerlek dosyaları) gibi diğer sistemler tarafından oluşturulan ve bulut depolama alanına yatırılan rastgele dosyalara erişim verin.
- Yönetilen birimler bir seçenek olmadığında günlük veya denetim noktası oluşturma dosyaları gibi işlemsel verileri depolayın.
Dış birimleri kullanma hakkında daha fazla öneri:
- Databricks, bir şema içinde bir dış konumdan dış birimler oluşturmanızı önerir.
İpucu
Veri alımı için verilerin başka bir konuma kopyalandığı durumlar (örneğin, Otomatik Yükleyici kullanarak veya COPY INTO
dış birimleri kullanın). Verileri tablo olarak sorgulamak istediğinizde dış tabloları kullanın; kopya dahil değildir.
Dış tabloları kullanma önerileri
Yönetilen tablolar oluşturmak bir seçenek olmadığında, bulut depolamada depolanan verilerin üzerinde normal sorgu desenlerini desteklemek için dış tablolar kullanmanız gerekir.
Dış tabloları kullanma hakkında daha fazla öneri:
- Databricks, şema başına bir dış konum kullanarak dış tablolar oluşturmanızı önerir.
- Databricks, tutarlılık sorunları riski nedeniyle bir tablonun birden fazla meta veri deposuna dış tablo olarak kaydedilmesini kesinlikle önerir. Örneğin, bir meta veri deposundaki şema değişikliği ikinci meta veri deposuna kaydedilmez. Meta veri depoları arasında veri paylaşmak için Delta Paylaşımı'nı kullanın. Bkz . Delta Sharing kullanarak verileri güvenli bir şekilde paylaşma.
Erişim denetimini yapılandırma
Unity Kataloğu'nda güvenliği sağlanabilir her nesnenin bir sahibi vardır. Bir nesne oluşturan sorumlu, ilk sahibi olur. Bir nesnenin sahibi, nesne üzerinde bir tablodaki SELECT ve MODIFY gibi tüm ayrıcalıklara ve güvenli hale getirilebilir nesne üzerinde diğer sorumlulara ayrıcalık verme iznine sahiptir. Yalnızca güvenli hale getirilebilir bir nesnenin sahipleri, bu nesne üzerinde diğer sorumlulara ayrıcalık verme iznine sahiptir. Bu nedenle, nesnedeki izinlerin yönetiminden sorumlu gruba tüm nesneler üzerinde sahipliği yapılandırmak en iyi yöntemdir. Hem sahip hem de meta veri deposu yöneticileri, güvenli hale getirilebilir bir nesnenin sahipliğini bir gruba aktarabilir. Ayrıca, nesne bir katalogda (tablo veya görünüm gibi) yer alırsa, katalog ve şema sahibi nesnenin sahipliğini değiştirebilir.
Unity Kataloğu'ndaki güvenliği sağlanabilir nesneler hiyerarşiktir ve ayrıcalıklar aşağı doğru devralınır. Başka bir deyişle, bir katalog veya şemada ayrıcalık verilmesi, katalog veya şema içindeki tüm geçerli ve gelecekteki nesnelere otomatik olarak ayrıcalık verir. Daha fazla bilgi için bkz . Devralma modeli.
Tablodaki verileri okumak veya bir kullanıcıyı görüntülemek için aşağıdaki ayrıcalıklara sahip olması gerekir:
SELECT
tablo veya görünümdeUSE SCHEMA
tabloya sahip şemadaUSE CATALOG
şemanın sahibi olan katalogda
USE CATALOG
, alt nesnelerine erişmek için izin verenin katalogda dolaşmasını sağlar ve USE SCHEMA
verenin alt nesnelerine erişmek için şemada dolaşmasını sağlar. Örneğin, bir tablodan veri seçmek için kullanıcıların bu tabloda ayrıcalığı ve üst kataloğundaki USE CATALOG
ayrıcalığı ve üst şemasındaki USE SCHEMA
ayrıcalığı olması gerekirSELECT
. Bu nedenle, veri ad alanınızın bölümlerine erişimi belirli gruplarla kısıtlamak için bu ayrıcalığı kullanabilirsiniz. Yaygın bir senaryo, yalnızca bu ekibin şemaya sahip USE SCHEMA
olduğu ve CREATE
şemada bulunduğu ekip başına bir şema ayarlamaktır. Başka bir deyişle, ekip üyeleri tarafından oluşturulan tüm tablolar yalnızca ekip içinde paylaşılabilir.
Aşağıdaki SQL söz dizimini kullanarak bir tabloya erişimin güvenliğini sağlayabilirsiniz:
GRANT USE CATALOG ON CATALOG < catalog_name > TO < group_name >;
GRANT USE SCHEMA ON SCHEMA < catalog_name >.< schema_name >
TO < group_name >;
GRANT
SELECT
ON < catalog_name >.< schema_name >.< table_name >;
TO < group_name >;
Aşağıdaki SQL söz diziminde gösterildiği gibi ikincil şemada dinamik bir görünüm kullanarak sütunlara erişimin güvenliğini sağlayabilirsiniz:
CREATE VIEW < catalog_name >.< schema_name >.< view_name > as
SELECT
id,
CASE WHEN is_account_group_member(< group_name >) THEN email ELSE 'REDACTED' END AS email,
country,
product,
total
FROM
< catalog_name >.< schema_name >.< table_name >;
GRANT USE CATALOG ON CATALOG < catalog_name > TO < group_name >;
GRANT USE SCHEMA ON SCHEMA < catalog_name >.< schema_name >.< view_name >;
TO < group_name >;
GRANT
SELECT
ON < catalog_name >.< schema_name >.< view_name >;
TO < group_name >;
Aşağıdaki SQL söz diziminde gösterildiği gibi ikincil şemada dinamik bir görünüm kullanarak satırlara erişimin güvenliğini sağlayabilirsiniz:
CREATE VIEW < catalog_name >.< schema_name >.< view_name > as
SELECT
*
FROM
< catalog_name >.< schema_name >.< table_name >
WHERE
CASE WHEN is_account_group_member(managers) THEN TRUE ELSE total <= 1000000 END;
GRANT USE CATALOG ON CATALOG < catalog_name > TO < group_name >;
GRANT USE SCHEMA ON SCHEMA < catalog_name >.< schema_name >.< table_name >;
TO < group_name >;
GRANT
SELECT
ON < catalog_name >.< schema_name >.< table_name >;
TO < group_name >;
Ayrıca, satır filtrelerini ve sütun maskelerini kullanarak kullanıcılara tablolara güvenli erişim de vekleyebilirsiniz. Daha fazla bilgi için bkz . Satır filtrelerini ve sütun maskelerini kullanarak hassas tablo verilerini filtreleme.
Unity Kataloğu'ndaki tüm ayrıcalıklar hakkında daha fazla bilgi için bkz . Unity Kataloğu'nda ayrıcalıkları yönetme.
Küme yapılandırmalarını yönetme
Databricks, kümeleri bir dizi kurala göre yapılandırma becerisini sınırlamak için küme ilkelerinin kullanılmasını önerir. Küme ilkeleri erişimi yalnızca Unity Kataloğu'nun etkin olduğu kümeler oluşturacak şekilde kısıtlamanıza olanak tanır. Küme ilkelerinin kullanılması kullanılabilir seçenekleri azaltır; bu da kullanıcılar için küme oluşturma işlemini büyük ölçüde basitleştirir ve verilere sorunsuz bir şekilde erişebilmelerini sağlar. Küme ilkeleri, küme başına en yüksek maliyeti sınırlayarak maliyeti denetlemenizi de sağlar.
Erişim denetimlerinin bütünlüğünü sağlamak ve güçlü yalıtım garantilerini zorunlu kılmak için Unity Kataloğu, işlem kaynaklarına güvenlik gereksinimleri uygular. Bu nedenle Unity Kataloğu bir kümenin erişim modu kavramını tanıtır. Unity Kataloğu varsayılan olarak güvenlidir; bir küme uygun erişim moduyla yapılandırılmamışsa, küme Unity Kataloğu'ndaki verilere erişemez. Bkz. İşlem gereksinimleri.
Databricks, bir kümeyi paylaşırken paylaşılan erişim modunun ve otomatik işler ve makine öğrenmesi iş yükleri için Tek Kullanıcı erişim modunun kullanılmasını önerir.
Aşağıdaki JSON, paylaşılan erişim moduna sahip bir küme için bir ilke tanımı sağlar:
{
"spark_version": {
"type": "regex",
"pattern": "1[0-1]\\.[0-9]*\\.x-scala.*",
"defaultValue": "10.4.x-scala2.12"
},
"access_mode": {
"type": "fixed",
"value": "USER_ISOLATION",
"hidden": true
}
}
Aşağıdaki JSON, Tek Kullanıcı erişim moduna sahip otomatik bir iş kümesi için bir ilke tanımı sağlar:
{
"spark_version": {
"type": "regex",
"pattern": "1[0-1]\\.[0-9].*",
"defaultValue": "10.4.x-scala2.12"
},
"access_mode": {
"type": "fixed",
"value": "SINGLE_USER",
"hidden": true
},
"single_user_name": {
"type": "regex",
"pattern": ".*",
"hidden": true
}
}
Erişimi denetleme
Eksiksiz bir veri idare çözümü, verilere erişimi denetlemeyi ve uyarı ve izleme özellikleri sağlamayı gerektirir. Unity Kataloğu, meta veri deposuna karşı gerçekleştirilen eylemlerin denetim günlüğünü yakalar ve bu günlükler Azure Databricks denetim günlüklerinin bir parçası olarak teslim edilir.
Sistem tablolarını kullanarak hesabınızın denetim günlüklerine erişebilirsiniz. Denetim günlüğü sistem tablosu hakkında daha fazla bilgi için bkz . Denetim günlüğü sistemi tablo başvurusu.
Databricks Veri Zekası Platformunuzla ilgili kritik olaylara tam görünürlük elde etme hakkında ayrıntılı bilgi için bkz . Denetim Günlükleriyle Databricks Veri Zekası Platformunuzu İzleme.
Delta Paylaşımı'nı kullanarak verileri güvenli bir şekilde paylaşma
Delta Sharing , Databricks tarafından hangi bilgi işlem platformlarını kullandıklarından bağımsız olarak diğer kuruluşlarla veya kuruluşunuzdaki diğer departmanlarla güvenli veri paylaşımı için geliştirilen açık bir protokoldür. Delta Paylaşımı bir meta veri deposunda etkinleştirildiğinde Unity Kataloğu bir Delta Sharing sunucusu çalıştırır.
Meta veri depoları arasında veri paylaşmak için Databricks-Databricks Delta Sharing'i kullanabilirsiniz. Bu, farklı bölgelerdeki meta veri depolarından tabloları kaydetmenizi sağlar. Bu tablolar, tüketen meta veri deposunda salt okunur nesneler olarak görünür. Bu tablolara Unity Kataloğu içindeki diğer tüm nesneler gibi erişim verilebilir.
Meta veri depoları arasında paylaşmak için Databricks-To-Databricks Delta Sharing kullandığınızda, erişim denetiminin tek bir meta veri deposuyla sınırlı olduğunu unutmayın. Tablo gibi güvenli hale getirilebilir bir nesnenin üzerinde izinler varsa ve bu kaynak hesap içi meta veri deposuyla paylaşılıyorsa, kaynaktan gelen izinler hedef paylaşıma uygulanmaz. Hedef paylaşımın kendi izinlerini ayarlaması gerekir.