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 sayfa, Azure Databricks çalışma alanınızdan verileri ve yapılandırmayı dışarı aktarmaya yönelik araçlara ve yaklaşımlara genel bir bakış sağlar. Uyumluluk gereksinimleri, veri taşınabilirliği, yedekleme amaçları veya çalışma alanı geçişi için çalışma alanı varlıklarını dışarı aktarabilirsiniz.
Genel Bakış
Azure Databricks çalışma alanları, çalışma alanı yapılandırması, yönetilen tablolar, yapay zeka ve ML nesneleri ve bulut depolamada depolanan veriler gibi çeşitli varlıklar içerir. Çalışma alanı verilerini dışarı aktarmanız gerektiğinde, bu varlıkları sistematik olarak ayıklamak için yerleşik araçlar ve API'lerin bir bileşimini kullanabilirsiniz.
Çalışma alanı verilerini dışarı aktarmanın yaygın nedenleri şunlardır:
- Uyumluluk gereksinimleri: GDPR ve CCPA gibi düzenlemeler kapsamında veri taşınabilirliği yükümlülüklerini karşılama.
- Yedekleme ve olağanüstü durum kurtarma: İş sürekliliği için kritik çalışma alanı varlıklarının kopyalarını oluşturma.
- Çalışma alanı geçişi: Varlıkları çalışma alanları veya bulut sağlayıcıları arasında taşıma.
- Denetim ve arşivleme: Çalışma alanı yapılandırmasının ve verilerinin geçmiş kayıtlarını koruma.
Dışarı aktarmanızı planlama
Çalışma alanı verilerini dışarı aktarmaya başlamadan önce, dışarı aktarmanız ve aralarındaki bağımlılıkları anlamanız için gereken varlıkların envanterini oluşturun.
Çalışma alanı varlıklarını anlama
Azure Databricks çalışma alanınız dışarı aktarabileceğiniz çeşitli varlık kategorileri içerir:
- Çalışma alanı yapılandırması: Not defterleri, klasörler, depolar, gizli diziler, kullanıcılar, gruplar, erişim denetim listeleri (ACL'ler), küme yapılandırmaları ve iş tanımları.
- Veri varlıkları: Yönetilen tablolar, veritabanları, Databricks Dosya Sistemi dosyaları ve bulut depolamada depolanan veriler.
- İşlem kaynakları: Küme yapılandırmaları, ilkeler ve örnek havuzu tanımları.
- Yapay zeka ve ML varlıkları: MLflow denemeleri, çalıştırmalar, modeller, Özellik Deposu tabloları, Vektör Arama dizinleri ve Unity Kataloğu modelleri.
- Unity Kataloğu nesneleri: Meta veri deposu yapılandırması, kataloglar, şemalar, tablolar, birimler ve izinler.
Dışarı aktarma kapsamını belirleyin
Gereksinimlerinize göre dışarı aktaracağınız varlıkların denetim listesini oluşturun. Şu soruları göz önünde bulundurun:
- Tüm varlıkları mı yoksa yalnızca belirli kategorileri mi dışarı aktarmanız gerekiyor?
- Hangi varlıkları dışarı aktarmanız gerektiğini belirten uyumluluk veya güvenlik gereksinimleri var mı?
- Varlıklar (örneğin, not defterlerine başvuran işler) arasındaki ilişkileri korumanız gerekiyor mu?
- Çalışma alanı yapılandırmasını başka bir ortamda yeniden oluşturmanız mı gerekiyor?
Dışarı aktarma kapsamınızı planlamak, doğru araçları seçmenize ve kritik bağımlılıkların eksik olmamasını önlemenize yardımcı olur.
Çalışma alanı yapılandırmasını dışarı aktarma
Terraform dışarı aktarıcısı, çalışma alanı yapılandırmasını dışarı aktarmaya yönelik birincil araçtır. Çalışma alanı varlıklarınızı kod olarak temsil eden Terraform yapılandırma dosyaları oluşturur.
Terraform exporter kullanma
Terraform dışarı aktarıcısı Azure Databricks Terraform sağlayıcısında yerleşiktir ve not defterleri, işler, kümeler, kullanıcılar, gruplar, gizli diziler ve erişim denetimi listeleri gibi çalışma alanı kaynakları için Terraform yapılandırma dosyaları oluşturur. Dışa aktarma aracı, her çalışma alanı için ayrı ayrı çalıştırılmalıdır. Bkz. Databricks Terraform sağlayıcısı.
Ön koşullar:
- Terraform bilgisayarınızda yüklü
- Azure Databricks kimlik doğrulaması yapılandırıldı
- Dışarı aktarmak istediğiniz çalışma alanında yönetici ayrıcalıkları
Çalışma alanı kaynaklarını dışarı aktarmak için:
İhracatçının izlenecek yolu için örnek kullanım videosunu gözden geçirin.
Terraform sağlayıcısını ihracatçı aracıyla indirin ve yükleyin:
wget -q -O terraform-provider-databricks.zip $(curl -s https://api.github.com/repos/databricks/terraform-provider-databricks/releases/latest|grep browser_download_url|grep linux_amd64|sed -e 's|.*: "\([^"]*\)".*$|\1|') unzip -d terraform-provider-databricks terraform-provider-databricks.zipÇalışma alanınız için kimlik doğrulama ortamı değişkenlerini ayarlayın:
export DATABRICKS_HOST=https://your-workspace-url export DATABRICKS_TOKEN=your-tokenTerraform yapılandırma dosyaları oluşturmak için dışarı aktarmayı çalıştırın:
terraform-provider-databricks exporter \ -directory ./exported-workspace \ -listing notebooks,jobs,clusters,users,groups,secretsOrtak ihracatçı seçenekleri:
-
-listing: Dışarı aktarılacak kaynak türlerini belirtin (virgülle ayrılmış) -
-services: Filtreleme kaynakları için listelemeye alternatif -
-directory: Oluşturulan.tfdosyalar için çıkış dizini -
-incremental: Aşamalı geçişler için artımlı modda çalıştırma
-
Çıkış dizininde oluşturulan
.tfdosyaları gözden geçirin. Dışarı aktarıcı, her kaynak türü için bir dosya oluşturur.
Uyarı
Terraform dışa aktarıcısı, çalışma alanı yapılandırması ve meta verilere odaklanır. Tablolarda veya Databricks Dosya Sistemi'nde depolanan gerçek verileri dışarı aktarmaz. Aşağıdaki bölümlerde açıklanan yaklaşımları kullanarak verileri ayrı olarak dışarı aktarmanız gerekir.
Belirli varlık türlerini dışarı aktarma
Terraform ihracatçısı tarafından tam olarak kapsanmayan varlıklar için şu yaklaşımları kullanın:
- Not defterleri: Çalışma alanı kullanıcı arabiriminden not defterlerini tek tek indirin veya çalışma alanı API'sini kullanarak not defterlerini program aracılığıyla dışarı aktarın. Bkz . Çalışma alanı nesnelerini yönetme.
- Gizli bilgiler: Gizli bilgiler, güvenlik nedeniyle doğrudan dışarı aktarılamaz. Hedef ortamda gizli bilgileri manüel olarak yeniden oluşturmanız gerekir. Başvuru için gizli isimleri ve kapsamları belgele.
- MLflow nesneleri: Denemeleri, çalıştırmaları ve modelleri dışarı aktarmak için mlflow-export-import aracını kullanın. Aşağıdaki ML varlıkları bölümüne bakın.
Verileri dışarı aktarma
Müşteri verileri genellikle Azure Databricks'te değil bulut hesabı depolamanızda bulunur. Bulut depolama alanınızda bulunan verileri dışarı aktarmanız gerekmez. Ancak Azure Databricks tarafından yönetilen konumlarda depolanan verileri dışarı aktarmanız gerekir.
Yönetilen tabloları dışarı aktarma
Yönetilen tablolar bulut depolama alanınızda yer alsa da, ayrıştırılması zor olabilecek UUID tabanlı bir hiyerarşide depolanır. Komutunu kullanarak DEEP CLONE yönetilen tabloları belirtilen bir konumda dış tablolar olarak yeniden yazabilir ve bu tablolarla çalışmayı kolaylaştırabilirsiniz.
Örnek DEEP CLONE komutlar:
CREATE TABLE delta.`abfss://container@storage.dfs.core.windows.net/path/to/storage/`
DEEP CLONE my_catalog.my_schema.my_table
Katalog listesindeki tüm tabloları kopyalamaya yönelik eksiksiz bir betik için aşağıdaki örnek betike bakın.
Databricks varsayılan depolama alanını dışarı aktarma
Sunucusuz çalışma alanları için Azure Databricks, Azure Databricks hesabı içinde tam olarak yönetilen bir depolama çözümü olan varsayılan depolamayı sunar. Çalışma alanı silinmeden veya kullanımdan kaldırılmadan önce varsayılan depolamadaki veriler müşteriye ait depolama kapsayıcılarına aktarılmalıdır. Sunucusuz çalışma alanları hakkında daha fazla bilgi için bkz. Sunucusuz çalışma alanı oluşturma.
Varsayılan depolamadaki tablolar için, verileri müşteriye ait bir depolama kapsayıcısına yazmak için kullanın DEEP CLONE . Birimler ve rastgele dosyalar için aşağıdaki DBFS kök dışarı aktarma bölümünde açıklanan desenleri izleyin.
Databricks Dosya Sistemi kökünü dışarı aktarma
Databricks Dosya Sistemi kökü, çalışma alanı depolama hesabınızda müşteriye ait varlıklar, kullanıcı yüklemeleri, başlatma betikleri, kitaplıklar ve tablolar içerebilen eski depolama konumudur. Databricks Dosya Sistemi kökü kullanım dışı bırakılmış bir depolama düzeni olsa da, eski çalışma alanlarında yine de dışarı aktarılması gereken veriler bu konumda depolanmış olabilir. Çalışma alanı depolama mimarisi hakkında daha fazla bilgi için bkz . Çalışma alanı depolama.
Databricks Dosya Sistemi kökünü dışarı aktar:
Azure'daki kök demetler özel olduğundan, verileri depolama hesapları arasında taşımak gibi azcopy Azure'a özel araçları kullanamazsınız. Bunun yerine, Azure Databricks içinde dbutils fs cp ve Delta DEEP CLONE kullanın. Bu işlem, veri hacmine bağlı olarak uzun sürebilir.
# Copy DBFS files to a local path
dbutils.fs.cp("dbfs:/path/to/remote/folder", "/path/to/local/folder", recurse=True)
Databricks Dosya Sistemi kök depolamadaki tablolar için kullanın DEEP CLONE:
CREATE TABLE delta.`abfss://container@storage.dfs.core.windows.net/path/to/external/storage/`
DEEP CLONE delta.`dbfs:/path/to/dbfs/location`
Önemli
Büyük hacimli verileri bulut depolama alanından dışarı aktarmak önemli veri aktarımı ve depolama maliyetlerine neden olabilir. Büyük dışarı aktarma işlemleri başlatmadan önce bulut sağlayıcınızın fiyatlandırmasını gözden geçirin.
Yaygın dışarı aktarma zorlukları
Sırlar:
Gizli bilgiler güvenlik nedeniyle doğrudan dışarı aktarılamaz. Terraform dışa aktarıcıyı -export-secrets seçeneğiyle kullanırken, aktarıcı vars.tf içinde gizli ile aynı ada sahip bir değişken oluşturur. Bu dosyayı gerçek gizli dizi değerleriyle el ile güncelleştirmeniz veya Terraform dışarı aktarıcısını -export-secrets seçeneğiyle çalıştırmanız gerekir (yalnızca Azure Databricks tarafından yönetilen gizli diziler için).
Azure Databricks, Azure Key Vault destekli gizli dizi deposu kullanılmasını önerir.
Yapay zeka ve ML varlıklarını dışarı aktarma
Bazı yapay zeka ve ML varlıkları, dışarı aktarma için farklı araçlar ve yaklaşımlar gerektirir. Unity Kataloğu modelleri, Terraform dışa aktarım aracının bir parçası olarak aktarılır.
MLflow nesneleri
MLflow, API'deki boşluklar ve serileştirme zorluğu nedeniyle Terraform ihracatçısı tarafından kapsanmamıştır. MLflow denemelerini, çalıştırmalarını, modellerini ve yapıtlarını dışarı aktarmak için mlflow-export-import aracını kullanın. Bu açık kaynak aracı, MLflow geçişinin yarı eksiksiz kapsamını sağlar.
Yalnızca dışarı aktarma senaryolarında, içeri aktarma adımını gerçekleştirmeye gerek kalmadan tüm MLflow varlıklarını müşteriye ait bir demet içinde depolayabilirsiniz. MLflow yönetimi hakkında daha fazla bilgi için bkz. Unity Kataloğu'nda model yaşam döngüsünü yönetme.
Özellik Deposu ve Vektör Araması
Vektör Arama dizinleri: Vektör Arama dizinleri AB veri dışarı aktarma yordamları kapsamında değildir. Bunları yine de dışarı aktarmak istiyorsanız, standart bir tabloya yazılmalı ve ardından kullanılarak DEEP CLONEdışarı aktarılmalıdır.
Özellik Deposu tabloları: Özellik Deposu, Vektör Arama dizinlerine benzer şekilde ele alınmalıdır. SQL kullanarak ilgili verileri seçin ve standart bir tabloya yazın, ardından kullanarak DEEP CLONEdışarı aktarın.
Dışarı aktarılan verileri doğrulama
Çalışma alanı verilerini dışarı aktardıktan sonra, eski ortamı devre dışı bırakmadan önce işlerin, kullanıcıların, not defterinin ve diğer kaynakların doğru bir şekilde dışarı aktarıldığını doğrulayın. Dışarı aktarmayı beklediğiniz her şeyin başarıyla dışarı aktarıldığını doğrulamak için kapsam belirleme ve planlama aşamasında oluşturduğunuz denetim listesini kullanın.
Doğrulama denetim listesi
Dışarı aktarma işleminizi doğrulamak için bu denetim listesini kullanın:
- Oluşturulan yapılandırma dosyaları: Terraform yapılandırma dosyaları tüm gerekli çalışma alanı kaynakları için oluşturulur.
- Dışarı aktarılan not defterleri: Tüm not defterleri içeriği ve meta verileri olduğu gibi dışarı aktarılır.
- Kopyalanan tablolar: Yönetilen tablolar dışarı aktarma konumuna başarıyla kopyalanmıştır.
- Kopyalanan veri dosyaları: Bulut depolama verileri hatasız olarak tamamen kopyalanır.
- Dışarı aktarılan MLflow nesneleri: Denemeler, çalıştırmalar ve modeller yapıtlarıyla birlikte dışarı aktarılır.
- Belgelenen izinler: Erişim denetim listeleri ve izinleri Terraform yapılandırmasında yakalanır.
- Tanımlanan bağımlılıklar: Varlıklar arasındaki ilişkiler (örneğin, not defterlerine başvuran işler) dışarı aktarmada korunur.
Dışarı aktarma sonrası en iyi yöntemler
Doğrulama ve kabul testi büyük ölçüde gereksinimlerinize göre yapılır ve büyük ölçüde farklılık gösterebilir. Ancak, bu genel en iyi yöntemler geçerlidir:
- Test ortamı tanımlayın: Gizli dizilerin, verilerin, bağlamaların, bağlayıcıların ve diğer bağımlılıkların dışarı aktarılan ortamda düzgün çalıştığını doğrulamak için işlerden veya not defterlerinden oluşan bir test ortamı oluşturun.
- Geliştirme ortamlarıyla başlayın: Aşamalı bir şekilde hareket ediyorsanız geliştirme ortamıyla başlayın ve üretime geçin. Bu, önemli sorunları erken ortaya çıkar ve üretim etkilerini önler.
- Git klasörlerini kullanın: Mümkün olduğunda, bir dış Git deposunda bulundukları için Git klasörlerini kullanın. Bu, el ile dışarı aktarmayı önler ve kodun ortamlar arasında aynı olmasını sağlar.
- Dışarı aktarma işlemini belgeleyin: Kullanılan araçları, yürütülen komutları ve karşılaşılan sorunları kaydedin.
- Dışarı aktarılan verilerin güvenliğini sağlama: Dışarı aktarılan verilerin, özellikle hassas veya kişisel bilgiler içeriyorsa uygun erişim denetimleriyle güvenli bir şekilde depolandığından emin olun.
- Uyumluluğu koruma: Uyumluluk amacıyla dışarı aktarma işlemi gerçekleniyorsa, dışarı aktarma işleminin mevzuat gereksinimlerini ve saklama ilkelerini karşıladığını doğrulayın.
Örnek betikler ve otomasyon
Scriptleri ve zamanlanmış işleri kullanarak çalışma alanı dışa aktarmalarını otomatikleştirebilirsiniz.
Derin Kopya dışa aktarma komut dosyası
Aşağıdaki betik, Unity Catalog tarafından yönetilen tabloları DEEP CLONE kullanarak dışarı aktarır. Bu kod, belirli bir kataloğu ara demete aktarmak için kaynak çalışma alanında çalıştırılmalıdır.
catalogs_to_copy ve dest_bucket değişkenlerini güncelleştirin.
import pandas as pd
# define catalogs and destination bucket
catalogs_to_copy = ["my_catalog_name"]
dest_bucket = "<cloud-storage-path>://my-intermediate-bucket"
manifest_name = "manifest"
# initialize vars
system_info = sql("SELECT * FROM system.information_schema.tables")
copied_table_names = []
copied_table_types = []
copied_table_schemas = []
copied_table_catalogs = []
copied_table_locations = []
# loop through all catalogs to copy, then copy all non-system tables
# note: this would likely be parallelized using thread pooling in prod
for catalog in catalogs_to_copy:
filtered_tables = system_info.filter((system_info.table_catalog == catalog) & (system_info.table_schema != "information_schema"))
for table in filtered_tables.collect():
schema = table['table_schema']
table_name = table['table_name']
table_type = table['table_type']
print(f"Copying table {schema}.{table_name}...")
target_location = f"{dest_bucket}/{catalog}_{schema}_{table_name}"
sqlstring = f"CREATE TABLE delta.`{target_location}` DEEP CLONE {catalog}.{schema}.{table_name}"
sql(sqlstring)
# lists used to create manifest table DF
copied_table_names.append(table_name)
copied_table_types.append(table_type)
copied_table_schemas.append(schema)
copied_table_catalogs.append(catalog)
copied_table_locations.append(target_location)
# create the manifest as a df and write to a table in dr target
# this contains catalog, schema, table and location
manifest_df = pd.DataFrame({"catalog": copied_table_catalogs,
"schema": copied_table_schemas,
"table": copied_table_names,
"location": copied_table_locations,
"type": copied_table_types})
spark.createDataFrame(manifest_df).write.mode("overwrite").format("delta").save(f"{dest_bucket}/{manifest_name}")
display(manifest_df)
Otomasyonla ilgili dikkat edilmesi gerekenler
Dışarı aktarmalar otomatikleştirildiğinde:
- Zamanlanmış işleri kullanma: Dışarı aktarma betiklerini düzenli bir zamanlamaya göre çalıştıran Azure Databricks işleri oluşturun.
- Dışarı aktarma işlerini izleme: Dışarı aktarmaların başarısız olması veya beklenenden uzun sürmesi durumunda sizi bilgilendirmek için uyarıları yapılandırın.
- Kimlik bilgilerini yönetme: Azure Databricks gizli dizilerini kullanarak bulut depolama kimlik bilgilerini ve API belirteçlerini güvenli bir şekilde depolayın. Bkz. Gizli yönetim.
- Sürüm dışarı aktarmaları: Geçmiş dışarı aktarmaları korumak için dışarı aktarma yollarında zaman damgalarını veya sürüm numaralarını kullanın.
- Eski dışarı aktarmaları temizleme: Eski dışarı aktarmaları silmek ve depolama maliyetlerini yönetmek için bekletme ilkeleri uygulayın.
- Artımlı dışarı aktarmalar: Büyük çalışma alanları için, son dışarı aktarmadan bu yana yalnızca değiştirilen verileri dışarı aktaran artımlı dışarı aktarmalar uygulamayı göz önünde bulundurun.