Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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. |
| Dosyaları listeleme ve sorgulama | Dosya meta verilerini READ_FILES ile sorgulama ve özelliklere göre filtreleme |
| 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:
- Azure Databricks çalışma alanınızda
Katalog'a gidin.
- Ç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. Hacimler, temel alınan bulut depolaması tarafından desteklenen maksimum boyuta kadar dosyaları destekler. Ancak Azure Databricks kullanıcı arabirimi aracılığıyla bir birime dosya yüklediğinizde 5 GB dosya boyutu sınırı vardır. 5 GB'tan büyük dosyaları karşıya yüklemek için Python için Databricks SDK'sını kullanın. Ayrıntılar için bkz. Unity Kataloğu birimlerindeki dosyaları yönetme.
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 VOLUMEhedef hacimde -
USE SCHEMAüst şemada -
USE CATALOGana katalogda
Ayrıntılar için bkz. Unity Kataloğu ayrıcalıklar referansı.
Yükleme adımları
- Kenar çubuğunda Yeni'ye ve ardından Veri ekle veya karşıya yükle'ye tıklayın.
- Dosyaları bir birime yükle'ye tıklayın.
- Dosyalar bölümünde, göz at'a tıklayın veya dosyaları bırakma alanına sürükleyip bırakın.
- Hedef birim'in altında bir birim veya dizin seçin veya bir birim yolu yapıştırın.
Hedef şemada birim yoksa, Birim oluştur'a tıklayarak bir birim oluşturabilirsiniz. Birimin içinde yeni bir dizin oluşturabilirsiniz.
Yükleme kullanıcı arabirimine aşağıdaki yollarla erişebilirsiniz:
- Katalog Gezgini'nde: Birbirime dosya yükleme> ekleme
- Dizüstü bilgisayardan: Dosya>dosyaları birime yükle
Sonraki Adımlar
Bir birime yükledikten sonra aşağıdakileri yapabilirsiniz:
- Dosyalardan Unity Kataloğu tarafından yönetilen tablo oluşturun. Bkz. Birimdeki verilerden tablo oluşturma.
- ML ve veri bilimi iş yüklerindeki dosyaları kullanma
- Yüklenen dosyaları kullanarak küme kütüphanelerini, not defteri kapsamındaki kütüphaneleri veya iş bağımlılıklarını yapılandırın.
- Otomatik Yükleyici kullanarak mühendislik işlem hatları için veri yükleme veya COPY INTO
- Dosyaları gibi yapay zeka işlevleriyle işleme
ai_parse_document - İşlerde dosya varış tetikleyicilerini ayarlama
- Bilgi Yardımcısı ile kullanmak üzere belgeleri yükleyin
Birimden dosya indirme
Bir birimdeki dosyaları indirmek için aşağıdakileri yapın:
- Bir veya daha fazla dosya seçin.
- Bu dosyaları indirmek için İndir'e tıklayın.
Birimdeki dosyaları silme
Birimdeki dosyaları silmek için aşağıdakileri yapın:
- Bir veya daha fazla dosya seçin.
- Siltıklayın.
- 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:
- Toplu genel bakış sekmesinde Dizin oluştur'a tıklayın.
- Bir dizin adı girin.
- Oluştur'utıklayın.
Dizin indirme
Birimdeki bir dizini indirmek için aşağıdakileri yapın:
-
Dizinin sağındaki kebap menüsü.
- 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:
- Bir veya daha fazla dizin seçin.
- Siltıklayın.
- 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 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.
Bir veya daha fazla dosya veya dizin seçin. Dosyalar aynı veri düzenine sahip olmalıdır.
Tablo oluştur'a tıklayın. Birimlerden tablo oluştur iletişim kutusu görüntülenir.
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.
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:
-
dbutils.fsDatabricks Yardımcı Programları'ndaki alt modül. Bkz. Dosya sistemi yardımcı programı (dbutils.fs). - sihirli
%fs, için bir diğer addırdbutils.fs. -
%shsihri, disk bölümleri ile bash komutlarına olanak tanır.
İ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')
Birimlerdeki DataFrame denetim noktaları
DataFrame denetim noktalarını depolamak için Unity Kataloğu birim yollarını kullanabilirsiniz. DataFrame kontrol noktaları, DataFrame'in yürütme planını keser ve içeriği depolama alanına kaydeder. Bu, DataFrame'leri yeniden kullanırken aşırı uzun kökenleri önleyerek yinelemeli algoritmaların ve karmaşık sorgu planlarının performansını artırabilir.
Denetim noktalarını Unity Kataloğu birimlerinde depolamak, denetim noktası verilerinize idare ve erişim denetimleri uygulayarak yönetilmeyen bulut depolama yollarından uzaklaşmanıza yardımcı olur.
Gereksinimler
- Databricks Runtime 18.1 veya üzeri.
- Ayrılmış veya standart erişim moduyla Unity Catalog etkinleştirilmiş hesaplama. Birimlerdeki DataFrame denetim noktaları sunucusuz işlemde desteklenmez.
Denetim noktası dizinini yapılandırma
Denetim noktası dizinini ayarlama yöntemi, işleminizin erişim moduna bağlıdır:
Ayrılmış erişim modu
Ayrılmış erişim moduyla işlemde kullanın SparkContext.setCheckpointDir:
spark.checkpoint.dir=/Volumes/<catalog>/<schema>/<volume>/checkpoint
Standart erişim modu
Standart erişim moduyla işlemde spark.checkpoint.dir Spark yapılandırmasını kullanın:
spark.conf.set("spark.checkpoint.dir", "/Volumes/<catalog>/<schema>/<volume>/checkpoints")
DataFrame denetim noktası oluşturma
Denetim noktası dizinini yapılandırdıktan sonra, DataFrame.checkpoint() kullanarak yürütme planını kısaltın ve verileri kaydedin.
df = spark.range(100).withColumn("doubled", col("id") * 2)
checkpointed_df = df.checkpoint()
Uyarı
DataFrame denetim noktaları Yapılandırılmış Akış denetim noktalarından farklıdır. Akış denetim noktası verilerini birimlerde depolama hakkında bilgi için bkz. Yapılandırılmış Akış denetim noktaları.
SQL ile birimlerdeki dosyaları listeleme ve sorgulama
Tablo değerli işlev SQL işlevini kullanarak read_files bir birimdeki dosyaları listeleyebilir ve meta verilerini sorgulayabilirsiniz. Bu, dosyaları bulmak, dosya özelliklerine göre filtrelemek ve yapay zeka işlevleriyle işlenmek üzere dosyaları hazırlamak için kullanışlıdır.
ile kullanıldığında READ_FILESformat => "binaryFile"işlev aşağıdaki sütunları içeren bir tablo döndürür:
-
path: Tam dosya yolu -
modificationTime: Son değişiklik zaman damgası -
length: Bayt cinsinden dosya boyutu -
content: İkili veri olarak ham dosya içeriği
Sütunu seçerek _metadata, file_path, file_name, ve file_size gibi ek dosya bilgilerine erişebilirsinizfile_modification_time.
Birimdeki tüm dosyaları listeleme
Aşağıdaki örnekte, ikili içerik hariç bir birimdeki tüm dosyalar listeleniyor:
SELECT
* EXCEPT (content),
_metadata
FROM read_files(
"/Volumes/<catalog>/<schema>/<volume>",
format => "binaryFile"
);
Dosyaları türe ve boyuta göre filtreleme
Aşağıdaki örnek, 20 KB ile 1 MB arasındaki görüntü dosyaları için filtreler:
SELECT * EXCEPT (content), _metadata
FROM read_files(
"/Volumes/my_catalog/my_schema/my_volume",
format => "binaryFile",
fileNamePattern => "*.{jpg,jpeg,png,JPG,JPEG,PNG}"
)
WHERE _metadata.file_size BETWEEN 20000 AND 1000000;
Dosyaları değiştirme zamanına göre filtreleme
Aşağıdaki örnek, son gün içinde değiştirilen PDF dosyalarını bulur:
SELECT * EXCEPT (content), _metadata
FROM read_files(
"/Volumes/my_catalog/my_schema/my_volume",
format => "binaryFile",
fileNamePattern => "*.{pdf,PDF}"
)
WHERE modificationTime >= current_timestamp() - INTERVAL 1 DAY;
Yapay zeka işlevleriyle görüntüleri işleme
Aşağıdaki örnek, görüntü dosyaları için açıklamalar oluşturmak üzere işlev işlevini kullanırai_query:
SELECT
path AS file_path,
ai_query(
'databricks-llama-4-maverick',
'Describe this image in ten words or less: ',
files => content
) AS result
FROM read_files(
"/Volumes/my_catalog/my_schema/my_volume",
format => "binaryFile",
fileNamePattern => "*.{jpg,jpeg,png}"
)
WHERE _metadata.file_size < 1000000
AND _metadata.file_name LIKE '%robots%';
Yapay zeka işlevleriyle belgeleri ayrıştırma
Aşağıdaki örnek, PDF alındı bilgilerinden yapılandırılmış verileri ayıklamak için ai_parse_document işlevini kullanır:
SELECT
path AS file_path,
ai_parse_document(content, map('version', '2.0')) AS result
FROM read_files(
"/Volumes/main/public/my_files/",
format => "binaryFile",
fileNamePattern => "*.{pdf,PDF}"
)
WHERE _metadata.file_name ILIKE '%receipt%';
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:
- Python için Databricks SQL Bağlayıcısı
- Go için Databricks SQL Sürücüsü
- Node.jsiçin Databricks SQL Sürücüsü
- Databricks JDBC sürücüsü
- Databricks ODBC sürücüsü
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:
- Python için Databricks SDK'sı. WorkspaceClient.files içinde kullanılabilir yöntemleri kullanın. Örnekler için bkz. Unity Kataloğu birimlerinde dosyaları yönetme.
- Java için Databricks SDK'sı. WorkspaceClient.files içinde kullanılabilir yöntemleri kullanın. Örnekler için bkz. Unity Kataloğu birimlerinde dosyaları yönetme.
- Go için Databricks SDK'sı. WorkspaceClient.files içinde kullanılabilir yöntemleri kullanın. Örnekler için bkz. Unity Kataloğu birimlerinde dosyaları yönetme.
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:
- önce yerel diskte işlemleri gerçekleştirme
- 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