Aracılığıyla paylaş


Unity Kataloğu birimleri nelerdir?

Birimler, tablosal olmayan veri kümeleri üzerinde idareyi sağlayan Unity Kataloğu nesneleridir. Birimler, bulut nesnesi depolama konumundaki mantıksal depolama birimini temsil eder. Birimler dosyalara erişme, dosyaları depolama, yönetme ve düzenleme özellikleri sağlar.

Tablolar tablo verilerini yönetirken, birimler yapılandırılmış, yarı yapılandırılmış veya yapılandırılmamış gibi herhangi bir biçimdeki tablosal olmayan verileri yönetir.

Databricks, tablosal olmayan tüm verilere erişimi yönetmek için birimlerin kullanılmasını önerir. Birimler iki türde kullanılabilir:

  • Yönetilen birimler: Databricks tarafından yönetilen basit depolama için.
  • Dış birimler: Mevcut bulut nesnesi depolama konumlarına idare eklemek için.

Hacimler için kullanım örnekleri

Birimler için kullanım örnekleri şunlardır:

  • 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, COPY INTOveya CTAS (CREATE TABLE AS) deyimlerini kullanma.
  • Veri bilimcileri, veri analistleri ve makine öğrenmesi mühendislerinin keşif veri analizi ve diğer veri bilimi görevlerinin parçası olarak kullanması için dosya depolama konumları sağlayın.
  • Azure Databricks kullanıcılarına, diğer sistemler tarafından oluşturulan ve bulut depolama alanına yüklenen rastgele dosyalara erişim izni verin. Örneğin, gözetim sistemleri veya IoT cihazları ya da 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ı) tarafından yakalanan büyük yapılandırılmamış veri koleksiyonları (görüntü, ses, video ve PDF dosyaları gibi).
  • İşletim verilerini, loglama veya kontrol noktası dosyaları gibi depolayın.

Birimlerle çalışma tanıtımı için bkz. Unity Kataloğu Birimleriyle Dosya, Görüntü ve Veri Alımını Basitleştirme.

Important

Birimlerdeki dosyaları Unity Kataloğu'nda tablo olarak kaydedemezsiniz. Birimler yalnızca yol tabanlı veri erişimi için amaçlanmıştır. Unity Kataloğu'nda tablosal verilerle çalışmak istediğinizde tabloları kullanın.

Yönetilen ve dış birimler

Yönetilen ve dış birimler, Azure Databricks araçları, UI'leri ve API'leri kullanırken neredeyse aynı deneyimleri sağlar. Başlıca farklar depolama konumu, yaşam döngüsü ve denetimle ilgilidir:

Özellik Yönetilen birimler Dış birimler
Depolama konumu Şema için UC tarafından yönetilen depolamanın içinde oluşturuldu Mevcut bir bulut nesnesi depolama yolunda kayıtlı
Veri yaşam döngüsü UC, düzeni ve silmeyi yönetir (silme işleminde 7 günlük saklama) Birimi bıraktığınızda veriler bulut depolama alanında kalır
Erişim denetimi Tüm erişim UC'ye gider UC erişimi yönetir, ancak dış araçlar doğrudan URI'leri kullanabilir
Geçiş gerekiyor mu? Hayı Hayır— mevcut depolama yollarını as-is kullanma
Tipik kullanım örneği Yalnızca Databricks iş yükleri için en basit seçenek Karma Databricks ve dış sistem erişimi

Yönetilen birimler neden kullanılır?

Yönetilen birimler aşağıdaki avantajlara sahiptir:

  • Databricks iş yükleri için varsayılan seçenek.
  • Bulut kimlik bilgilerini veya depolama yollarını el ile yönetmenize gerek yoktur.
  • Yönetilen depolama konumlarını hızlı bir şekilde oluşturmak için en basit seçenek.

Dış birimleri neden kullanmalısınız?

Dış birimler, Unity Kataloğu veri idaresini mevcut bulut nesne depolama dizinlerine eklemenize olanak tanır. Dış birimler için bazı kullanım örnekleri şunlardır:

  • Veri kopyalamaya gerek kalmadan verilerin zaten bulunduğu yere idare ekleme.
  • Azure Databricks tarafından alınması veya erişilmesi gereken diğer sistemler tarafından üretilen dosyaları yönetme.
  • Azure Databricks tarafından üretilen ve diğer sistemler tarafından doğrudan bulut nesne depolama alanından erişilmesi gereken verileri idare etme.

Databricks, Azure Databricks'e ek olarak dış sistemler tarafından okunan veya yazılan tablosal olmayan veri dosyalarını depolamak için dış birimlerin kullanılmasını önerir. Unity Kataloğu, dış sistemlerden doğrudan bulut nesne depolaması için gerçekleştirilen okuma ve yazma işlemlerine tabi değildir. Bu nedenle, veri idaresi ilkelerine Azure Databricks dışında uyulabilmesi için bulut hesabınızda ek ilkeler ve kimlik bilgileri yapılandırmanız gerekir.

Birimdeki dosyalara erişme yolu

Birimler, Unity Kataloğu üç düzeyli ad alanının üçüncü düzeyinde yer alır (catalog.schema.volume):

Hacme odaklanan Unity Catalog nesne modeli diyagramı

Apache Spark, SQL, Python veya diğer diller ve kitaplıklar kullansanız da birimlere erişim yolu aynıdır. Bu, Azure Databricks çalışma alanına bağlı nesne depolamadaki dosyalar için eski erişim desenlerinden farklıdır.

Birimlerdeki dosyalara erişim yolu aşağıdaki biçimi kullanır:

/Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>

Azure Databricks, Apache Spark ile çalışırken isteğe bağlı dbfs:/ bir düzeni de desteklediğinden aşağıdaki yol da çalışır:

dbfs:/Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>

Yolun /<catalog>/<schema>/<volume> bölümü, dosyanın üç Unity Kataloğu nesne adıyla eşler. Bu dizinler salt okunur ve Unity Kataloğu tarafından otomatik olarak yönetilir. Bunları dosya sistemi komutları ile oluşturamaz veya silemezsiniz.

Note

Bulut depolama URI'lerini kullanarak dış birimlerdeki verilere de erişebilirsiniz.

Birimlere ayrılmış yollar

Birimler, birimlere erişmek için kullanılan aşağıdaki ayrılmış yolları tanıtır:

  • dbfs:/Volumes
  • /Volumes

Note

Yollar, Apache Spark API'lerinden ve dbutils, /volumes, /Volume ile /volume gibi yollar için olası yazım hatalarına da ayrılmıştır; bunların başında dbfs:/ olup olmadığına bakılmaksızın. Yol /dbfs/Volumes da ayrılmıştır, ancak birimlere erişmek için kullanılamaz.

Depolama birimleri yalnızca Databricks Runtime 13.3 LTS ve üzerinde desteklenir. Databricks Runtime 12.2 LTS ve altında, /Volumes yollarına yönelik işlemler başarılı olabilir, ancak verileri beklendiği gibi Unity Kataloğu birimlerine kalıcı olarak yazmak yerine, yalnızca işlem kümelerine bağlı geçici depolama disklerine yazabilir.

Important

DBFS kökünde ayrılmış bir yolda depolanan önceden var olan verileriniz varsa, verileri başka bir konuma taşımak üzere bu verilere geçici erişim elde etmek için bir destek bileti oluşturun.

İşlem gereksinimleri

Birimlerle çalışırken, Katalog Gezgini gibi Azure Databricks UI'leri kullanmıyorsanız, SQL ambarı veya Databricks Runtime 13.3 LTS veya üzerini çalıştıran bir küme kullanmanız gerekir.

Limitations

Unity Kataloğu birimleriyle etkileşim kurmak için, Unity Kataloğu destekli hesaplama kullanmanız gerekir.

Aşağıdaki tabloda, Databricks Runtime sürümünü temel alan Unity Kataloğu birim sınırlamaları özetlenmiştir:

Databricks Runtime sürümü Limitations
Desteklenen tüm Databricks Runtime sürümleri
  • Birimler yürütücülere dağıtılan komutları desteklemez dbutils.fs .
  • Unity Kataloğu UDF'leri birim dosya yollarına erişimi desteklemez.
  • RDD'lerden birimlere erişemezsiniz.
  • Eski spark-submit görevini bir birimde depolanan JAR'lerle kullanamazsınız. Bunun yerine JAR görevini kullanın. Bkz İşler için JAR görevi.
  • Tekerlek veya JAR dosyasının içindeki birim yolları aracılığıyla erişilen diğer kitaplıklara bağımlılık tanımlayamazsınız.
  • veya /Volumes/<catalog-name> desenlerini kullanarak /Volumes/<catalog-name>/<schema-name> Unity Kataloğu nesnelerini listeleyemezsiniz. Volumes/<catalog-name>/<schema-name>/<volume-name>biçiminde birim adı içeren tam nitelikli bir dosya yolu kullanmalısınız. Örneğin, dbutils.fs.ls("/Volumes/MyCatalog/MySchema/MyVolume")
  • %sh mv dosyaları birimler arasında taşımak için desteklenmez. dbutils.fs.mv veya %sh cp kullanın.
  • Birimlerle özel hadoop dosya sistemi oluşturamazsınız. Örneğin, nesne new Path("dbfs:/Volumes/main/default/test-volume/file.txt") oluşturmak için kullanmak org.apache.hadoop.fs.path işe yaramaz.
  • Azure Kamu bölgelerinde veya FedRAMP uyumluluğuna sahip olan çalışma alanlarında hacimler kullanılamaz.
  • Yol biçimini Azure Data Factory kitaplık yapılandırma panelinde dbfs:/ düzeniyle kullanmanız gerekir; örneğin, dbfs:/Volumes/<catalog-name>/<schema-name>/<volume-name>/file.
14,3 LTS ve üzeri
  • Ayrılmış erişim modu (eski adıyla tek kullanıcı erişim modu) ile işlemde, Scala'daki iş parçacıklarından ve alt işlemlerden birimlere erişemezsiniz.
14.2 ve altı
  • Standart erişim modu (eski adıyla paylaşılan erişim modu) ile yapılandırılmış işlemde, birimlere erişmek için UDF'leri kullanamazsınız.
    • Hem Python hem de Scala, sürücüden FUSE erişimine sahiptir ancak yürütücülerden erişmeyebilir.
    • G/Ç işlemlerini gerçekleştiren Scala kodu sürücüde çalıştırılabilir ancak yürütücüler üzerinde çalıştırılmaz.
  • Ayrılmış erişim moduyla yapılandırılmış bir hesaplama ortamında, Scala'da FUSE desteği, birim yollarını kullanarak verilere erişen Scala IO kodu veya Scala UDF'leri yoktur. Python UDF'leri ayrılmış erişim modunda desteklenir.

Sonraki Adımlar

Aşağıdaki makaleler birimlerle çalışma hakkında daha fazla bilgi sağlar: