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 tablosal veri kümeleri üzerinde idare sağlarken, birimler tablosal olmayan veri kümeleri üzerinde idare ekler. Dosyaları yapılandırılmış, yarı yapılandırılmış ve yapılandırılmamış veriler dahil olmak üzere herhangi bir biçimde depolamak ve bunlara erişmek için birimleri kullanabilirsiniz.

Databricks, tablosal olmayan tüm verilere erişimi yönetmek için birimlerin kullanılmasını önerir. Tablolar gibi, birimler de yönetilebilir veya harici olabilir.

Önemli

Birimleri tablolar için konum olarak kullanamazsınız. 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.

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

Not

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

Yönetilen birim nedir?

Yönetilen birim, içeren şemanın yönetilen depolama konumu içinde oluşturulan Unity Kataloğu tarafından yönetilen depolama birimidir. Unity Kataloğu'nda yönetilen bir depolama konumu belirtme hakkında bilgi için bkz. ....

Yönetilen birimler, dış konumlar ve depolama kimlik bilgileri ek yükü olmadan dosyalarla çalışmak için yönetilen depolama oluşturulmasına olanak sağlar. Yönetilen birim oluştururken konum belirtmeniz gerekmez ve yönetilen birimlerdeki veriler için tüm dosya erişimi Unity Kataloğu tarafından yönetilen yollardan geçer.

Dış disk bölümü nedir?

Dış birim, Unity Kataloğu tarafından yönetilen depolama kimlik bilgileri kullanılarak bir dış konumdaki dizine kayıt edilen, Unity Kataloğu gözetiminde bir depolama hacmidir.

Unity Kataloğu, dış birimlerdeki dosyaların yaşam döngüsünü ve düzenini yönetmez. Harici birimi bıraktığınızda, Unity Catalog temel alınan verileri silmez.

Birimdeki dosyalara erişmek için hangi yol kullanılır?

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>

Yoldaki sıra /<catalog>/<schema>/<volume> , dosyayla ilişkilendirilmiş üç Unity Kataloğu nesne adıyla ilişkilidir. Bu yol öğeleri salt okunurdur ve kullanıcılar tarafından doğrudan yazılamaz, yani dosya sistemi işlemlerini kullanarak bu dizinleri oluşturmak veya silmek mümkün değildir. Bunlar otomatik olarak yönetilir ve ilgili Unity Kataloğu varlıklarıyla eşitlenmiş olarak tutulur.

Not

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

Not

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 ayrılmıştır, ancak birimlere erişim 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.

Önemli

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

Sınırlamalar

Unity Kataloğu birimleriyle etkileşim kurmak için, Unity Kataloğu destekli hesaplama kullanmanız gerekir. Hacimler tüm iş yüklerini desteklemez.

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ü Sınırlamalar
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.
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.
  • Spark-submit'i bir birimde depolanan JAR'lerle kullanamazsınız.
  • Bir 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")
  • REST API için DBFS uç noktası birim yollarını desteklemez.
  • Birimleri küme günlüğü teslimi için hedef olarak belirtemezsiniz.
  • %sh mv dosyaları birimler arasında taşımak için desteklenmez. dbutils.fs.mv veya %sh cp kullanın.
  • Birimlerle özel bir Hadoop dosya sistemi oluşturamazsınız. Örneğin, new Path("dbfs:/Volumes/main/default/test-volume/file.txt") nesnesi oluşturmak için org.apache.hadoop.fs.path kullanılması çalışmaz.
  • Hacimler, FedRAMP uyumluluğuna sahip Azure Kamu bölgelerinde veya çalışma alanlarında 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.