Unity Kataloğu birimleri nedir?
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 dışlanabilir.
Önemli
Birimleri tablolar için konum olarak kullanamazsınız. Birimler yalnızca yol tabanlı veri erişimine yöneliktir. 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:
- Birimleri oluşturma ve yönetme.
- Birimlerdeki dosyaları yönetin.
- Depolamayı keşfedin ve veri dosyalarını bulun.
- Yönetilen ve dış birimler.
- Birimler için ayrıcalıklar nelerdir?.
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. Bkz . Unity Kataloğu'nda yönetilen depolama konumu belirtme.
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ış birim nedir?
Dış birim , Unity Kataloğu tarafından yönetilen depolama kimlik bilgileri kullanılarak dış konumdaki bir dizine kayıtlı Unity Kataloğu tarafından yönetilen depolama birimidir.
Unity Kataloğu, dış birimlerdeki dosyaların yaşam döngüsünü ve düzenini yönetmez. Bir dış birimi bıraktığınızda Unity Kataloğu 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ıncatalog.schema.volume
():
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.
Birimler için 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
/volume
/volumes
/Volume
, gibi bu yollara yönelik olası yazım hataları için de ayrılmıştır. Bunların başında dbfs:/
bulunup bulunmadığına bakılmaksızın. Yol /dbfs/Volumes
da ayrılmıştır, ancak birimlere erişmek için kullanılamaz.
Birimler yalnızca Databricks Runtime 13.3 LTS ve üzerinde desteklenir. Databricks Runtime 12.2 LTS ve altında yollara yönelik /Volumes
işlemler başarılı olabilir, ancak verileri Unity Kataloğu birimlerinde beklendiği gibi kalıcı hale getirmek yerine işlem kümelerine bağlı kısa süreli depolama disklerine veri 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şime geçmek için Unity Kataloğu özellikli işlem kullanmanız gerekir. Birimler tüm iş yüklerini desteklemez.
Not
Birimler yürütücülere dağıtılan komutları desteklemez dbutils.fs
.
Aşağıdaki sınırlamalar geçerlidir:
Databricks Runtime 14.3 LTS ve üzerinde:
- Tek kullanıcılı kullanıcı kümelerinde, Scala'daki iş parçacıklarından ve alt işlemlerden birimlere erişemezsiniz.
Databricks Runtime 14.2 ve altında:
- Paylaşılan erişim moduyla 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.
- Tek kullanıcı erişim moduyla yapılandırılan işlemde Scala'da FUSE, birim yollarını kullanarak verilere erişen Scala GÇ kodu veya Scala UDF'leri desteklenmez. Python UDF'leri tek kullanıcı erişim modunda desteklenir.
Desteklenen tüm Databricks Runtime sürümlerinde:
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>/<schema-name>
desenlerini kullanarak/Volumes/<catalog-name>
Unity Kataloğu nesnelerini listeleyemezsiniz. Birim adı içeren tam nitelikli bir yol kullanmanız gerekir.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. Bunun yerine veya%sh cp
kullanındbutils.fs.mv
.Birimlerle özel bir Hadoop dosya sistemi oluşturamazsınız; bu da aşağıdakilerin desteklenmediği anlamına gelir:
import org.apache.hadoop.fs.Path val path = new Path("dbfs:/Volumes/main/default/test-volume/file.txt") val fs = path.getFileSystem(sc.hadoopConfiguration) fs.listStatus(path)
Birimler, FedRAMP uyumluluğuna sahip Azure Kamu bölgelerde veya çalışma alanlarında kullanılamaz.
Yol biçimini Azure Data Factory kitaplık yapılandırma panelinde bir
dbfs:/
düzen ile kullanmanız gerekir. Örneğin,dbfs:/Volumes/<catalog-name>/<schema-name>/<volume-name>/file
.