Share via


Azure Databricks verileri nereye yazar?

Bu makalede Azure Databricks'in yaygın işlemler ve yapılandırmalarla veri yazdığı konumlar ayrıntılı olarak anlatlanmaktadır. Azure Databricks birçok teknolojiye yayılan ve paylaşılan sorumluluk modelinde bulut kaynaklarıyla etkileşim kuran bir araç paketi sağladığından, verileri depolamak için kullanılan varsayılan konumlar yürütme ortamına, yapılandırmalara ve kitaplıklara göre farklılık gösterir.

Bu makaledeki bilgiler, çeşitli işlemler için varsayılan yolları ve yapılandırmaların bu varsayılanları nasıl değiştirebileceğini anlamanıza yardımcı olmak içindir. Veri yöneticileri ve verilere erişimi yapılandırma ve denetleme yönergelerini arayan yöneticiler Unity Kataloğu ile veri idaresi makalesine bakmalıdır.

Nesne depolamayı ve diğer veri kaynağını yapılandırma hakkında bilgi edinmek için bkz. Veri kaynaklarına Bağlan.

Nesne depolama nedir?

Bulut bilişimde nesne depolama veya blob depolama, verileri nesne olarak tutan depolama kapsayıcılarını ifade eder ve her nesne veri, meta veri ve genel olarak benzersiz bir kaynak tanımlayıcısı (URI) içerir. Nesne depolamadaki veri işleme işlemleri genellikle REST API arabirimi aracılığıyla oluşturma, okuma, güncelleştirme ve silme (CRUD) ile sınırlıdır. Bazı nesne depolama teklifleri sürüm oluşturma ve yaşam döngüsü yönetimi gibi özellikleri içerir. Nesne depolamanın aşağıdaki avantajları vardır:

  • Yüksek kullanılabilirlik, dayanıklılık ve güvenilirlik.
  • Diğer depolama seçeneklerinin çoğuna kıyasla depolama için daha düşük maliyet.
  • Sonsuz ölçeklenebilir (bulutun belirli bir bölgesinde kullanılabilir toplam depolama alanı miktarıyla sınırlıdır).

Bulut tabanlı veri göllerinin çoğu, bulut nesne depolama alanında açık kaynak veri biçimlerinin üzerine kurulmuştur.

Azure Databricks nesne depolamayı nasıl kullanır?

Nesne depolama, Azure Databricks tarafından çoğu işlem için kullanılan ana depolama biçimidir. Databricks Dosya Sistemi (DBFS), Azure Databricks kullanıcılarının nesne depolamadaki dosyalarla diğer dosya sistemlerindekine benzer şekilde etkileşim kurmasına olanak tanır. Bir tabloyu dış veri sistemine göre özel olarak yapılandırmadığınız sürece, Azure Databricks'te oluşturulan tüm tablolar verileri bulut nesne depolama alanında depolar.

Bulut nesne depolama alanında depolanan Delta Lake dosyaları Databricks lakehouse için veri temelini sağlar.

Blok depolama nedir?

Bulut bilişimde blok depolama veya disk depolama, yalnızca "sabit sürücüler" olarak da bilinen geleneksel sabit disk sürücülerine (HDD) veya katı hal sürücülerine (SSD) karşılık gelen depolama birimlerine başvurur. Blok depolamayı bulut bilişim ortamında dağıtırken genellikle bir veya daha fazla fiziksel sürücüden oluşan mantıksal bir bölüm dağıtılır. Uygulamalar, ürün teklifleri ile bulut satıcıları arasında biraz farklılık gösterir, ancak genellikle uygulamalar arasında aşağıdaki özellikler bulunur:

  • Tüm sanal makineler (VM'ler) ekli bir blok depolama birimi gerektirir.
  • Blok depolama birimine yüklenen dosyalar ve programlar, blok depolama birimi kalıcı olduğu sürece devam eder.
  • Blok depolama birimleri genellikle geçici veri depolama için kullanılır.
  • VM'lere eklenen blok depolama birimleri genellikle VM'lerle birlikte silinir.

Azure Databricks blok depolamayı nasıl kullanır?

İşlem kaynaklarını açtığınızda Azure Databricks VM'leri yapılandırıp dağıtır ve blok depolama birimleri ekler. Bu blok depolama, işlem ömrü boyunca kısa ömürlü veri dosyalarını depolamak için kullanılır. Bu dosyalar, disk önbelleği tarafından kullanılan verilere ek olarak işletim sistemini ve yüklü kitaplıkları içerir. Apache Spark verimli paralelleştirme ve veri yükleme için arka planda blok depolamayı kullansa da Azure Databricks'te çalıştırılacak çoğu kod depolamayı engellemek için verileri doğrudan kaydetmez veya yüklemez.

Sürücü düğümünüze bağlı blok depolamayı kullanan Python veya Bash komutları gibi rastgele kodlar çalıştırabilirsiniz. Bkz . Sürücü düğümüne bağlı kısa ömürlü depolamadaki dosyalarla çalışma.

Unity Kataloğu veri dosyalarını nerede depolar?

Unity Kataloğu, bulut depolama alanı ile ilişkisel nesneler arasındaki ilişkileri yapılandırmak için yöneticilere dayanır. Verilerin bulunduğu tam konum, yöneticilerin ilişkileri nasıl yapılandırdığına bağlıdır.

Unity Kataloğu tarafından yönetilen nesnelere yazılan veya yüklenen veriler aşağıdaki konumlardan birinde depolanır:

  • Meta veri deposu, katalog veya şemayla ilişkili yönetilen depolama konumu. Yönetilen tablolara ve yönetilen birimlere yazılan veya yüklenen veriler yönetilen depolamayı kullanır. Bkz. Yönetilen depolama.
  • Depolama kimlik bilgileriyle yapılandırılmış bir dış konum. Dış tablolara ve dış birimlere yazılan veya yüklenen veriler dış depolamayı kullanır. Bkz. Unity Kataloğu'nu kullanarak bulut nesne depolamaya Bağlan.

Databricks SQL veri yedekleme tablolarını nerede depolar?

Unity Kataloğu ile yapılandırılmış Databricks SQL ile bir CREATE TABLE deyimi çalıştırdığınızda, varsayılan davranış, veri dosyalarını Unity Kataloğu ile yapılandırılmış yönetilen bir depolama konumunda depolamaktır. Bkz . Unity Kataloğu veri dosyalarını nerede depolar?.

Eski hive_metastore katalog farklı kurallara uyar. Bkz . Unity Kataloğu ve eski Hive meta veri deposuyla çalışma.

Delta Live Tables veri dosyalarını nerede depolar?

Databricks, DLT işlem hatları oluştururken Unity Kataloğu'nu kullanmanızı önerir. Veriler, hedef şemayla ilişkilendirilmiş yönetilen depolama konumu içindeki dizinlerde depolanır.

İsteğe bağlı olarak Hive meta veri deposu kullanarak DLT işlem hatlarını yapılandırabilirsiniz. Hive meta veri deposu ile yapılandırıldığında, DBFS veya bulut nesne depolama alanında bir depolama konumu belirtebilirsiniz. Konum belirtmezseniz, işlem hattınıza DBFS kökünde bir konum atanır.

Apache Spark veri dosyalarını nereye yazar?

Databricks, verileri okumak ve yazmak için Unity Kataloğu ile nesne adlarının kullanılmasını önerir. Şu deseni kullanarak Unity Kataloğu birimlerine de dosya yazabilirsiniz: /Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>. Unity Kataloğu tarafından yönetilen nesnelere veri yüklemek, oluşturmak, güncelleştirmek veya eklemek için yeterli ayrıcalıklara sahip olmanız gerekir.

İsteğe bağlı olarak, veri dosyalarının yollarını belirtmek için evrensel kaynak göstergelerini (URI) kullanabilirsiniz. URI'ler bulut sağlayıcısına bağlı olarak değişir. Ayrıca, geçerli işleminizin bulut nesne depolama alanına yazabilmesi için yapılandırılmış yazma izinlerine de sahip olmanız gerekir.

Azure Databricks, Apache Spark okuma ve yazma komutlarını bulut nesne depolamasına geri eşlemek için Databricks Dosya Sistemi'ni kullanır. Her Azure Databricks çalışma alanı, çalışma alanı için ayrılan bulut hesabında yapılandırılmış bir DBFS kök depolama konumuyla birlikte gelir ve bu konuma tüm kullanıcılar veri okumak ve yazmak için erişebilir. Databricks, üretim verilerini depolamak için DBFS kökünü kullanmanızı önermez. Bkz. DBFS nedir? ve DBFS köküyle çalışmak için Öneriler.

Pandas, Azure Databricks'te veri dosyalarını nereye yazar?

Databricks Runtime 14.0 ve üzerinde, tüm yerel Python okuma ve yazma işlemleri için varsayılan geçerli çalışma dizini (CWD), not defterini içeren dizindir. Veri dosyasını kaydederken yalnızca bir dosya adı sağlarsanız, pandas bu veri dosyasını o anda çalışan not defterinize paralel bir çalışma alanı dosyası olarak kaydeder.

Tüm Databricks Runtime sürümleri çalışma alanı dosyalarını desteklemez ve bazı Databricks Runtime sürümleri, not defterleri veya Git klasörleri kullanmanıza bağlı olarak farklı davranışlara sahiptir. Bkz. Varsayılan geçerli çalışma dizini nedir?.

Azure Databricks'te nerede geçici dosyalar yazmam gerekir?

Küme kapatıldıktan sonra saklamak istemediğiniz geçici dosyalar yazmanız gerekiyorsa, geçici dosyaları $TEMPDIR yazarak CWD çalışma alanı dosya sistemindeyse geçerli çalışma dizinine (CWD) yazmaktan daha iyi bir performans elde edersiniz. Kod bir Depoda çalışıyorsa dal boyutu sınırlarını aşmaktan da kaçınabilirsiniz. Daha fazla bilgi için bkz . Dosya ve depo boyutu sınırları.

/local_disk0 Yazılacak veri miktarı çok büyükse ve depolama alanının otomatik ölçeklendirmesini istiyorsanız yazın.