Aracılığıyla paylaş


Unity Kataloğu birimlerindeki dosyalarla çalışma

Bu sayfada çeşitli kullanıcı arabirimleri, araçlar, kitaplıklar ve diller için Unity Kataloğu birimlerindeki dosyaları yönetmeye yönelik örnekler bulunur.

Databricks, bulut nesne depolamasında tablosal olmayan verilere tüm erişimi yönetmek ve iş yükü destek dosyalarını depolamak için birimlerin kullanılmasını önerir. Örnekler şunlardır:

  • Alım için CSV, JSON ve Parquet gibi veri dosyaları
  • Veri bilimi, ML ve yapay zeka iş yükleri için metin, görüntü ve ses dosyaları
  • Dış sistemlerle tümleştirme için Azure Databricks tarafından yazılan CSV veya JSON yapıtları
  • Kitaplıklar, başlatma betikleri ve yapı çıktıları

Birimler, Userspace (FUSE) bağımlı araçlar ve çerçevelerle çalışan Taşınabilir İşletim Sistemi Arabirimi (POSIX) stili yollar sağlar. Bu sayede POSIX stilinde erişim gerektiren makine öğrenmesi çerçeveleri ve açık kaynak Python modülleri için idealdir. URI düzenleri, POSIX yolları ve birimlerle ilişkileri hakkında ayrıntılı bilgi için bkz. Verilere erişmek için URI düzeni sağlamam gerekiyor mu?.

Birimlerdeki dosyaları yönetme yöntemleri

Her yöntemin hızlı örnekleri için bkz. Unity Kataloğu birimlerindeki dosyalarla çalışma.

Arayüz Description
Katalog Gezgini kullanıcı arabirimi Azure Databricks çalışma alanı aracılığıyla etkileşimli dosya yönetimi
Programlı erişim Apache Spark, Pandas veya SQL kullanarak dosyaları okuma ve yazma
Databricks yardımcı programları Not defterlerinde dbutils.fs'u ya da sihirli komutlar (%fs, %sh) kullanarak dosya işlemlerini gerçekleştirmek.
SQL komutları SQL anahtar sözcüklerini (LIST, PUT INTO, , GETREMOVE) ve bağlayıcıları kullanarak dosya işlemleri
Databricks CLI Komut satırında databricks fs komutlarını kullanarak işlemler
SDK'lar Python, Java veya Go SDK'larını kullanarak dosya işlemleri
REST API Özel tümleştirmeler için doğrudan API erişimi

Katalog Gezgini'ni kullanma

Katalog Gezgini'nde Unity Kataloğu birimleriyle depolanan dosyalar için yaygın dosya yönetimi görevlerine yönelik seçenekler bulunur.

Bir birimdeki dosyalarla etkileşime geçmek için aşağıdakileri yapın:

  1. Azure Databricks çalışma alanınızda Veri simgesine tıklayın.Katalog'a gidin.
  2. Çalışmak istediğiniz birimi arayın veya inceleyin ve seçin.

Birimleri oluşturma ve yönetme hakkında ayrıntılı bilgi için bkz. Unity Kataloğu birimlerini oluşturma ve yönetme.

Dosyaları bir birime yükleme

Yapılandırılmış, yarı yapılandırılmış veya yapılandırılmamış herhangi bir biçimdeki dosyaları bir birime yükleyebilirsiniz. UI aracılığıyla karşıya yüklediğinizde 5 GB dosya boyutu sınırı vardır. Ancak birimler, temel bulut depolama tarafından desteklenen maksimum boyuta kadar dosyaları destekler. Spark kullanarak çok büyük dosyalar yazabilir ve Azure Databricks API'sini veya SDK'larını kullanarak büyük dosyaları karşıya yükleyebilirsiniz.

Gereksinimler

Bir birime yüklemeden önce aşağıdakilere sahip olduğunuzdan emin olun:

  • Unity Kataloğu'nu etkinleştirmiş bir çalışma alanı
  • WRITE VOLUME hedef hacimde
  • USE SCHEMA üst şemada
  • USE CATALOG ana katalogda

Ayrıntılar için bkz. Unity Kataloğu ayrıcalıkları ve güvenliği sağlanabilir nesneler.

Yükleme adımları

  1. Katalog Gezgini'nde, Veri ekle>birime yükle'ye tıklayın.
  2. Gözat veya bırakma alanına dosyaları bırakın.
  3. Bir birim veya dizin seçin veya birim yolunu yapıştırın.
    • Hedef şemada depolama birimi yoksa bir depolama birimi oluşturun.
    • Hedef birim içinde yeni bir dizin de oluşturabilirsiniz.

Bir birime dosya yükleme iletişim kutusu

Yükleme kullanıcı arabirimine aşağıdaki yollarla erişebilirsiniz:

  • Kenar çubuğunda: Yeni>Veri> ekleDosyaları birime yükleme
  • Dizüstü bilgisayardan: Dosya>dosyaları birime yükle

Sonraki Adımlar

Bir birime yükledikten sonra aşağıdakileri yapabilirsiniz:

  • AgentBricks ile kullanmak üzere belgeleri yükleyin (örneğin, bilgi asistanı senaryoları)

Birimden dosya indirme

Bir birimdeki dosyaları indirmek için aşağıdakileri yapın:

  1. Bir veya daha fazla dosya seçin.
  2. Bu dosyaları indirmek için İndir'e tıklayın.

Birimdeki dosyaları silme

Birimdeki dosyaları silmek için aşağıdakileri yapın:

  1. Bir veya daha fazla dosya seçin.
  2. Siltıklayın.
  3. Görüntülenen iletişim kutusunda onaylamak için Sil'e tıklayın.

Boş dizin oluşturma

Bir birimde yeni bir dizin oluşturmak için aşağıdakileri yapın:

  1. Toplu genel bakış sekmesinde Dizin oluştur'a tıklayın.
  2. Bir dizin adı girin.
  3. Oluştur'utıklayın.

Dizin indirme

Birimdeki bir dizini indirmek için aşağıdakileri yapın:

  1. Kebap menü simgesine tıklayın. Dizinin sağındaki kebap menüsü.
  2. Dizini indir'e tıklayın.

Dizin zip dosyası olarak indirilir.

Birimdeki dizinleri silme

Bir birimdeki dizinleri silmek için aşağıdakileri yapın:

  1. Bir veya daha fazla dizin seçin.
  2. Siltıklayın.
  3. Görüntülenen iletişim kutusunda onaylamak için Sil'e tıklayın.

Birimler için Kullanıcı Arayüzü dosya yönetimi görevleri

Aşağıdaki eylemleri gerçekleştirmek için bir dosya adının yanındaki kebap menüsü Kebap menü simgesine tıklayın:

  • Yolu kopyala
  • Dosyayı indirme
  • Dosyayı sil
  • Tablo oluştur

Birimdeki verilerden tablo oluşturma

Azure Databricks bir Unity Kataloğu biriminde depolanan bir dosyadan, dosyadan veya dosya dizininden Unity Kataloğu yönetilen tablosu oluşturmak için bir kullanıcı arabirimi sağlar.

Hedef şemada CREATE TABLE izinlerinizin olması ve çalışan bir SQL ambarı erişimine sahip olmanız gerekir.

  1. Bir veya daha fazla dosya veya dizin seçin. Dosyalar aynı veri düzenine sahip olmalıdır.

  2. Tablo oluştur'a tıklayın. Birimlerden tablo oluştur iletişim kutusu görüntülenir.

  3. Sağlanan iletişim kutusunu kullanarak verilerin önizlemesini gözden geçirin ve aşağıdaki yapılandırmaları tamamlayın:

    • Yeni tablo oluştur seçin veya varolan tablonun üzerine yaz
    • Hedef Kataloğu ve Şemayı seçin.
    • Tablo adını belirtin.
    • (İsteğe bağlı) Varsayılan sütun adlarını ve türlerini geçersiz kılın veya sütunları dışlama seçeneğini belirleyin.

    Uyarı

    Ek seçenekleri görüntülemek için Gelişmiş öznitelikler'e tıklayın.

  4. Tabloyu belirtilen özniteliklerle oluşturmak için Tablo oluştur'a tıklayın. Tamamlandıktan sonra, Katalog Gezgini tablo ayrıntılarını görüntüler.

Programatik olarak birimlerdeki dosyalarla çalışma

Aşağıdaki biçimi kullanarak desteklenen tüm dillerden ve çalışma alanı düzenleyicilerinden birimler halinde dosyaları okuyun ve yazın:

/Volumes/catalog_name/schema_name/volume_name/path/to/files

Herhangi bir bulut nesne depolama konumundaki dosyalarla etkileşimde bulunduğunuz şekilde birimlerdeki dosyalarla etkileşim kurarsınız. Bu, şu anda bulut URI'leri, DBFS bağlama yollarını veya verilerle veya dosyalarla etkileşim kurmak için DBFS kök yollarını kullanan kodu yönetiyorsanız, bunun yerine kodunuzu birimleri kullanacak şekilde güncelleştirebileceğiniz anlamına gelir.

Uyarı

Birimler yalnızca tablosal olmayan veriler için kullanılır. Databricks, Unity Kataloğu tablolarını kullanarak tablo verilerini kaydetmenizi ve ardından tablo adlarını kullanarak veri okumanızı ve yazmanızı önerir.

Birimlerdeki verileri okuma ve yazma

Birimlerdeki veri dosyalarını okumak ve yazmak için Apache Spark, pandas, Spark SQL ve diğer OSS kitaplıklarını kullanın.

Aşağıdaki örneklerde bir birimde depolanan CSV dosyasının okunması gösterilmektedir:

Piton

df = spark.read.format("csv").load("/Volumes/catalog_name/schema_name/volume_name/data.csv")

display(df)

Pandas

import pandas as pd

df = pd.read_csv('/Volumes/catalog_name/schema_name/volume_name/data.csv')

display(df)

SQL

SELECT * FROM csv.`/Volumes/catalog_name/schema_name/volume_name/data.csv`

Birimlerdeki dosyalar için yardımcı program komutları

Databricks, birimlerdeki dosyaları yönetmek için aşağıdaki araçları sağlar:

İnternet'ten dosya indirmek, dosyaları sıkıştırmak ve dosyaları kısa ömürlü blok depolamadan birimlere taşımak için bu araçları kullanma örneği için bkz. İnternet'ten veri indirme.

Aşağıdaki örnekte gösterildiği gibi Python os modülü gibi dosya yardımcı programı komutları için OSS paketlerini de kullanabilirsiniz:

import os

os.mkdir('/Volumes/catalog_name/schema_name/volume_name/directory_name')

Harici araçlar kullanarak birimler içindeki dosyaları yönetme

Databricks, yerel ortamınızdan veya tümleşik sistemlerinizden birimlerdeki dosyaları program aracılığıyla yönetmek için bir araç paketi sağlar.

Birimlerdeki dosyalar için SQL komutları

Azure Databricks, birimlerdeki dosyalarla etkileşime geçiş için aşağıdaki SQL anahtar sözcüklerini destekler:

Azure Databricks not defterlerinde ve SQL sorgu düzenleyicisinde LIST yalnızca komut desteklenir. Diğer SQL komutları (PUT INTO, GETve REMOVE) birimlerindeki dosyaların yönetilmesini destekleyen aşağıdaki Databricks SQL bağlayıcıları ve sürücüleri aracılığıyla kullanılabilir:

Databricks CLI ile birimlerdeki dosyaları yönetme

içindeki databricks fsalt komutları kullanın. Bakınız fs komut grubu.

Uyarı

Databricks CLI, tüm volüm yollarından önce şema dbfs:/'ı gerektirir. Örneğin, dbfs:/Volumes/catalog_name/schema_name/volume_name/path/to/data.

SDK'larla birimlerdeki dosyaları yönetme

Aşağıdaki SDK'lar birimlerdeki dosyaların yönetilmesini destekler:

REST API ile birimlerdeki dosyaları yönetme

Birimlerdeki dosyaları yönetmek için Dosyalar API'sini kullanın.

Birimlerdeki dosyalar için REST API örnekleri

Aşağıdaki örnekler, birimlerde dosya yönetimi görevlerini gerçekleştirmek için curl ve Databricks REST API'sini kullanır.

Aşağıdaki örnek, belirtilen birimde adlı my-folder boş bir klasör oluşturur.

curl --request PUT "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/my-folder/" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"

Aşağıdaki örnek, birimdeki belirtilen yolda belirtilen verilerle adlı data.csv bir dosya oluşturur.

curl --request PUT "https://${DATABRICKS_HOST}/api/2.0/fs/files/Volumes/main/default/my-volume/my-folder/data.csv?overwrite=true" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" \
--header "Content-Type: application/octet-stream" \
--data-binary $'id,Text\n1,Hello World!'

Aşağıdaki örnek, belirtilen yolda bir birimin içeriğini listeler. Bu örnek, daha kolay okunması için yanıt gövdesinin JSON'unu biçimlendirmek için jq kullanır.

curl --request GET "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq .

Aşağıdaki örnekte, belirtilen yoldaki bir birimdeki bir klasörün içeriği listelenir. Bu örnek, daha kolay okunması için yanıt gövdesinin JSON'unu biçimlendirmek için jq kullanır.

curl --request GET "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/my-folder" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq .

Aşağıdaki örnek, bir birimde belirtilen yolda bulunan bir dosyanın içeriğini yazdırır.

curl --request GET "https://${DATABRICKS_HOST}/api/2.0/fs/files/Volumes/main/default/my-volume/my-folder/data.csv" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"

Aşağıdaki örnek, belirtilen yoldaki bir dosyayı bir birimden siler.

curl --request DELETE "https://${DATABRICKS_HOST}/api/2.0/fs/files/Volumes/main/default/my-volume/my-folder/data.csv" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"

Aşağıdaki örnek, belirtilen birimden bir klasörü siler.

curl --request DELETE "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/my-folder/" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"

Hacimlerdeki dosyalarla çalışma kısıtlamaları

Birimlerdeki dosyalarla çalışmadan önce aşağıdaki sınırlamaları göz önünde bulundurun:

  • Doğrudan ekleme veya sıralı olmayan (rastgele) yazma işlemleri desteklenmez. Bu, Zip ve Excel dosyaları yazma gibi işlemleri etkiler. Bu iş yükleri için:

    1. önce yerel diskte işlemleri gerçekleştirme
    2. Sonuçları birime kopyalayın

    Örneğin:

    # python
    import xlsxwriter
    from shutil import copyfile
    
    workbook = xlsxwriter.Workbook('/local_disk0/tmp/excel.xlsx')
    worksheet = workbook.add_worksheet()
    worksheet.write(0, 0, "Key")
    worksheet.write(0, 1, "Value")
    workbook.close()
    
    copyfile('/local_disk0/tmp/excel.xlsx', '/Volumes/my_catalog/my_schema/my_volume/excel.xlsx')
    
  • Seyrek dosyalar desteklenmez. Seyrek dosyaları kopyalamak için kullanın cp --sparse=never:

    $ cp sparse.file /Volumes/my_catalog/my_schema/my_volume/sparse.file
    error writing '/dbfs/sparse.file': Operation not supported
    $ cp --sparse=never sparse.file /Volumes/my_catalog/my_schema/my_volume/sparse.file