Bağlan Azure'da depolama hizmetleri

Bu makalede, Azure Machine Learning veri depoları ve Python SDK'sı ile Azure'daki veri Azure Machine Learning nasıl bağlanabilirsiniz?

Veri depoları, kimlik doğrulaması kimlik bilgilerinizi ve özgün veri kaynağınızı bütünlüğünü riske atmadan Azure'da depolama hizmetinize güvenli bir şekilde bağlanıyor. Abonelik kimliğiniz ve belirteç yetkilendirmeniz gibi bağlantı bilgilerini çalışma alanıyla ilişkilendirilmiş Key Vault depolama alanınıza sabit kod yazmanıza gerek kalmadan güvenli bir şekilde erişebilirsiniz. Bu Azure depolama çözümlerine bağlanan veri depoları oluşturabilirsiniz.

Veri deposuların genel veri erişimi iş Azure Machine Learning uygun olduğunu anlamak için Verilere güvenli erişim makalesine bakın.

Düşük kod deneyimi için bkz. Azure Machine Learning Studio kullanarak veri deposu oluşturma ve kaydetme.

İpucu

Bu makalede, depolama hizmetinize hizmet sorumlusu veya paylaşılan erişim imzası (SAS) belirteci gibi kimlik bilgileri tabanlı kimlik doğrulaması kimlik bilgileriyle bağlanmak istediğiniz varsayılır. Kimlik bilgilerinin veri depolarında kayıtlı olduğunu unutmayın; çalışma alanı Okuyucusu rolüne sahip tüm kullanıcılar bu kimlik bilgilerini alabilir. Çalışma alanı Okuyucu rolü hakkında daha fazla bilgi.

Bu bir sorunsa, kimlik tabanlı erişim Bağlan depolama hizmetleriyle nasıl bağlantınız olduğunu öğrenin.

Önkoşullar

  • Azure aboneliği. Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun. sürümünün ücretsiz veya ücretli sürümünü Azure Machine Learning.

  • Desteklenen depolama türüne sahip bir Azure depolama hesabı.

  • Python için Azure Machine Learning SDK'sı.

  • Azure Machine Learning çalışma alanı.

    Python SDK'Azure Machine Learning bir çalışma alanı oluşturun veya var olan bir çalışma alanını kullanın.

    ve Workspace sınıfını Datastore içeri aktarın ve işlevini kullanarak dosyadan config.json abonelik bilgilerini from_config() yükleme. Bu, varsayılan olarak geçerli dizinde JSON dosyasını aramaz, ancak kullanarak dosyaya işaret etmek için bir yol parametresi de from_config(path="your/file/path") belirtebilirsiniz.

    import azureml.core
    from azureml.core import Workspace, Datastore
    
    ws = Workspace.from_config()
    

    Bir çalışma alanı sanız, bir Azure blob kapsayıcısı ve Azure dosya paylaşımı otomatik olarak çalışma alanına veri deposu olarak kaydedilir. Sırasıyla workspaceblobstore ve workspacefilestore olarak adlandırılmıştır. , workspaceblobstore çalışma alanı yapıtlarını ve makine öğrenmesi deneme günlüklerinizi depolamak için kullanılır. Varsayılan veri deposu olarak da ayarlanır ve çalışma alanından silinemez. , workspacefilestore işlem örneği aracılığıyla yetkilendirilmiş not defterlerini ve R betiklerini depolamak için kullanılır.

    Not

    Azure Machine Learning tasarımcı giriş sayfasında bir örnek azureml_globaldatasets otomatik olarak azureml_globaldatasets adlı bir veri deposu oluşturacaktır. Bu veri deposu yalnızca örnek veri kümeleri içerir. Gizli veri erişimi için bu veri deposu kullanmayın.

Desteklenen veri depolama hizmeti türleri

Veri depoları şu anda bağlantı bilgilerini aşağıdaki matriste listelenen depolama hizmetleriyle depolamayı desteklemektedir.

İpucu

Desteklenmeyen depolama çözümleri için ve denemeler sırasında veri ML tasarruf etmek için verilerinizi desteklenen bir Azure depolama çözümüne taşımanız gerekir.

 Depolama Türü Kimlik doğrulaması   türü Azure   Machine   Learning Studio Azure   Machine Learning Python     SDK'sı Azure   Machine   Learning CLI Azure   Machine Learning Rest     API VS Code
Azure   Blob   Depolama Hesap anahtarı
SAS belirteci
Azure   Dosya   Paylaşımı Hesap anahtarı
SAS belirteci
Azure   Data Lake Depolama     1. Nesil Hizmet sorumlusu
Azure   Data Lake Depolama     2. Nesil Hizmet sorumlusu
Azure   SQL   Veritabanı SQL kimlik doğrulaması
Hizmet sorumlusu
Azure   PostgreSQL SQL kimlik doğrulaması
      MySQL için Azure Veritabanı SQL kimlik doğrulaması ✓* ✓* ✓*
Databricks   Dosya   Sistemi Kimlik doğrulaması yok ✓** ✓ ** ✓**

* MySQL yalnızca DataTransferStep işlem hattı için destekle
** Databricks yalnızca DatabricksStep işlem hattı için de destekle

Depolama yönergeleri

Azure Blob kapsayıcısı için bir veri deposu oluşturmanız önerilir. Bloblar için hem standart hem de premium depolama kullanılabilir. Premium depolama daha pahalı olsa da, daha yüksek aktarım hızı, özellikle büyük bir veri kümesine karşı eğitim yaptısanız eğitim çalıştırmalarının hızını artırabilir. Depolama hesaplarının maliyeti hakkında bilgi için bkz. Azure fiyatlandırma hesaplayıcısı.

Azure Data Lake Depolama 2. Nesil, Azure Blob depolama üzerine inşa edilmiştir ve kurumsal büyük veri analizi için tasarlanmıştır. Data Lake Depolama 2. Nesil'in temel bir parçası, Blob depolamaya hiyerarşik ad alanı eklemedir. Hiyerarşik ad alanı, verimli veri erişimi için nesneleri/dosyaları bir dizin hiyerarşisi içinde organize eder.

Depolama ve izinleri yönetme

Azure depolama hizmetinize güvenli bir şekilde bağlanmanızı sağlamak Azure Machine Learning ilgili veri depolama kapsayıcınıza erişim izninizin olmasını gerektirir. Bu erişim, veri depolarını kaydetmek için kullanılan kimlik doğrulaması kimlik bilgilerine bağlıdır.

Sanal ağ

Azure Machine Learning güvenlik duvarının arkasında veya sanal ağ içinde bulunan bir depolama hesabıyla iletişim kurmak için ek yapılandırma adımları gerekir. Depolama hesabınız bir güvenlik duvarının arkasında yer alıyorsa ip adresinin listesi için izin vermek Azure portal.

Azure Machine Learning ağ dışındaki istemcilerden istekler alabilirsiniz. Hizmetten veri istenen varlığın güvenli olduğundan emin olmak için çalışma alanınız ile özel bir uç nokta kullanın.

Python SDK kullanıcıları için, bir işlem hedefi üzerinde eğitim betiğiniz aracılığıyla verilerinize erişmek için işlem hedefinin depolama alanının aynı sanal ağın ve alt ağın içinde olması gerekir.

Studio Azure Machine Learning için, çeşitli özellikler bir veri kümesinden veri okuma özelliğine sahiptir; veri kümesi önizlemeleri, profiller ve otomatik makine öğrenmesi gibi. Bu özelliklerin sanal ağların ardındaki depolamayla çalışması için, sanal ağın dışından depolama hesabına erişmesine izin vermek Azure Machine Learning studio'da çalışma alanı yönetilen kimliği kullanın.

Not

Veri depolama alanınız bir sanal Azure SQL Veritabanı arkasında bir depolama alanı ise, depolama hesabına erişmesine izin vermek için Azure portal üzerinden genel erişimi reddet Azure Machine Learning emin olun.

Erişim doğrulaması

Azure Machine Learning, ilk veri deposu oluşturma ve kayıt işleminin bir parçası olarak, temel alınan depolama hizmetinin mevcut olduğunu ve kullanıcı tarafından sağlanan sorumlu (kullanıcı adı, hizmet sorumlusu veya SAS belirteci) belirtilen depolama alanına erişimi olduğunu otomatik olarak doğrular.

Veri deposu oluşturma işlemi sonrasında bu doğrulama yalnızca temel alınan depolama kapsayıcısı için erişim gerektiren yöntemler için gerçekleştirilir, veri deposu nesneleri her alınırken değil. Örneğin, veri deposu dosyaları indirmek için doğrulama gerçekleşir; ancak yalnızca varsayılan veri deposu değiştirmek istediğinizde doğrulama işlemi olmaz.

Temel alınan depolama hizmetine erişiminizin kimliğini doğrulamak için, oluşturmak istediğiniz veri deposu türünün ilgili yönteminde hesap anahtarınızı, paylaşılan erişim imzaları (SAS) belirteçlerini veya hizmet register_azure_*() sorumlularını sebilirsiniz. Depolama türü matrisi, her veri deposu türüne karşılık gelen desteklenen kimlik doğrulama türlerini listeler.

hesap anahtarı, SAS belirteci ve hizmet sorumlusu bilgilerini Azure portal.

  • Kimlik doğrulaması için bir hesap anahtarı veya SAS belirteci kullanmayı planlıyorsanız, sol bölmede Depolama Hesaplar'ı seçin ve kaydetmek istediğiniz depolama hesabını seçin.

    • Genel Bakış sayfası hesap adı, kapsayıcı ve dosya paylaşımı adı gibi bilgiler sağlar.
      1. Hesap anahtarları için, giriş bölmesindeki Erişim Ayarlar gidin.
      2. SAS belirteçleri için, Ayarlar bölmesinde Paylaşılan erişim imzaları'Ayarlar gidin.
  • Kimlik doğrulaması için bir hizmet sorumlusu kullanmayı planlıyorsanız, Uygulama kayıtları ve kullanmak istediğiniz uygulamayı seçin.

    • İlgili Genel Bakış sayfası kiracı kimliği ve istemci kimliği gibi gerekli bilgileri içerir.

Önemli

  • Azure Depolama hesabı (hesap anahtarı veya SAS belirteci) için erişim anahtarlarınızı değiştirmeniz gerekirse, yeni kimlik bilgilerini çalışma alanınız ve buna bağlı veri depoları ile eşitleyenin. Güncelleştirilmiş kimlik bilgilerinizi eşitlemeyi öğrenin.

İzinler

Azure blob kapsayıcısı ve Azure Data Lake 2. Nesil depolama için kimlik doğrulama kimlik bilgilerinizin Blob Depolama okuyucu erişimi olduğundan emin olun. Blob Veri Okuyucusu Depolama hakkında daha fazla bilgi. Hesap SAS belirteci varsayılan olarak izinlere sahip değildir.

  • Veri okuma erişimi için kimlik doğrulama kimlik bilgilerinizin kapsayıcılar ve nesneler için en az liste ve okuma izinlerine sahip olması gerekir.

  • Veri yazma erişimi için yazma ve ekleme izinleri de gereklidir.

Veri deposu oluşturma ve kaydetme

Bir Azure depolama çözümünü veri deposu olarak kaydeden veri depolarını otomatik olarak oluşturabilir ve belirli bir çalışma alanına kaydedebilirsiniz. Sanal ağ senaryoları ve & kimlik doğrulaması kimlik bilgilerinin nerede bulunarak ilgili rehberlik için depolama erişimi izinler bölümünü gözden geçirebilirsiniz.

Bu bölümde aşağıdaki depolama türleri için Python SDK'sı aracılığıyla veri deposu oluşturma ve kaydetme örnekleri verilmiştir. Bu örneklerde sağlanan parametreler, veri deposu oluşturmak ve kaydetmek için gereken parametrelerdir.

Desteklenen diğer depolama hizmetleri için veri depoları oluşturmak için ilgili yöntemlerin başvuru register_azure_* belgelerine bakın.

Düşük kod deneyimi tercih ediyorsanız bkz. Bağlan studio ile verilere Azure Machine Learning.

Önemli

Aynı adla bir veri deposu kaydını siler ve yeniden kaydettirdiyseniz ve veri deposu başarısız olursa, çalışma alanınız için Azure Key Vault silme özelliği etkinleştirilmemiş olabilir. Varsayılan olarak, çalışma alanınız tarafından oluşturulan anahtar kasası örneği için soft-delete etkinleştirilir, ancak mevcut bir anahtar kasasını kullandıysanız veya Ekim 2020'den önce oluşturulmuş bir çalışma alanınız varsa bu seçenek etkinleştirilmemiş olabilir. Yazılım silmeyi etkinleştirme hakkında bilgi için bkz. Mevcut bir anahtar kasası için Yumuşak Silmeyi açma.

Not

Veri deposu adı yalnızca küçük harflerden, rakamlardan ve alt çizgilerden oluşuyor olmalıdır.

Azure blob kapsayıcısı

Bir Azure blob kapsayıcıyı veri deposu olarak kaydetmek için register_azure_blob_container() kullanın.

Aşağıdaki kod, veri deposu oluşturur blob_datastore_name ve çalışma alanına ws kaydolr. Bu veri deposu, sağlanan my-container-name hesap erişim anahtarını kullanarak depolama hesabı üzerinde blob my-account-name kapsayıcıya erişer. Sanal ağ senaryoları ve & kimlik doğrulaması kimlik bilgilerinin nerede bulunarak ilgili rehberlik için depolama erişimi izinler bölümünü gözden geçirebilirsiniz.

blob_datastore_name='azblobsdk' # Name of the datastore to workspace
container_name=os.getenv("BLOB_CONTAINER", "<my-container-name>") # Name of Azure blob container
account_name=os.getenv("BLOB_ACCOUNTNAME", "<my-account-name>") # Storage account name
account_key=os.getenv("BLOB_ACCOUNT_KEY", "<my-account-key>") # Storage account access key

blob_datastore = Datastore.register_azure_blob_container(workspace=ws, 
                                                         datastore_name=blob_datastore_name, 
                                                         container_name=container_name, 
                                                         account_name=account_name,
                                                         account_key=account_key)

Azure dosya paylaşımı

Azure dosya paylaşımını veri deposu olarak kaydetmek için register_azure_file_share() kullanın.

Aşağıdaki kod, veri deposu oluşturur file_datastore_name ve çalışma alanına ws kaydolr. Bu veri deposu, sağlanan my-fileshare-name hesap erişim anahtarını kullanarak depolama hesabı üzerinde dosya my-account-name paylaşımına erişer. Sanal ağ senaryoları ve & kimlik doğrulaması kimlik bilgilerinin nerede bulunarak ilgili rehberlik için depolama erişimi izinler bölümünü gözden geçirebilirsiniz.

file_datastore_name='azfilesharesdk' # Name of the datastore to workspace
file_share_name=os.getenv("FILE_SHARE_CONTAINER", "<my-fileshare-name>") # Name of Azure file share container
account_name=os.getenv("FILE_SHARE_ACCOUNTNAME", "<my-account-name>") # Storage account name
account_key=os.getenv("FILE_SHARE_ACCOUNT_KEY", "<my-account-key>") # Storage account access key

file_datastore = Datastore.register_azure_file_share(workspace=ws,
                                                     datastore_name=file_datastore_name, 
                                                     file_share_name=file_share_name, 
                                                     account_name=account_name,
                                                     account_key=account_key)

Azure Data Lake Depolama 2. Nesil

Azure Data Lake Depolama 2. Nesil (ADLS 2. Nesil) veri deposu için register_azure_data_lake_gen2() kullanarak hizmet sorumlusu izinleriyle Bir Azure DataLake 2. Nesil depolamaya bağlı bir kimlik bilgisi veri deposu kaydetme.

Hizmet sorumlularınızı kullanmak için, uygulamanızı kaydetmeniz ve hizmet sorumlusuna Azure rol tabanlı erişim denetimi (Azure RBAC) veya erişim denetim listeleri (ACL) aracılığıyla erişim izni verebilirsiniz. ADLS 2. Nesil için ayarlanmış erişim denetimi hakkında daha fazla bilgi.

Aşağıdaki kod, veri deposu oluşturur adlsgen2_datastore_name ve çalışma alanına ws kaydolr. Bu veri deposu, sağlanan hizmet test sorumlusu kimlik bilgilerini kullanarak depolama hesabı içinde dosya sistemine account_name erişer. Sanal ağ senaryoları ve & kimlik doğrulaması kimlik bilgilerinin nerede bulunarak ilgili rehberlik için depolama erişimi izinler bölümünü gözden geçirebilirsiniz.

adlsgen2_datastore_name = 'adlsgen2datastore'

subscription_id=os.getenv("ADL_SUBSCRIPTION", "<my_subscription_id>") # subscription id of ADLS account
resource_group=os.getenv("ADL_RESOURCE_GROUP", "<my_resource_group>") # resource group of ADLS account

account_name=os.getenv("ADLSGEN2_ACCOUNTNAME", "<my_account_name>") # ADLS Gen2 account name
tenant_id=os.getenv("ADLSGEN2_TENANT", "<my_tenant_id>") # tenant id of service principal
client_id=os.getenv("ADLSGEN2_CLIENTID", "<my_client_id>") # client id of service principal
client_secret=os.getenv("ADLSGEN2_CLIENT_SECRET", "<my_client_secret>") # the secret of service principal

adlsgen2_datastore = Datastore.register_azure_data_lake_gen2(workspace=ws,
                                                             datastore_name=adlsgen2_datastore_name,
                                                             account_name=account_name, # ADLS Gen2 account name
                                                             filesystem='test', # ADLS Gen2 filesystem
                                                             tenant_id=tenant_id, # tenant id of service principal
                                                             client_id=client_id, # client id of service principal
                                                             client_secret=client_secret) # the secret of service principal

Diğer Azure araçlarıyla veri deposu oluşturma

Python SDK ve studio ile veri deposu oluşturmaya ek olarak, Azure Resource Manager şablonlarını veya Azure Machine Learning VS Code kullanabilirsiniz.

Azure Resource Manager

veri deposu oluşturmak için https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.machinelearningservices kullanılan bir dizi şablon vardır.

Bu şablonları kullanma hakkında daha fazla bilgi için bkz. Azure Resource Manager için çalışma alanı oluşturmak üzere Azure Machine Learning.

VS Code uzantısı

Azure Machine Learning VS Code uzantısını kullanarak veri deposu oluşturma ve yönetmeyi tercih ederseniz, daha fazla bilgi VS Code için veri kaynakları yönetimi nasıl kullanılır kılavuzunu ziyaret edin.

Veristore'lar içinde verileri kullanma

Veri deposu oluşturdukktan sonra, verilerinizle etkileşim Azure Machine Learning için bir veri kümesi oluşturun. Veri kümeleri, verilerinizi eğitim gibi makine öğrenmesi görevleri için uygun şekilde değerlendirilen bir tüketilebilir nesne olarak paketler.

Veri kümeleriyle, işlem hedefindeki model eğitimi için Azure depolama hizmetlerinden herhangi bir biçimdeki dosyaları indirebilir veya indirebilirsiniz. Veri kümeleriyle veri modellerini ML hakkında daha fazla bilgi.

Çalışma alanınıza veri deposu ekleme

Geçerli çalışma alanına kayıtlı belirli bir veri deposu almak için get() sınıfındaki statik yöntemini Datastore kullanın:

# Get a named datastore from the current workspace
datastore = Datastore.get(ws, datastore_name='your datastore name')

Verilen bir çalışma alanına kayıtlı veri deposu listesini almak için bir çalışma alanı datastores nesnesinde özelliğini kullanabilirsiniz:

# List all datastores registered in the current workspace
datastores = ws.datastores
for name, datastore in datastores.items():
    print(name, datastore.datastore_type)

Çalışma alanının varsayılan veri deposuna almak için şu satırı kullanın:

datastore = ws.get_default_datastore()

Aşağıdaki kodla varsayılan veri deposu'ları da değiştirebilirsiniz. Bu özellik yalnızca SDK aracılığıyla de destekler.

 ws.set_default_datastore(new_default_datastore)

Puanlama sırasında verilere erişme

Azure Machine Learning puanlama için modellerinizi kullanmanın çeşitli yollarını sağlar. Bu yöntemlerden bazıları veri deposuna erişim sağlamaz. Puanlama sırasında veri deposuna erişmeye olanak sağlayan yöntemleri anlamak için aşağıdaki tabloyu kullanın:

Yöntem Veri deposu erişimi Description
Toplu tahmin Zaman uyumsuz olarak büyük miktarlarda veriyle ilgili tahminlerde bulunur.
Web hizmeti   Modelleri web hizmeti olarak dağıtma.

SDK'nın veri deposuna erişim sağlamama durumu için, verilere erişmek için ilgili Azure SDK'yı kullanarak özel kod oluşturabilirsiniz. Örneğin, Python için Azure Depolama SDK'sı, bloblarda veya dosyalarda depolanan verilere erişmek için kullanabileceğiniz bir istemci kitaplığıdır.

Desteklenen Azure depolama çözümlerine veri taşıma

Azure Machine Learning, azure Blob depolama, azure dosyaları, Azure Data Lake Storage 1., Azure Data Lake Storage 2., Azure SQL Veritabanı ve postgresql için Azure veritabanı 'na erişimi destekler. Desteklenmeyen depolama kullanıyorsanız, Azure Data Factory ve bu adımlarıkullanarak verilerinizi desteklenen Azure depolama çözümlerine taşımanızı öneririz. Verileri desteklenen depolamaya taşımak, Machine Learning denemeleri sırasında veri çıkış maliyetlerini kaydetmenize yardımcı olabilir.

Azure Data Factory, ek ücret ödemeden 80 taneden fazla yerleşik bağlayıcı ile verimli ve dayanıklı veri aktarımı sağlar. Bu bağlayıcılar Azure veri Hizmetleri, şirket içi veri kaynakları, Amazon S3 ve Redshift ve Google BigQuery içerir.

Sonraki adımlar