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ı.
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
WorkspacesınıfınıDatastoreiçeri aktarın ve işlevini kullanarak dosyadanconfig.jsonabonelik bilgilerinifrom_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 defrom_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
workspaceblobstoreveworkspacefilestoreolarak 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. ,workspacefilestoreiş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.
Not
Bu kılavuz, kimlik tabanlı veri erişimiyle oluşturulan veri deposu için de geçerlidir.
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.
- Hesap anahtarları için, giriş bölmesindeki Erişim Ayarlar gidin.
- SAS belirteçleri için, Ayarlar bölmesinde Paylaşılan erişim imzaları'Ayarlar gidin.
- Genel Bakış sayfası hesap adı, kapsayıcı ve dosya paylaşımı adı gibi bilgiler sağlar.
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.