Menyambungkan ke layanan penyimpanan di Azure dengan penyimpanan data

BERLAKU UNTUK:SDK Python azureml v1

BERLAKU UNTUK:Ekstensi ml Azure CLI v1

Dalam artikel ini, pelajari cara menyambungkan ke layanan penyimpanan data di Azure dengan datastore Azure Machine Learning dan Azure Machine Learning Python SDK.

Penyimpanan data terhubung dengan aman ke layanan penyimpanan Anda di Azure, dan mereka menghindari risiko terhadap kredensial autentikasi Anda atau integritas penyimpanan data asli Anda. Datastore menyimpan informasi koneksi - misalnya, ID langganan atau otorisasi token Anda - di Key Vault yang terkait dengan ruang kerja. Dengan datastore, Anda dapat mengakses penyimpanan dengan aman karena Anda dapat menghindari informasi koneksi hard-coding dalam skrip Anda. Anda dapat membuat datastore yang terhubung ke solusi penyimpanan Azure ini.

Untuk informasi yang menjelaskan bagaimana datastore cocok dengan alur kerja akses data Azure Pembelajaran Mesin keseluruhan, kunjungi artikel Mengakses data dengan aman.

Untuk mempelajari cara menyambungkan ke sumber daya penyimpanan data dengan UI, kunjungi Koneksi ke penyimpanan data dengan antarmuka pengguna studio.

Tip

Artikel ini mengasumsikan bahwa Anda akan terhubung ke layanan penyimpanan Anda dengan kredensial autentikasi berbasis kredensial - misalnya, perwakilan layanan atau token tanda tangan akses bersama (SAS). Perhatikan bahwa jika kredensial terdaftar di datastore, semua pengguna dengan peran Pembaca ruang kerja dapat mengambil kredensial tersebut. Untuk informasi selengkapnya, kunjungi Mengelola peran di ruang kerja Anda.

Untuk informasi selengkapnya tentang akses data berbasis identitas, kunjungi Akses data berbasis identitas ke layanan penyimpanan (v1).

Prasyarat

  • Langganan Azure. Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai. Coba versi gratis atau berbayar Azure Pembelajaran Mesin

  • Akun penyimpanan Azure dengan jenis penyimpanan yang didukung

  • Azure Machine Learning SDK for Python

  • Ruang kerja Azure Machine Learning.

    Membuat ruang kerja Azure Pembelajaran Mesin, atau menggunakan ruang kerja yang sudah ada melalui Python SDK

    Workspace Impor kelas dan Datastore , dan muat informasi langganan Anda dari config.json file dengan from_config() fungsi . Secara default, fungsi mencari file JSON di direktori saat ini, tetapi Anda juga dapat menentukan parameter jalur untuk menunjuk ke file dengan from_config(path="your/file/path"):

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

    Pembuatan ruang kerja secara otomatis mendaftarkan kontainer blob Azure dan berbagi file Azure, sebagai penyimpanan data, ke ruang kerja. Mereka dinamai workspaceblobstore dan workspacefilestore, masing-masing. Menyimpan workspaceblobstore artefak ruang kerja dan log eksperimen pembelajaran mesin Anda. Ini berfungsi sebagai datastore default dan tidak dapat dihapus dari ruang kerja. Menyimpan workspacefilestore notebook dan skrip R yang diotorisasi melalui instans komputasi.

    Catatan

    Perancang Azure Pembelajaran Mesin secara otomatis membuat datastore bernama azureml_globaldatasets saat Anda membuka sampel di beranda desainer. Datastore ini hanya berisi contoh himpunan data. Jangan gunakan datastore ini untuk akses data rahasia apa pun.

Tipe layanan penyimpanan data yang didukung

Datastore saat ini mendukung penyimpanan informasi koneksi ke layanan penyimpanan yang tercantum dalam matriks ini:

Tip

Untuk solusi penyimpanan yang tidak didukung (yang tidak tercantum dalam tabel berikut), Anda mungkin mengalami masalah saat menyambungkan dan bekerja dengan data Anda. Kami menyarankan agar Anda memindahkan data Anda ke solusi penyimpanan Azure yang didukung. Ini juga dapat membantu skenario tambahan- - misalnya, pengurangan biaya keluar data selama eksperimen ML.

Jenis penyimpanan Jenis autentikasi Studio Azure Pembelajaran Mesin Azure Pembelajaran Mesin Python SDK Azure Machine Learning CLI Azure Machine Learning REST API Kode VS
Penyimpanan Blob Azure Kunci akun
Token SAS
Azure File Share Kunci akun
Token SAS
Azure Data Lake Storage Gen 1 Perwakilan layanan
Azure Data Lake Storage Gen 2 Perwakilan layanan
Azure SQL Database Autentikasi SQL
Perwakilan layanan
Azure PostgreSQL Autentikasi SQL
Azure Database untuk MySQL Autentikasi SQL ✓* ✓* ✓*
Sistem File Databricks Tidak ada autentikasi ✓** ✓ ** ✓**

Panduan penyimpanan

Sebaiknya buat datastore untuk kontainer Azure Blob. Penyimpanan standar dan premium tersedia untuk blob. Meskipun penyimpanan premium lebih mahal, kecepatan throughputnya yang lebih cepat dapat meningkatkan kecepatan pelatihan Anda berjalan, terutama jika Anda berlatih terhadap himpunan data besar. Untuk informasi tentang biaya akun penyimpanan, kunjungi kalkulator harga Azure.

Azure Data Lake Storage Gen2 dibangun di atas penyimpanan Azure Blob. Ini dirancang untuk analitik big data perusahaan. Sebagai bagian dari Data Lake Storage Gen2, penyimpanan Blob memiliki namespace hierarkis. Hierarki Kumpulan nama XML mengatur objek/file ke dalam hierarki direktori untuk akses data yang efisien.

Akses dan izin penyimpanan

Untuk memastikan Anda tersambung dengan aman ke layanan penyimpanan Azure, Azure Machine Learning mengharuskan Anda memiliki izin untuk mengakses kontainer penyimpanan data terkait. Akses ini bergantung pada kredensial autentikasi yang digunakan untuk mendaftarkan datastore.

Jaringan virtual

Untuk berkomunikasi dengan akun penyimpanan yang terletak di belakang firewall atau dalam jaringan virtual, Azure Pembelajaran Mesin memerlukan langkah-langkah konfigurasi tambahan. Untuk akun penyimpanan yang terletak di belakang firewall, Anda dapat menambahkan alamat IP klien Anda ke daftar izin dengan portal Azure.

Azure Machine Learning dapat menerima permintaan dari klien di luar jaringan virtual. Untuk memastikan bahwa entitas yang meminta data dari layanan aman, dan untuk mengaktifkan tampilan data di ruang kerja Anda, gunakan titik akhir privat dengan ruang kerja Anda.

Untuk pengguna Python SDK: Untuk mengakses data Anda pada target komputasi dengan skrip pelatihan, Anda harus menemukan target komputasi di dalam jaringan virtual dan subnet penyimpanan yang sama. Anda dapat menggunakan instans/kluster komputasi di jaringan virtual yang sama.

Untuk pengguna studio Azure Pembelajaran Mesin: Beberapa fitur mengandalkan kemampuan untuk membaca data dari himpunan data - misalnya, pratinjau himpunan data, profil, dan pembelajaran mesin otomatis. Agar fitur ini berfungsi dengan penyimpanan di balik jaringan virtual, gunakan identitas terkelola ruang kerja di studio untuk memungkinkan Azure Machine Learning mengakses akun penyimpanan dari luar jaringan virtual.

Catatan

Untuk data yang disimpan di Azure SQL Database di belakang jaringan virtual, atur Tolak akses publik ke Tidak dengan portal Azure, untuk memungkinkan Azure Pembelajaran Mesin mengakses akun penyimpanan.

Validasi akses

Peringatan

Akses antar penyewa ke akun penyimpanan tidak didukung. Jika skenario Anda memerlukan akses lintas penyewa, hubungi alias tim Dukungan Data Azure Pembelajaran Mesin untuk amldatasupport@microsoft.com mendapatkan bantuan terkait solusi kode kustom.

Sebagai bagian dari proses pembuatan dan pendaftaran datastore awal, Azure Pembelajaran Mesin secara otomatis memvalidasi bahwa layanan penyimpanan yang mendasar ada dan bahwa prinsipal yang disediakan pengguna (nama pengguna, perwakilan layanan, atau token SAS) dapat mengakses penyimpanan yang ditentukan.

Setelah pembuatan datastore, validasi ini hanya dilakukan untuk metode yang memerlukan akses ke kontainer penyimpanan yang mendasarinya, bukan setiap kali objek datastore diambil. Misalnya, validasi terjadi jika Anda ingin mengunduh file dari datastore Anda. Namun, jika Anda hanya ingin mengubah datastore default, validasi tidak terjadi.

Untuk mengautentikasi akses Anda ke layanan penyimpanan yang mendasarinya, Anda dapat menyediakan kunci akun, token tanda tangan akses bersama (SAS), atau prinsipal layanan dalam metode register_azure_*() yang sesuai dari jenis datastore yang ingin Anda buat. Daftar matriks jenis penyimpanan mencantumkan jenis autentikasi yang didukung yang sesuai dengan setiap jenis datastore.

Anda dapat menemukan kunci akun, token SAS, dan informasi perwakilan layanan di portal Azure Anda.

  • Untuk menggunakan kunci akun atau token SAS untuk autentikasi, pilih Akun Penyimpanan di panel kiri, dan pilih akun penyimpanan yang ingin Anda daftarkan

    • Halaman Gambaran Umum menyediakan nama akun, nama berbagi file, kontainer, dll. informasi
      • Untuk kunci akun, buka Kunci akses di panel Pengaturan
      • Untuk token SAS, buka Tanda tangan akses bersama di panel Pengaturan
  • Untuk menggunakan perwakilan layanan untuk autentikasi, buka Pendaftaran aplikasi Anda dan pilih aplikasi yang ingin Anda gunakan

    • Halaman Gambaran Umum terkait dari aplikasi yang dipilih berisi informasi yang diperlukan - misalnya, ID penyewa dan ID klien

Penting

Untuk mengubah kunci akses Anda untuk akun Azure Storage (kunci akun atau token SAS), sinkronkan kredensial baru dengan ruang kerja Anda dan datastore yang tersambung ke dalamnya. Untuk informasi selengkapnya, kunjungi menyinkronkan kredensial yang diperbarui.

Izin

Untuk kontainer blob Azure dan penyimpanan Azure Data Lake Gen 2, pastikan kredensial autentikasi Anda memiliki akses Pembaca Data Blob Penyimpanan. Untuk informasi selengkapnya, kunjungi Pembaca Data Blob Penyimpanan. Pengaturan default token SAS akun adalah tidak memiliki izin.

  • Untuk akses baca data, kredensial autentikasi Anda harus memiliki minimal izin daftar dan baca untuk kontainer dan objek

  • Akses tulis data juga memerlukan izin tulis dan tambahkan

Membuat dan mendaftarkan datastore

Pendaftaran solusi penyimpanan Azure sebagai datastore secara otomatis membuat dan mendaftarkan datastore tersebut ke ruang kerja tertentu. Tinjau akses penyimpanan & izin dalam dokumen ini untuk panduan tentang skenario jaringan virtual, dan tempat menemukan kredensial autentikasi yang diperlukan.

Bagian itu menawarkan contoh yang menjelaskan cara membuat dan mendaftarkan datastore melalui Python SDK untuk jenis penyimpanan ini. Parameter yang ditunjukkan contoh-contoh ini adalah parameter yang diperlukan untuk membuat dan mendaftarkan datastore:

Untuk membuat penyimpanan data untuk layanan penyimpanan lain yang didukung, kunjungi dokumentasi referensi untuk metode yang berlakuregister_azure_*.

Untuk mempelajari cara menyambungkan ke sumber daya penyimpanan data dengan UI, kunjungi Koneksi ke data dengan azure Pembelajaran Mesin studio.

Penting

Jika Anda membatalkan pendaftaran dan mendaftarkan ulang datastore dengan nama yang sama, dan pendaftaran ulang gagal, Azure Key Vault untuk ruang kerja Anda mungkin tidak mengaktifkan penghapusan sementara. Secara default, penghapusan sementara diaktifkan untuk instans brankas kunci yang dibuat oleh ruang kerja Anda, tetapi mungkin tidak diaktifkan jika Anda menggunakan brankas kunci yang ada atau memiliki ruang kerja yang dibuat sebelum Oktober 2020. Untuk informasi yang menjelaskan cara mengaktifkan penghapusan sementara, lihat Mengaktifkan Penghapusan Sementara untuk brankas kunci yang ada.

Catatan

Nama datastore hanya boleh berisi huruf kecil, digit, dan garis bawah.

Kontainer Azure blob

Untuk mendaftarkan kontainer blob Azure sebagai datastore, gunakan metode .register_azure_blob_container()

Sampel kode ini membuat dan mendaftarkan blob_datastore_name datastore ke ws ruang kerja. Datastore menggunakan kunci akses akun yang disediakan untuk mengakses my-container-name kontainer blob di my-account-name akun penyimpanan. Tinjau bagian akses penyimpanan & izin untuk panduan tentang skenario jaringan virtual, dan tempat menemukan kredensial autentikasi yang diperlukan.

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)

Berbagi file Azure

Untuk mendaftarkan berbagi file Azure sebagai datastore, gunakan metode .register_azure_file_share()

Sampel kode ini membuat dan mendaftarkan file_datastore_name datastore ke ws ruang kerja. Datastore menggunakan my-fileshare-name berbagi file di my-account-name akun penyimpanan, dengan kunci akses akun yang disediakan. Tinjau bagian akses penyimpanan & izin untuk panduan tentang skenario jaringan virtual, dan tempat menemukan kredensial autentikasi yang diperlukan.

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 Storage Generation 2

Untuk datastore Azure Data Lake Storage Generation 2 (ADLS Gen 2), gunakanmetode register_azure_data_lake_gen2() untuk mendaftarkan datastore kredensial yang terhubung ke penyimpanan Azure Data Lake Gen 2 dengan izin perwakilan layanan.

Untuk menggunakan perwakilan layanan, Anda harus mendaftarkan aplikasi dan memberikan akses data perwakilan layanan melalui kontrol akses berbasis peran Azure (Azure RBAC) atau daftar kontrol akses (ACL). Untuk informasi selengkapnya, kunjungi pengaturan kontrol akses untuk ADLS Gen 2.

Kode ini membuat dan mendaftarkan adlsgen2_datastore_name datastore ke ws ruang kerja. Datastore ini mengakses sistem test file di account_name akun penyimpanan, melalui penggunaan kredensial perwakilan layanan yang disediakan. Tinjau bagian akses penyimpanan & izin untuk panduan tentang skenario jaringan virtual, dan di mana menemukan kredensial autentikasi yang diperlukan.

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

Membuat datastore dengan alat Azure lainnya

Selain pembuatan datastore dengan Python SDK dan studio, Anda juga dapat membuat penyimpanan data dengan templat Azure Resource Manager atau ekstensi Azure Pembelajaran Mesin VS Code.

Azure Resource Manager

Anda dapat menggunakan beberapa templat di https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.machinelearningservices untuk membuat penyimpanan data. Untuk informasi tentang templat ini, kunjungi Menggunakan templat Azure Resource Manager untuk membuat ruang kerja untuk Azure Pembelajaran Mesin.

Ekstensi Visual Studio Code

Untuk informasi selengkapnya tentang pembuatan dan pengelolaan datastore dengan ekstensi Azure Pembelajaran Mesin VS Code, kunjungi panduan cara pengelolaan sumber daya Visual Studio Code.

Menggunakan data di datastore Anda

Setelah pembuatan datastore, buat himpunan data Azure Pembelajaran Mesin untuk berinteraksi dengan data Anda. Himpunan data mengemas data Anda ke dalam objek yang dapat dikonsumsi dengan malas untuk tugas pembelajaran mesin, seperti pelatihan. Dengan set data, Anda dapat mengunduh atau memasang file dengan format apa pun dari layanan penyimpanan Azure untuk pelatihan model pada target komputasi. Pelajari selengkapnya tentang cara melatih model ML dengan himpunan data.

Mendapatkan datastore dari ruang kerja Anda

Untuk mendapatkan datastore tertentu yang terdaftar di ruang kerja saat ini, gunakan get() metode statik pada Datastore kelas:

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

Untuk mendapatkan daftar datastore yang terdaftar di ruang kerja tertentu, gunakan datastores properti pada objek ruang kerja:

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

Sampel kode ini menunjukkan cara mendapatkan datastore default ruang kerja:

datastore = ws.get_default_datastore()

Anda juga dapat mengubah datastore default dengan sampel kode ini. Hanya SDK yang mendukung kemampuan ini:

 ws.set_default_datastore(new_default_datastore)

Mengakses data selama penilaian

Azure Machine Learning menyediakan beberapa cara untuk menggunakan model Anda untuk mencetak penilaian. Beberapa metode ini tidak menyediakan akses ke datastore. Tabel berikut ini menjelaskan metode mana yang memungkinkan akses ke penyimpanan data selama penilaian:

Metode Akses datastore Deskripsi
Prediksi batch Buat prediksi pada data dalam jumlah besar secara asinkron.
Layanan web   Terapkan model sebagai layanan web.

Saat SDK tidak menyediakan akses ke penyimpanan data, Anda mungkin dapat membuat kode kustom dengan Azure SDK yang relevan untuk mengakses data. Misalnya, SDK Azure Storage untuk pustaka klien Python dapat mengakses data yang disimpan dalam blob atau file.

Memindahkan data ke solusi penyimpanan Azure yang didukung

Azure Pembelajaran Mesin mendukung akses data dari

  • Azure Blob Storage
  • Azure Files
  • Azure Data Lake Storage Gen1
  • Azure Data Lake Storage Gen2
  • Azure SQL Database
  • Azure Database untuk PostgreSQL

Jika Anda menggunakan penyimpanan yang tidak didukung, kami sarankan Anda menggunakan Azure Data Factory dan langkah-langkah ini untuk memindahkan data Anda ke solusi penyimpanan Azure yang didukung. Memindahkan data ke penyimpanan yang didukung dapat membantu Anda menghemat biaya keluar data selama eksperimen pembelajaran mesin.

Azure Data Factory menyediakan transfer data yang efisien dan tangguh, dengan lebih dari 80 konektor bawaan, tanpa biaya tambahan. Konektor ini mencakup layanan data Azure, sumber data lokal, Amazon S3 dan Redshift, serta Google BigQuery.

Langkah berikutnya