Bagikan melalui


Salin dan ubah data di Azure Blob Storage dengan menggunakan Azure Data Factory atau Azure Synapse Analytics

BERLAKU UNTUK: Azure Data Factory Azure Synapse Analytics

Tip

Cobalah Data Factory di Microsoft Fabric, solusi analitik all-in-one untuk perusahaan. Microsoft Fabric mencakup semuanya mulai dari pergerakan data hingga ilmu data, analitik real time, kecerdasan bisnis, dan pelaporan. Pelajari cara memulai uji coba baru secara gratis!

Artikel ini menguraikan cara menggunakan aktivitas Salin di Azure Data Factory dan alur Azure Synapse untuk menyalin data dari dan ke Azure Blob Storage. Ini juga menjelaskan cara menggunakan aktivitas Aliran Data untuk mengubah data di Azure Blob Storage. Untuk mempelajari selengkapnya, baca artikel pengantar Azure Data Factory dan Azure Synapse Analytics.

Tip

Untuk mempelajari tentang skenario migrasi untuk data lake atau gudang data, lihat artikel Memigrasikan data dari data lake atau gudang data Anda ke Azure.

Kemampuan yang didukung

Konektor Azure Blob Storage ini didukung untuk kemampuan berikut ini:

Kemampuan yang didukung IR Titik akhir privat terkelola
Salin aktivitas (sumber/sink) (1) (2) ✓ Mengecualikan akun penyimpanan V1
Memetakan aliran data (sumber/sink) ✓ Mengecualikan akun penyimpanan V1
Aktivitas pencarian (1) (2) ✓ Mengecualikan akun penyimpanan V1
Aktivitas GetMetadata (1) (2) ✓ Mengecualikan akun penyimpanan V1
Hapus aktivitas (1) (2) ✓ Mengecualikan akun penyimpanan V1

① Runtime integrasi Azure ② Runtime integrasi yang dihost sendiri

Untuk aktivitas Salin, konektor penyimpanan Blob ini mendukung:

  • Menyalin blob ke dan dari akun penyimpanan Azure tujuan umum dan penyimpanan blob panas/dingin.
  • Menyalin blob dengan menggunakan kunci akun, tanda tangan akses bersama layanan (SAS), perwakilan layanan, atau identitas terkelola untuk autentikasi sumber daya Azure.
  • Menyalin blob dari blok, penambahan, atau blob halaman dan menyalin data hanya untuk memblokir blob.
  • Menyalin blob apa adanya, atau mengurai atau menghasilkan blob dengan format file yang didukung dan kodek pemadatan.
  • Mempertahankan metadata file selama penyalinan.

Get started

Untuk melakukan aktivitas salin dengan alur, Anda dapat menggunakan salah satu alat atau SDK berikut:

Membuat layanan terkait Azure Blob Storage menggunakan UI

Gunakan langkah-langkah berikut untuk membuat layanan azure Blob Storage linked di UI portal Azure.

  1. Telusuri ke tab Kelola di ruang kerja Azure Data Factory atau Synapse Anda dan pilih Layanan Tertaut, lalu pilih Baru:

  2. Cari gumpalan dan pilih konektor Storage Azure Blob.

    Pilih penghubung Azure Blob Storage.

  3. Konfigurasikan detail layanan, uji koneksi, dan buat layanan tertaut baru.

    Screenshot konfigurasi layanan tertaut Azure Blob Storage.

Detail konfigurasi konektor

Bagian berikut ini memberikan detail tentang properti yang digunakan untuk menentukan Pabrik Data dan entitas alur Sinapse khusus untuk penyimpanan Blob.

Properti tertaut layanan

Konektor penyimpanan Blob ini mendukung jenis autentikasi berikut. Lihat bagian terkait untuk detailnya.

Note

  • Jika Anda ingin menggunakan runtime integrasi Azure global untuk menyambungkan ke penyimpanan Blob Anda dengan menerapkan opsi Izinkan layanan Microsoft tepercaya untuk mengakses akun penyimpanan ini yang diaktifkan di firewall Azure Storage, Anda harus menggunakan autentikasi identitas terkelola. Untuk informasi selengkapnya tentang pengaturan firewall Azure Storage, lihat Mengonfigurasi firewall dan jaringan virtual Azure Storage.
  • Saat Anda menggunakan pernyataan PolyBase atau COPY untuk memuat data ke Azure Synapse Analytics, jika penyimpanan Blob sumber atau penahapan Anda dikonfigurasi dengan titik akhir Azure Virtual Network, Anda harus menggunakan autentikasi identitas terkelola seperti yang diperlukan oleh Azure Synapse. Lihat bagian Autentikasi identitas terkelola untuk prasyarat konfigurasi lainnya.

Note

Aktivitas Azure HDInsight dan Azure Machine Learning hanya mendukung autentikasi yang menggunakan kunci akun Azure Blob Storage.

Autentikasi anonim

Properti berikut ini didukung untuk autentikasi kunci akun penyimpanan di Azure Data Factory atau alur Synapse:

Property Description Required
jenis Lihat catatan berikut: Properti type harus diatur ke AzureBlobStorage (disarankan) atau AzureStorage. Yes
containerUri Tentukan URI kontainer Azure Blob yang telah mengaktifkan akses baca Anonim dengan mengambil format https://<AccountName>.blob.core.windows.net/<ContainerName> ini dan Mengonfigurasi akses baca publik anonim untuk kontainer dan blob Yes
connectVia Runtime integrasi yang akan digunakan untuk menyambungkan ke penyimpanan data. Anda dapat menggunakan runtime integrasi Azure atau runtime integrasi yang dihost sendiri (jika penyimpanan data Anda berada di jaringan privat). Jika properti ini tidak ditentukan, layanan menggunakan runtime integrasi Azure default. No

Example:


{
    "name": "AzureBlobStorageAnonymous",
    "properties": {
        "annotations": [],
        "type": "AzureBlobStorage",
        "typeProperties": {
            "containerUri": "https:// <accountname>.blob.core.windows.net/ <containername>",
            "authenticationType": "Anonymous"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Contoh UI:

Pengalaman antarmuka pengguna adalah seperti yang dijelaskan dalam gambar berikut. Sampel ini menggunakan himpunan data terbuka Azure sebagai sumbernya. Jika Anda ingin mendapatkan himpunan data terbuka bing_covid-19_data.csv, Anda hanya perlu memilih Jenis autentikasi sebagai Anonim dan mengisi URI Kontainer dengan https://pandemicdatalake.blob.core.windows.net/public.

Cuplikan layar konfigurasi untuk UI contoh Anonim.

Autentikasi kunci akun

Properti berikut ini didukung untuk autentikasi kunci akun penyimpanan di Azure Data Factory atau alur Synapse:

Property Description Required
jenis Lihat catatan berikut: Properti type harus diatur ke AzureBlobStorage (disarankan) atau AzureStorage. Yes
connectionString Tentukan informasi yang diperlukan untuk menyambungkan ke Azure Storage untuk properti connectionString.
Anda juga dapat meletakkan kunci akun di Azure Key Vault dan mengeluarkan konfigurasi accountKey dari string koneksi. Untuk informasi selengkapnya, lihat sampel berikut ini dan artikel Menyimpan info masuk di Azure Key Vault.
Yes
connectVia Runtime integrasi yang akan digunakan untuk menyambungkan ke penyimpanan data. Anda dapat menggunakan runtime integrasi Azure atau runtime integrasi yang dihost sendiri (jika penyimpanan data Anda berada di jaringan privat). Jika properti ini tidak ditentukan, layanan menggunakan runtime integrasi Azure default. No

Note

Titik akhir layanan Blob sekunder tidak didukung saat Anda menggunakan autentikasi kunci akun. Anda bisa menggunakan jenis autentikasi lainnya.

Note

Jika Anda menggunakan layanan tertaut jenis AzureStorage, layanan tersebut masih didukung dalam bentuk saat ini. Tetapi kami menyarankan agar Anda menggunakan jenis layanan tertaut baru AzureBlobStorage ke depannya.

Example:

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {
          "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;AccountKey=<accountkey>"
        },
        "connectVia": {
          "referenceName": "<name of Integration Runtime>",
          "type": "IntegrationRuntimeReference"
        }
    }
}

Contoh: menyimpan kunci akun di Azure Key Vault

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {
            "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;",
            "accountKey": {
                "type": "AzureKeyVaultSecret",
                "store": {
                    "referenceName": "<Azure Key Vault linked service name>",
                    "type": "LinkedServiceReference"
                },
                "secretName": "<secretName>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Autentikasi tanda tangan akses bersama

Tanda tangan akses bersama menyediakan akses yang didelegasikan ke sumber daya di akun penyimpanan Anda. Anda dapat menggunakan tanda tangan akses bersama untuk memberi klien izin terbatas ke objek di akun penyimpanan Anda untuk waktu yang ditentukan.

Anda tidak perlu membagikan kunci akses akun Anda. Tanda tangan akses bersama adalah URI yang parameter kuerinya mencakup semua informasi yang diperlukan untuk akses terautentikasi ke sumber daya penyimpanan. Untuk mengakses sumber daya penyimpanan dengan tanda tangan akses bersama, klien hanya perlu meneruskan tanda tangan akses bersama ke konstruktor atau metode yang sesuai.

Untuk informasi selengkapnya tentang tanda tangan akses bersama, lihat Tanda tangan akses bersama: Memahami model tanda tangan akses bersama.

Note

Properti berikut ini didukung untuk menggunakan autentikasi tanda tangan akses bersama:

Property Description Required
jenis typeProperti harus diatur ke AzureBlobStorage (disarankan) atau AzureStorage (lihat catatan berikut). Yes
sasUri Tentukan URI tanda tangan akses bersama ke sumber daya Microsoft Azure Storage seperti blob atau kontainer.
Tandai bidang ini sebagai SecureString untuk menyimpannya dengan aman. Anda juga dapat meletakkan token SAS di Azure Key Vault untuk memanfaatkan rotasi otomatis dan menghapus bagian token. Untuk informasi selengkapnya, lihat contoh berikut ini dan artikel Menyimpan info masuk di Azure Key Vault.
Yes
connectVia Runtime integrasi yang akan digunakan untuk menyambungkan ke penyimpanan data. Anda dapat menggunakan runtime integrasi Azure atau runtime integrasi yang dihost sendiri (jika penyimpanan data Anda berada di jaringan privat). Jika properti ini tidak ditentukan, layanan menggunakan runtime integrasi Azure default. No

Note

Jika Anda menggunakan layanan tertaut jenis AzureStorage, layanan tersebut masih didukung dalam bentuk saat ini. Tetapi kami menyarankan agar Anda menggunakan jenis layanan tertaut baru AzureBlobStorage ke depannya.

Example:

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {
            "sasUri": {
                "type": "SecureString",
                "value": "<SAS URI of the Azure Storage resource e.g. https://<accountname>.blob.core.windows.net/?sv=<storage version>&st=<start time>&se=<expire time>&sr=<resource>&sp=<permissions>&sip=<ip range>&spr=<protocol>&sig=<signature>>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Contoh: menyimpan kunci akun di Azure Key Vault

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {
            "sasUri": {
                "type": "SecureString",
                "value": "<SAS URI of the Azure Storage resource without token e.g. https://<accountname>.blob.core.windows.net/>"
            },
            "sasToken": {
                "type": "AzureKeyVaultSecret",
                "store": {
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference"
                },
                "secretName": "<secretName with value of SAS token e.g. ?sv=<storage version>&st=<start time>&se=<expire time>&sr=<resource>&sp=<permissions>&sip=<ip range>&spr=<protocol>&sig=<signature>>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Saat Anda membuat URI tanda tangan akses bersama, pertimbangkan poin berikut:

  • Tetapkan izin baca/tulis yang sesuai pada objek berdasarkan cara layanan tertaut digunakan, apakah untuk membaca, menulis, atau membaca/menulis.
  • Set Waktu kedaluwarsa dengan tepat. Pastikan bahwa akses ke objek Storage tidak kedaluwarsa selama periode aktif jalur pemrosesan.
  • URI harus dibuat pada kontainer atau blob yang tepat berdasarkan kebutuhan. URI tanda tangan akses bersama ke blob memungkinkan pabrik data atau alur Synapse mengakses blob tertentu. URI tanda tangan akses bersama ke kontainer penyimpanan Blob memungkinkan pabrik data atau pipa Synapse untuk beralih melalui blob dalam kontainer itu. Untuk menyediakan akses ke lebih banyak atau lebih sedikit objek nanti, atau untuk memperbarui URI tanda tangan akses bersama, ingatlah untuk memperbarui layanan tertaut dengan URI baru.

Autentikasi prinsipal layanan

Untuk informasi umum tentang autentikasi perwakilan layanan Azure Storage, lihat Autentikasi akses ke Azure Storage menggunakan Microsoft Entra ID.

Untuk menggunakan autentikasi perwakilan layanan, ikuti langkah-langkah berikut ini:

  1. Mendaftarkan aplikasi di platform identitas Microsoft. Untuk mempelajari caranya, lihat Mulai Cepat: Mendaftarkan aplikasi dengan platform identitas Microsoft. Catat nilai berikut, yang Anda gunakan untuk menentukan layanan tertaut:

    • ID aplikasi
    • Kunci Aplikasi
    • ID Penyewa
  2. Berikan izin yang tepat untuk perwakilan layanan di Azure Blob Storage. Untuk informasi selengkapnya tentang peran, lihat Gunakan portal Microsoft Azure untuk menetapkan peran Azure untuk mengakses blob dan mengantrekan data.

    • Sebagai sumber, dalam pengendalian akses (IAM), berikan setidaknya peran Storage Blob Data Reader.
    • Sebagai sink, dalam Kontrol akses (IAM), berikan setidaknya peran Storage Blob Data Reader.

Properti ini didukung untuk layanan Azure Blob Storage yang ditautkan:

Property Description Required
jenis Properti jenis harus diatur ke AzureBlobStorage. Yes
serviceEndpoint Tentukan titik akhir layanan Azure Blob Storage dengan pola https://<accountName>.blob.core.windows.net/. Yes
accountKind Tentukan jenis akun penyimpanan Anda. Nilai yang diizinkan adalah: Storage (tujuan umum v1), StorageV2 (tujuan umum v2), BlobStorage, atau BlockBlobStorage.

Saat menggunakan layanan tertaut Azure Blob dalam aliran data, identitas terkelola atau autentikasi perwakilan layanan tidak didukung ketika jenis akun kosong atau "Storage". Tentukan jenis akun yang tepat, pilih autentikasi yang berbeda, atau tingkatkan akun penyimpanan Anda ke tujuan umum v2.
No
servicePrincipalId Menentukan ID klien aplikasi. Yes
servicePrincipalCredentialType Tipe kredensial yang digunakan untuk autentikasi prinsipal layanan. Nilai yang diizinkan adalah ServicePrincipalKey dan ServicePrincipalCert. Yes
servicePrincipalCredential Kredensial principal layanan.
Saat Anda menggunakan ServicePrincipalKey sebagai jenis informasi masuk, tentukan kunci aplikasi. Tandai bidang ini sebagai SecureString untuk menyimpannya dengan aman, atau lihat rahasia yang disimpan di Azure Key Vault.
Saat Anda menggunakan ServicePrincipalCert sebagai kredensial, rujuk sertifikat di Azure Key Vault, dan pastikan jenis konten sertifikatnya adalah PKCS #12.
Yes
penyewa Tentukan informasi penyewa (nama domain atau ID penyewa) tempat aplikasi Anda berada. Ambil kembali dengan mengarahkan kursor ke sudut kanan atas portal Microsoft Azure. Yes
azureCloudType Untuk autentikasi perwakilan layanan, tentukan jenis lingkungan cloud Azure, tempat aplikasi Microsoft Entra Anda didaftarkan.
Nilai yang diizinkan adalah AzurePublic, AzureChina, AzureUsGovernment, dan AzureGermany. Secara default, pabrik data atau lingkungan cloud alur Synapse digunakan.
No
connectVia Runtime integrasi yang akan digunakan untuk menyambungkan ke penyimpanan data. Anda dapat menggunakan runtime integrasi Azure atau runtime integrasi yang dihost sendiri (jika penyimpanan data Anda berada di jaringan privat). Jika properti ini tidak ditentukan, layanan menggunakan runtime integrasi Azure default. No

Note

  • Jika akun blob Anda mengaktifkan penghapusan sementara, autentikasi perwakilan layanan tidak didukung di Aliran Data.
  • Jika Anda mengakses penyimpanan blob melalui titik akhir privat menggunakan Aliran Data, perhatikan bahwa ketika autentikasi perwakilan layanan digunakan, Aliran Data tersambung ke titik akhir ADLS Gen2, bukan titik akhir Blob. Pastikan Anda membuat titik akhir privat yang sesuai di pabrik data atau ruang kerja Synapse untuk mengaktifkan akses.

Note

Autentikasi perwakilan layanan hanya didukung oleh jenis layanan tertaut "AzureBlobStorage", bukan layanan tertaut jenis "AzureStorage" sebelumnya.

Example:

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {            
            "serviceEndpoint": "https://<accountName>.blob.core.windows.net/",
            "accountKind": "StorageV2",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalKey": {
                "type": "SecureString",
                "value": "<service principal key>"
            },
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>" 
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Autentikasi identitas terkelola yang ditetapkan sistem

Pabrik data atau alur Synapse dapat dikaitkan dengan identitas terkelola yang ditetapkan sistem untuk sumber daya Azure, yang mewakili sumber daya tersebut untuk autentikasi ke layanan Azure lainnya. Anda dapat langsung menggunakan identitas terkelola yang ditetapkan sistem ini untuk autentikasi penyimpanan Blob, yang serupa dengan menggunakan perwakilan layanan Anda sendiri. Hal ini memungkinkan sumber daya yang ditunjuk ini untuk mengakses dan menyalin data dari atau ke penyimpanan Blob. Untuk mempelajari lebih lanjut tentang identitas terkelola untuk sumber daya Azure, lihat Identitas terkelola untuk sumber daya Azure

Untuk informasi umum tentang autentikasi Azure Storage, lihat Mengautentikasi akses ke Azure Storage menggunakan ID Microsoft Entra. Untuk menggunakan identitas terkelola untuk autentikasi sumber daya Azure, ikuti langkah-langkah ini:

  1. Ambil informasi identitas terkelola yang ditetapkan sistem dengan menyalin nilai ID objek identitas terkelola yang ditetapkan sistem yang dihasilkan bersama dengan pabrik atau ruang kerja Synapse Anda.

  2. Beri izin identitas terkelola di Azure Blob Storage. Untuk informasi selengkapnya tentang peran, lihat Gunakan portal Microsoft Azure untuk menetapkan peran Azure untuk mengakses blob dan mengantrekan data.

    • Sebagai sumber, dalam pengendalian akses (IAM), berikan setidaknya peran Storage Blob Data Reader.
    • Sebagai sink, dalam Kontrol akses (IAM), berikan setidaknya peran Storage Blob Data Reader.

Properti ini didukung untuk layanan Azure Blob Storage yang ditautkan:

Property Description Required
jenis Properti jenis harus diatur ke AzureBlobStorage. Yes
serviceEndpoint Tentukan titik akhir layanan Azure Blob Storage dengan pola https://<accountName>.blob.core.windows.net/. Yes
accountKind Tentukan jenis akun penyimpanan Anda. Nilai yang diizinkan adalah: Storage (tujuan umum v1), StorageV2 (tujuan umum v2), BlobStorage, atau BlockBlobStorage.

Saat menggunakan layanan tertaut Azure Blob dalam aliran data, identitas terkelola atau autentikasi perwakilan layanan tidak didukung ketika jenis akun kosong atau "Storage". Tentukan jenis akun yang tepat, pilih autentikasi yang berbeda, atau tingkatkan akun penyimpanan Anda ke tujuan umum v2.
No
connectVia Runtime integrasi yang akan digunakan untuk menyambungkan ke penyimpanan data. Anda dapat menggunakan runtime integrasi Azure atau runtime integrasi yang dihost sendiri (jika penyimpanan data Anda berada di jaringan privat). Jika properti ini tidak ditentukan, layanan menggunakan runtime integrasi Azure default. No

Example:

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {            
            "serviceEndpoint": "https://<accountName>.blob.core.windows.net/",
            "accountKind": "StorageV2" 
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Autentikasi identitas terkelola yang ditetapkan pengguna

Sebuah pabrik data dapat ditetapkan dengan satu atau beberapa identitas terkelola yang ditetapkan pengguna. Anda dapat menggunakan identitas terkelola yang ditetapkan pengguna ini untuk autentikasi penyimpanan Blob, yang memungkinkan untuk mengakses dan menyalin data dari atau ke penyimpanan Blob. Untuk mempelajari lebih lanjut tentang identitas terkelola untuk sumber daya Azure, lihat Identitas terkelola untuk sumber daya Azure

Untuk informasi umum tentang autentikasi penyimpanan Azure, lihat Mengautentikasi akses ke Azure Storage menggunakan ID Microsoft Entra. Untuk menggunakan autentikasi identitas terkelola yang ditetapkan pengguna, ikuti langkah-langkah berikut:

  1. Buat satu atau beberapa identitas terkelola yang ditetapkan pengguna dan berikan izin di Azure Blob Storage. Untuk informasi selengkapnya tentang peran, lihat Gunakan portal Microsoft Azure untuk menetapkan peran Azure untuk mengakses blob dan mengantrekan data.

    • Sebagai sumber, dalam pengendalian akses (IAM), berikan setidaknya peran Storage Blob Data Reader.
    • Sebagai sink, dalam Kontrol akses (IAM), berikan setidaknya peran Storage Blob Data Reader.
  2. Tetapkan satu atau beberapa identitas terkelola yang ditetapkan pengguna ke pabrik data Anda dan buat info masuk untuk setiap identitas terkelola yang ditetapkan pengguna.

Properti ini didukung untuk layanan Azure Blob Storage yang ditautkan:

Property Description Required
jenis Properti jenis harus diatur ke AzureBlobStorage. Yes
serviceEndpoint Tentukan titik akhir layanan Azure Blob Storage dengan pola https://<accountName>.blob.core.windows.net/. Yes
accountKind Tentukan jenis akun penyimpanan Anda. Nilai yang diizinkan adalah: Storage (tujuan umum v1), StorageV2 (tujuan umum v2), BlobStorage, atau BlockBlobStorage.

Saat menggunakan layanan tertaut Azure Blob dalam aliran data, autentikasi identitas terkelola atau perwakilan layanan tidak didukung jika tipe akun kosong atau "Storage". Tentukan jenis akun yang tepat, pilih autentikasi yang berbeda, atau tingkatkan akun penyimpanan Anda ke tujuan umum v2.
No
kredensial Tentukan identitas terkelola yang ditetapkan pengguna sebagai objek kredensial. Yes
connectVia Runtime integrasi yang akan digunakan untuk menyambungkan ke penyimpanan data. Anda dapat menggunakan runtime integrasi Azure atau runtime integrasi yang dihost sendiri (jika penyimpanan data Anda berada di jaringan privat). Jika properti ini tidak ditentukan, layanan menggunakan runtime integrasi Azure default. No

Example:

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {            
            "serviceEndpoint": "https://<accountName>.blob.core.windows.net/",
            "accountKind": "StorageV2",
            "credential": {
                "referenceName": "credential1",
                "type": "CredentialReference"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Important

Jika Anda menggunakan pernyataan PolyBase atau COPY untuk memuat data dari penyimpanan Blob (sebagai sumber atau sebagai penahapan) ke Azure Synapse Analytics, saat Anda menggunakan autentikasi identitas terkelola untuk penyimpanan Blob, pastikan Anda juga mengikuti langkah 1 hingga 3 dalam panduan ini. Langkah-langkah tersebut akan mendaftarkan server Anda dengan ID Microsoft Entra dan menetapkan peran Kontributor Data Blob Penyimpanan ke server Anda. Data Factory menangani sisanya. Jika Anda mengonfigurasi penyimpanan Blob dengan titik akhir Azure Virtual Network, Anda juga harus mengaktifkan Izinkan layanan Microsoft tepercaya untuk mengakses akun penyimpanan ini di menu setelan akun Azure Storage Firewalls dan Virtual networks seperti yang diperlukan oleh Azure Synapse.

Note

  • Jika akun blob Anda mengaktifkan penghapusan sementara, autentikasi identitas terkelola yang ditetapkan sistem/ditetapkan pengguna tidak didukung di Aliran Data.
  • Jika Anda mengakses penyimpanan blob melalui titik akhir privat menggunakan Aliran Data, perhatikan bahwa ketika autentikasi identitas terkelola yang ditetapkan sistem atau ditetapkan pengguna digunakan, Aliran Data akan menghubungkan ke titik akhir ADLS Gen2 dan bukan ke titik akhir Blob. Pastikan Anda membuat titik akhir privat yang sesuai di ADF untuk mengaktifkan akses.

Note

Autentikasi identitas terkelola yang ditetapkan sistem/ditetapkan pengguna hanya didukung oleh layanan tertaut jenis "AzureBlobStorage", bukan layanan tertaut jenis "AzureStorage" sebelumnya.

Properti kumpulan data

Untuk daftar lengkap bagian dan properti yang tersedia untuk menentukan himpunan data, lihat artikel Himpunan Data.

Azure Data Factory mendukung jenis format file berikut. Lihat setiap artikel untuk mengetahui cara melakukan pengaturan berbasis format.

Properti berikut didukung untuk Azure Blob Storage pada pengaturan location dalam himpunan data berbasis format:

Property Description Required
jenis Properti jenis lokasi dalam himpunan data harus disetel menjadi AzureBlobStorageLocation. Yes
container Kontainer blob. Yes
folderPath Jalur ke folder di bawah kontainer yang diberikan. Jika Anda ingin menggunakan kartubebas untuk memfilter folder, lewati pengaturan ini dan tentukan itu di pengaturan sumber aktivitas. No
fileName Nama file pada jalur kontainer dan folder yang diberikan. Jika Anda ingin menggunakan karakter pengganti untuk memfilter file, lewati pengaturan ini dan tentukan dalam pengaturan sumber aktivitas. No

Example:

{
    "name": "DelimitedTextDataset",
    "properties": {
        "type": "DelimitedText",
        "linkedServiceName": {
            "referenceName": "<Azure Blob Storage linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, auto retrieved during authoring > ],
        "typeProperties": {
            "location": {
                "type": "AzureBlobStorageLocation",
                "container": "containername",
                "folderPath": "folder/subfolder"
            },
            "columnDelimiter": ",",
            "quoteChar": "\"",
            "firstRowAsHeader": true,
            "compressionCodec": "gzip"
        }
    }
}

Properti kegiatan menyalin

Untuk daftar lengkap bagian dan properti yang tersedia untuk menentukan aktivitas, lihat artikel Pipeline. Bagian ini menyediakan daftar properti yang didukung sumber dan sink penyimpanan Blob.

Penyimpanan blob sebagai jenis sumber

Azure Data Factory mendukung jenis format file berikut. Lihat setiap artikel untuk mengetahui cara melakukan pengaturan berbasis format.

Properti berikut didukung untuk Azure Blob Storage dalam pengaturan storeSettings pada sumber salinan berbasis format:

Property Description Required
jenis Properti tipe di bawah storeSettings harus diatur ke AzureBlobStorageReadSettings. Yes
Menemukan file yang akan disalin:
OPSI 1: jalur statik
Salin dari kontainer atau jalur folder/file yang diberikan dalam himpunan data. Jika Anda ingin menyalin semua blob dari kontainer atau folder, tentukan juga wildcardFileName sebagai *.
OPSI 2: awalan blob
- awalan
Awalan untuk nama blob di bawah kontainer yang diberikan dikonfigurasikan dalam himpunan data untuk memfilter blob sumber. Blob yang namanya dimulai dengan container_in_dataset/this_prefix dipilih. Opsi ini menggunakan filter di sisi layanan untuk penyimpanan Blob, yang memberikan performa lebih baik daripada filter karakter pengganti.

Saat Anda menggunakan awalan dan memilih untuk menyalin ke sink berbasis file sambil mempertahankan hierarki, perhatikan bahwa jalur sub-folder setelah "/" terakhir dalam awalan tetap dipertahankan. Misalnya, Anda memiliki sumber container/folder/subfolder/file.txt, dan mengonfigurasi prefiks sebagai folder/sub, maka jalur file yang dipertahankan adalah subfolder/file.txt.
No
OPSI 3: kartubebas
- wildcardFolderPath
Jalur folder dengan karakter wildcard di bawah wadah tertentu yang dikonfigurasikan dalam himpunan data untuk memfilter folder sumber.
Kartubebas yang diizinkan adalah: * (cocok dengan nol atau lebih karakter) dan ? (cocok dengan karakter nol atau satu). Gunakan ^ untuk meloloskan jika nama folder Anda memiliki karakter kartu bebas atau karakter escape di dalamnya.
Lihat contoh lainnya dalam Contoh filter folder dan file.
No
OPSI 3: kartubebas
- wildcardFileName
Nama file dengan karakter pengganti di bawah jalur wadah dan folder yang diberikan (atau jalur folder pengganti) untuk memfilter file sumber.
Kartubebas yang diizinkan adalah: * (cocok dengan nol atau lebih karakter) dan ? (cocok dengan karakter nol atau satu). Gunakan ^ untuk meloloskan jika nama file Anda memiliki karakter pengganti atau karakter escape di dalamnya. Lihat contoh lainnya dalam Contoh filter folder dan file.
Yes
OPSI 4: daftar file
- fileListPath
Menunjukkan untuk menyalin kumpulan file yang diberikan. Arahkan ke file teks yang menyertakan daftar file yang ingin Anda salin, satu file per baris, yang merupakan jalur relatif ke jalur yang dikonfigurasi dalam himpunan data.
Saat Anda menggunakan opsi ini, jangan tentukan nama file dalam himpunan data. Lihat contoh lainnya dalam Contoh daftar file.
No
Pengaturan tambahan:
recursive Menunjukkan apakah data dibaca secara rekursif dari subfolder atau hanya dari folder yang ditentukan. Perhatikan bahwa ketika recursive diatur ke true dan sink adalah penyimpanan berbasis file, folder kosong atau subfolder tidak disalin atau dibuat di sink.
Nilai yang diizinkan adalah true (default) dan false.
Properti ini tidak berlaku saat Anda mengonfigurasi fileListPath.
No
deleteFilesAfterCompletion Menunjukkan apakah file biner akan dihapus dari penyimpanan sumber setelah berhasil pindah ke penyimpanan tujuan. Penghapusan file dilakukan per satuan file. Oleh karena itu, ketika aktivitas salin gagal, Anda akan melihat beberapa file telah disalin ke tujuan dan dihapus dari sumber, sementara yang lain masih tersisa di penyimpanan sumber.
Properti ini hanya valid dalam skenario penyalinan file biner. Nilai default: false.
No
modifiedDatetimeStart File difilter berdasarkan atribut: terakhir diubah.
File akan dipilih jika waktu modifikasi terakhir file tersebut besar dari atau sama dengan modifiedDatetimeStart dan kurang dari modifiedDatetimeEnd. Waktu diterapkan ke zona waktu UTC dalam format "2018-12-01T05:00:00Z".
Properti dapat menjadi NULL, yang berarti tidak ada filter atribut file yang akan diterapkan ke himpunan data. Ketika modifiedDatetimeStart memiliki nilai tanggalwaktu tetapi modifiedDatetimeEnd adalah NUL, hal ini berarti file dengan nilai atribut yang terakhir diubah memiliki nilai lebih besar dari atau sama dengan nilai tanggalwaktu yang dipilih. Ketika modifiedDatetimeEnd memiliki nilai tanggalwaktu tetapi modifiedDatetimeStartadalah NUL, file dengan nilai atributnya yang terakhir diubah lebih kecil dari nilai tanggalwaktu akan dipilih.
Properti ini tidak berlaku saat Anda mengonfigurasi fileListPath.
No
modifiedDatetimeEnd Sama seperti properti sebelumnya. No
enablePartitionDiscovery Untuk file yang dipartisi, tentukan apakah akan mengurai partisi dari jalur file dan menambahkannya sebagai kolom sumber tambahan.
Nilai yang diperbolehkan adalah false (default) dan true.
No
partitionRootPath Ketika penemuan partisi diaktifkan, tentukan jalur akar absolut untuk membaca folder yang dipartisi sebagai kolom data.

Jika tidak ditentukan, secara default,
- Ketika Anda menggunakan jalur file dalam himpunan data atau daftar file pada sumber, jalur akar partisi adalah jalur yang dikonfigurasi dalam himpunan data.
- Ketika Anda menggunakan filter folder wildcard, jalur akar partisi adalah sub-jalur sebelum wildcard pertama.
- Ketika Anda menggunakan awalan, jalur akar partisi adalah sub-path sebelum "/" terakhir.

Misalnya, dengan asumsi Anda mengonfigurasi jalur dalam himpunan data sebagai "root/folder/year=2020/month=08/day=27":
- Jika Anda menentukan jalur akar partisi sebagai "root/folder/year=2020", aktivitas salin akan menghasilkan dua kolom lagi month dan day dengan nilai masing-masing "08" dan "27", selain kolom di dalam file.
- Jika jalur akar partisi tidak ditentukan, tidak ada kolom tambahan yang akan dihasilkan.
No
maxConcurrentConnections Batas atas koneksi bersamaan yang ditetapkan ke penyimpanan data selama pelaksanaan aktivitas. Menentukan nilai hanya saat Anda ingin membatasi koneksi bersamaan. No

Note

Untuk format teks Parquet/pemisah, jenis BlobSource untuk sumber aktivitas Salin yang disebutkan di bagian berikutnya masih didukung apa adanya untuk kompatibilitas mundur. Kami menyarankan Anda menggunakan model baru hingga UI penulisan telah beralih untuk menghasilkan jenis-jenis baru ini.

Example:

"activities":[
    {
        "name": "CopyFromBlob",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Delimited text input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "DelimitedTextSource",
                "formatSettings":{
                    "type": "DelimitedTextReadSettings",
                    "skipLineCount": 10
                },
                "storeSettings":{
                    "type": "AzureBlobStorageReadSettings",
                    "recursive": true,
                    "wildcardFolderPath": "myfolder*A",
                    "wildcardFileName": "*.csv"
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Note

Kontainer $logs, yang dibuat secara otomatis saat Storage Analytics diaktifkan untuk akun penyimpanan, tidak ditampilkan saat operasi pencantuman kontainer dilakukan melalui UI. Jalur file harus diberikan secara langsung agar pabrik data Anda atau Pipeline Synapse dapat memproses berkas dari kontainer $logs.

Penyimpanan blob sebagai jenis sink

Azure Data Factory mendukung jenis format file berikut. Lihat setiap artikel untuk mengetahui cara melakukan pengaturan berbasis format.

Properti berikut didukung untuk Azure Blob Storage pada pengaturan storeSettings dalam sink salinan berbasis format:

Property Description Required
jenis Properti type di bawah storeSettings harus diatur ke AzureBlobStorageWriteSettings. Yes
copyBehavior Menentukan perilaku salin saat sumber berupa file dari penyimpanan data berbasis file.

Nilai yang diperbolehkan adalah:
- (default) PreserveHierarchy: Mempertahankan hierarki file di folder target. Jalur relatif dari file sumber ke folder sumber sama dengan jalur relatif file target ke folder target.
- FlattenHierarchy: Semua file dari folder sumber berada di tingkat pertama folder target. File target memiliki nama yang ditulis secara otomatis.
- MergeFiles: Menggabungkan semua file dari folder sumber dalam satu file. Jika nama file/blob ditentukan, nama file yang digabungkan adalah nama yang ditentukan. Jika tidak, nama tersebut adalah nama file yang ditulis secara otomatis.
No
blockSizeInMB Tentukan ukuran blok, dalam megabyte, yang digunakan untuk menulis data ke blok blob. Pelajari lebih lanjut tentang Block Blobs.
Nilai yang diizinkan adalah antara 4 MB dan 100 MB.
Secara default, layanan secara otomatis menentukan ukuran blok berdasarkan jenis dan data penyimpanan sumber Anda. Untuk penyalinan nonbiner ke penyimpanan Blob, ukuran blok bawaan adalah 100 MB sehingga bisa menampung data (paling banyak) 4.95 TB. Mungkin ini tidak optimal ketika data Anda tidak besar, terutama saat Anda menggunakan runtime integrasi yang di-host sendiri dengan koneksi jaringan yang buruk, yang dapat menyebabkan batas waktu operasi atau masalah kinerja. Anda dapat secara eksplisit menentukan ukuran blok, sambil memastikan bahwa blockSizeInMB*50000 itu cukup besar untuk menyimpan data. Jika tidak, aktivitas Salin yang dijalankan akan gagal.
No
maxConcurrentConnections Batas atas koneksi bersamaan yang ditetapkan ke penyimpanan data selama pelaksanaan aktivitas. Menentukan nilai hanya saat Anda ingin membatasi koneksi bersamaan. No
metadata Set metadata khusus saat menyalin ke sink. Setiap objek di bawah metadataarray mewakili kolom tambahan. name mendefinisikan nama kunci metadata, dan value menunjukkan nilai data dari kunci tersebut. Jika fitur pertahankan atribut digunakan, metadata yang ditentukan akan digabungkan/ditimpa dengan metadata file sumber.

Nilai data yang diperbolehkan adalah:
- $$LASTMODIFIED: variabel yang dicadangkan menunjukkan untuk menyimpan waktu modifikasi terakhir file sumber. Terapkan pada sumber berbasis file dengan format biner saja.
- Ekspresi
- Nilai statis
No

Example:

"activities":[
    {
        "name": "CopyFromBlob",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Parquet output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "ParquetSink",
                "storeSettings":{
                    "type": "AzureBlobStorageWriteSettings",
                    "copyBehavior": "PreserveHierarchy",
                    "metadata": [
                        {
                            "name": "testKey1",
                            "value": "value1"
                        },
                        {
                            "name": "testKey2",
                            "value": "value2"
                        },
                        {
                            "name": "lastModifiedKey",
                            "value": "$$LASTMODIFIED"
                        }
                    ]
                }
            }
        }
    }
]

Contoh filter folder dan file

Bagian ini menjelaskan perilaku jalur folder dan nama file yang dihasilkan dengan filter wildcard.

folderPath fileName recursive Struktur folder sumber dan hasil filter (file dalam huruf tebal diambil)
container/Folder* (kosong, gunakan default) false container
    FolderA
         File1.csv
         File2.json
        Subfolder1
            File3.csv
            File4.json
            File5.csv
    AnotherFolderB
        File6.csv
container/Folder* (kosong, gunakan default) true container
    FolderA
         File1.csv
         File2.json
        Subfolder1
             File3.csv
             File4.json
             File5.csv
    AnotherFolderB
        File6.csv
container/Folder* *.csv false container
    FolderA
         File1.csv
        File2.json
        Subfolder1
            File3.csv
            File4.json
            File5.csv
    AnotherFolderB
        File6.csv
container/Folder* *.csv true container
    FolderA
         File1.csv
        File2.json
        Subfolder1
             File3.csv
            File4.json
             File5.csv
    AnotherFolderB
        File6.csv

Contoh daftar file

Bagian ini menjelaskan perilaku yang dihasilkan dari penggunaan jalur daftar file di sumber aktivitas Salin.

Asumsikan bahwa Anda memiliki struktur folder sumber berikut dan ingin menyalin file dengan huruf tebal:

Struktur sumber sampel Konten dalam FileListToCopy.txt Configuration
container
    FolderA
         File1.csv
        File2.json
        Subfolder1
             File3.csv
            File4.json
             File5.csv
    Metadata
        FileListToCopy.txt
File1.csv
Subfolder1/File3.csv
Subfolder1/File5.csv
Dalam himpunan data:
- Kontainer: container
- Jalur folder: FolderA

Di sumber aktivitas Salin:
- Jalur daftar file: container/Metadata/FileListToCopy.txt

Jalur daftar file menunjuk ke file teks di penyimpanan data yang sama yang menyertakan daftar file yang ingin Anda salin. Ini mencakup satu file per baris, dengan jalur relatif terhadap jalur yang dikonfigurasi di dalam dataset.

Beberapa contoh rekursif dan perilaku penyalinan

Bagian ini menjelaskan perilaku yang dihasilkan dari operasi Salin untuk kombinasi yang berbeda dari nilai rekursif dan copyBehavior.

recursive copyBehavior Struktur folder sumber Target yang dihasilkan
true preserveHierarchy Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
Folder target, Folder1 dibuat dengan struktur yang sama dengan sumbernya:

Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
true flattenHierarchy Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
Folder target, Folder1, dibuat dengan struktur berikut:

Folder1
    nama yang ditulis secara otomatis untuk File1
    nama yang ditulis secara otomatis untuk File2
    nama yang ditulis secara otomatis untuk File3
    nama yang ditulis secara otomatis untuk File4
    nama yang ditulis secara otomatis untuk File5
true mergeFiles Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
Folder target, Folder1, dibuat dengan struktur berikut:

Folder1
    konten File1 + File2 + File3 + File4 + File5 digabungkan ke dalam satu file, dengan nama file yang ditulis secara otomatis.
false preserveHierarchy Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
Folder target, Folder1, dibuat dengan struktur berikut:

Folder1
    File1
    File2

Subfolder1 dengan File3, File4, dan File5 tidak terdeteksi.
false flattenHierarchy Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
Folder target, Folder1, dibuat dengan struktur berikut:

Folder1
    nama yang ditulis secara otomatis untuk File1
    nama yang ditulis secara otomatis untuk File2

Subfolder1 dengan File3, File4, dan File5 tidak terdeteksi.
false mergeFiles Folder1
    File1
    File2
    Subfolder1
        File3
        File4
        File5
Folder target, Folder1 dibuat dengan struktur berikut:

Folder1
    konten File1 + File2 digabungkan ke dalam satu file, dengan nama file yang ditulis secara otomatis. nama yang ditulis secara otomatis untuk File1

Subfolder1 dengan File3, File4, dan File5 tidak terdeteksi.

Mempertahankan metadata selama penyalinan

Saat Menyalin file dari Amazon S3, Azure Blob Storage, atau Azure Data Lake Storage Gen2 ke Azure Data Lake Storage Gen2 atau penyimpanan Azure Blob, Anda dapat memilih untuk mempertahankan metadata file bersama dengan data. Pelajari lebih lanjut dari Mempertahankan metadata.

Properti pemetaan aliran data

Saat Anda mengubah data di aliran data yang dipetakan, Anda bisa membaca dan menulis file dari Azure Blob Storage dalam format berikut:

Pengaturan format-spesifik terletak di dokumentasi untuk format tersebut. Untuk informasi selengkapnya, lihat Transformasi sumber dalam pemetaan aliran data dan Transformasi sink dalam pemetaan aliran data.

Transformasi sumber

Dalam transformasi sumber, Anda dapat membaca dari kontainer, folder, atau file individu di Azure Blob Storage. Gunakan tab Opsi sumber untuk mengelola cara membaca file.

Cuplikan layar tab opsi sumber dalam pemetaan transformasi sumber aliran data.

Jalur wildcard: Menggunakan pola karakter pengganti akan menginstruksikan layanan untuk mengulang setiap folder dan file yang cocok dalam satu transformasi sumber. Cara ini efektif untuk memproses beberapa file dalam satu aliran. Tambahkan beberapa pola pencocokan kartu bebas menggunakan tanda plus yang muncul saat Anda mengarahkan kursor ke pola kartu bebas yang ada.

Dari kontainer sumber Anda, pilih serangkaian file yang cocok dengan satu pola. Hanya kontainer yang dapat ditentukan dalam himpunan data. Oleh karena itu, jalur wildcard Anda juga harus menyertakan jalur folder Anda dari folder akar.

Contoh karakter pengganti

  • * Menggambarkan sembarang set karakter.

  • ** Memperlihatkan sarang direktori rekursif.

  • ? Menggantikan satu karakter.

  • [] Mencocokkan satu atau beberapa karakter dalam tanda kurung.

  • /data/sales/**/*.csv Mendapatkan semua file .csv di dalam /data/penjualan.

  • /data/sales/20??/**/ Mendapatkan semua file di abad ke-20.

  • /data/sales/*/*/*.csv Mengambil file .csv dua tingkat di bawah /data/sales.

  • /data/sales/2004/*/12/[XY]1?.csv Mendapatkan semua file .csv di Desember 2004 yang diawali dengan angka dua digit diikuti dengan X atau Y.

Jalur akar partisi: Jika Anda telah mempartisi folder di sumber file dengan format key=value (misalnya, year=2019), Anda dapat menetapkan tingkat teratas pohon folder partisi tersebut ke nama kolom dalam aliran untuk aliran data Anda.

Pertama, atur wildcard untuk menyertakan semua jalur yang merupakan folder yang dipartisi ditambah file akhir yang ingin Anda baca.

Cuplikan layar pengaturan file sumber partisi dalam memetakan transformasi sumber aliran data.

Gunakan pengaturan Jalur akar partisi untuk menentukan tingkat atas struktur folder. Saat Anda melihat konten data melalui pratinjau data, Anda akan melihat bahwa layanan menambahkan partisi yang diuraikan di setiap tingkat folder Anda.

Jalur akar partisi

Daftar berkas: Ini adalah kumpulan berkas. Buat file teks yang menyertakan daftar file jalur relatif untuk diproses. Arahkan ke file teks ini.

Kolom untuk menyimpan nama file: Simpan nama file sumber dalam kolom di data Anda. Masukkan nama kolom baru di sini untuk menyimpan untai (karakter) nama file.

Setelah selesai: Pilih untuk tidak melakukan apa pun pada file sumber setelah aliran data berjalan, menghapus file sumber, atau memindahkan file sumber. Jalur untuk perpindahan bersifat relatif.

Untuk memindahkan file sumber ke lokasi lain pasca-pemrosesan, pertama-tama pilih "Pindahkan" untuk operasi file. Kemudian, atur direktori "from". Jika Anda tidak menggunakan wildcard untuk path Anda, maka pengaturan "from" akan menjadi folder yang sama dengan folder sumber Anda.

Jika Anda memiliki jalur sumber dengan karakter pengganti, sintaks Anda adalah sebagai berikut:

/data/sales/20??/**/*.csv

Anda dapat menentukan "dari" sebagai:

/data/sales

Dan Anda dapat menentukan "ke" sebagai:

/backup/priorSales

Dalam hal ini, semua file yang bersumber di bawah /data/sales dipindahkan ke /backup/priorSales.

Note

Operasi file hanya berjalan ketika Anda memulai aliran data dari pengoperasian pipeline (debug pipeline atau eksekusi pipeline) yang menggunakan aktivitas Eksekusi Aliran Data dalam pipeline. Operasi file tidak berjalan dalam mode debug Aliran Data.

Filter menurut terakhir diubah: Anda dapat memfilter file yang akan diproses dengan menentukan rentang tanggal kapan file terakhir diubah. Semua tanggalwaktu dalam format UTC.

Aktifkan ubah pengambilan data: Jika benar, Anda akan mendapatkan file baru atau yang diubah hanya dari eksekusi terakhir. Beban awal data snapshot penuh akan selalu didapat pada operasi pertama, diikuti dengan mengambil file baru atau yang diubah hanya dalam operasi berikutnya.

Cuplikan layar yang menunjukkan Aktifkan ubah pengambilan data.

Properti sink

Dalam transformasi sink, Anda bisa menulis ke kontainer atau folder di Azure Blob Storage. Gunakan tab Pengaturan untuk mengelola cara menulis file.

Opsi sink

Bersihkan folder: Menentukan apakah folder tujuan akan dihapus atau tidak sebelum data ditulis.

Opsi nama file: Menentukan bagaimana file tujuan dinamai dalam folder tujuan. Opsi nama file adalah:

  • Default: Izinkan Spark untuk memberi nama file berdasarkan default PART.
  • Pola: Masukkan pola yang menghitung file output Anda per partisi. Misalnya, loans[n].csv membuat loans1.csv, loans2.csv, dan sebagainya.
  • Per partisi: Masukkan satu nama file per partisi.
  • Sebagai data dalam kolom: Atur file output menjadi nilai kolom. Jalur bersifat relatif terhadap kontainer himpunan data, bukan pada folder tujuan. Jika Anda memiliki jalur folder di himpunan data Anda, jalur tersebut akan ditimpa.
  • Output ke file tunggal: Gabungkan file output yang dipartisi ke dalam file dengan nama tunggal. Jalur bersifat relatif terhadap folder himpunan data. Operasi penggabungan mungkin dapat gagal berdasarkan ukuran simpul. Kami tidak merekomendasikan opsi ini untuk himpunan data besar.

Kuotasi semua: Tentukan apakah Anda akan mengapit semua nilai dalam tanda kutip.

Properti aktivitas pencarian

Untuk mempelajari detail tentang properti, lihat Aktivitas pencarian.

Properti aktivitas GetMetadata

Untuk mempelajari detail tentang properti ini, lihat aktivitas GetMetadata.

Hapus properti aktivitas

Untuk mempelajari detail tentang properti ini, lihat Aktivitas penghapusan.

Model lama

Note

Model berikut ini masih didukung sebagaimana adanya untuk kompatibilitas mundur. Kami menyarankan agar Anda menggunakan model baru yang disebutkan sebelumnya. Antarmuka pengguna penulisan telah beralih fokus dalam menghasilkan model baru.

Model himpunan data terdahulu

Property Description Required
jenis Properti type himpunan data harus diatur ke AzureBlob. Yes
folderPath Jalur ke kontainer dan folder di penyimpanan Blob.

Filter wildcard bisa digunakan untuk jalur, kecuali nama kontainernya. Kartubebas yang diizinkan adalah: * (cocok dengan nol atau lebih karakter) dan ? (cocok dengan karakter nol atau satu). Gunakan ^ untuk melarikan diri jika nama folder Anda memiliki wildcard atau karakter melarikan diri di dalamnya.

Contohnya adalah: myblobcontainer/myblobfolder/. Lihat contoh lainnya dalam Contoh filter folder dan file.
Ya untuk aktivitas Salin atau Pencarian, Tidak untuk aktivitas GetMetadata
fileName Filter nama atau pola wildcard untuk blob di bawah nilai yang ditentukan folderPath. Jika Anda tidak menentukan nilai untuk properti ini, himpunan data akan menunjuk ke semua blob dalam folder.

Untuk filter, kartubebas yang diperbolehkan adalah * (cocok dengan nol atau lebih karakter) dan ? (cocok dengan nol atau satu karakter).
- Contoh 1: "fileName": "*.csv"
- Contoh 2: "fileName": "???20180427.txt"
Gunakan ^ untuk meloloskan jika nama file Anda memiliki karakter pengganti atau karakter escape di dalamnya.

Ketika fileName tidak ditentukan untuk himpunan data output danpreserveHierarchy tidak ditentukan dalam sink aktivitas, aktivitas Salin secara otomatis menghasilkan nama blob dengan pola berikut: "Data.[activity run ID GUID].[GUID if FlattenHierarchy].[format if configured].[compression if configured]". Contohnya: "Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt.gz".

Jika Anda menyalin dari sumber tabular dengan menggunakan nama tabel dan bukan kueri, pola nama adalah [table name].[format].[compression if configured]. Contohnya: "MyTable.csv".
No
modifiedDatetimeStart File difilter berdasarkan atribut: terakhir diubah. File akan dipilih jika waktu modifikasi terakhir file tersebut lebih besar dari atau sama dengan modifiedDatetimeStart dan kurang dari modifiedDatetimeEnd. Waktu diterapkan ke zona waktu UTC dalam format “2018-12-01T05:00:00Z”.

Ketahuilah bahwa mengaktifkan pengaturan ini memengaruhi performa keseluruhan pergerakan data saat Anda ingin memfilter file dalam jumlah besar.

Properti dapat menjadi NULL, yang berarti tidak ada filter atribut file yang akan diterapkan ke himpunan data. Ketika modifiedDatetimeStart memiliki nilai tanggalwaktu tetapi modifiedDatetimeEnd adalah NULL, file dengan nilai atribut yang terakhir diubah memiliki nilai lebih besar dari atau sama dengan nilai tanggalwaktu yang akan dipilih. Ketika modifiedDatetimeEnd memiliki nilai tanggalwaktu tetapi modifiedDatetimeStartadalah NULL, file yang atribut modifikasi terakhirnya kurang dari nilai tanggalwaktu akan dipilih.
No
modifiedDatetimeEnd File difilter berdasarkan atribut: terakhir diubah. File akan dipilih jika waktu modifikasi terakhir file tersebut lebih besar dari atau sama dengan modifiedDatetimeStart dan kurang dari modifiedDatetimeEnd. Waktu diterapkan ke zona waktu UTC dalam format “2018-12-01T05:00:00Z”.

Ketahuilah bahwa mengaktifkan pengaturan ini memengaruhi performa keseluruhan pergerakan data saat Anda ingin memfilter file dalam jumlah besar.

Properti dapat menjadi NULL, yang berarti tidak ada filter atribut file yang akan diterapkan ke himpunan data. Ketika modifiedDatetimeStart memiliki nilai tanggalwaktu tetapi modifiedDatetimeEnd adalah NULL, file dengan nilai atribut yang terakhir diubah memiliki nilai lebih besar dari atau sama dengan nilai tanggalwaktu yang akan dipilih. Ketika modifiedDatetimeEnd memiliki nilai tanggalwaktu tetapi modifiedDatetimeStartadalah NULL, file yang atribut modifikasi terakhirnya kurang dari nilai tanggalwaktu akan dipilih.
No
format Jika Anda ingin menyalin file sebagaimana adanya antara penyimpanan berbasis file (salinan biner), lewati bagian format di definisi data input dan output.

Jika Anda ingin memilah atau membuat file dengan format tertentu, jenis format file berikut didukung: TextFormat, JsonFormat, AvroFormat, OrcFormat, dan ParquetFormat. Atur properti jenis berdasarkan format ke salah satu nilai ini. Untuk informasi selengkapnya, lihat bagian format Teks, Format JSON, format Avro, format Orc, dan format Parquet.
Tidak (hanya untuk skenario salinan biner)
pemadatan Tentukan jenis dan tingkat kompresi untuk data. Untuk informasi selengkapnya, lihat Format file yang didukung dan kodek pemadatan.
Jenis yang didukung adalah GZip, Deflate, BZip2, dan ZipDeflate.
Level yang didukung adalah: Optimal dan Tercepat.
No

Tip

Untuk menyalin semua blob di sebuah folder, tentukan folderPath saja.
Untuk menyalin satu blob dengan nama tertentu, tentukan folderPath untuk bagian folder dan fileName untuk nama file.
Untuk menyalin subset blob di sebuah folder, tentukan folderPath untuk bagian folder dan fileName dengan filter karakter pengganti.

Example:

{
    "name": "AzureBlobDataset",
    "properties": {
        "type": "AzureBlob",
        "linkedServiceName": {
            "referenceName": "<Azure Blob Storage linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "folderPath": "mycontainer/myfolder",
            "fileName": "*",
            "modifiedDatetimeStart": "2018-12-01T05:00:00Z",
            "modifiedDatetimeEnd": "2018-12-01T06:00:00Z",
            "format": {
                "type": "TextFormat",
                "columnDelimiter": ",",
                "rowDelimiter": "\n"
            },
            "compression": {
                "type": "GZip",
                "level": "Optimal"
            }
        }
    }
}

Model sumber lama untuk tugas Salin

Property Description Required
jenis Properti type dari sumber aktivitas salin harus diatur ke BlobSource. Yes
recursive Menunjukkan apakah data dibaca secara rekursif dari subfolder atau hanya dari folder yang ditentukan. Ketika recursive diatur ke true dan sink adalah penyimpanan berbasis file, folder atau subfolder kosong tidak disalin atau dibuat di sink.
Nilai yang diperbolehkan adalah true (default) dan false.
No
maxConcurrentConnections Batas atas koneksi bersamaan yang ditetapkan ke penyimpanan data selama pelaksanaan aktivitas. Menentukan nilai hanya saat Anda ingin membatasi koneksi bersamaan. No

Example:

"activities":[
    {
        "name": "CopyFromBlob",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Azure Blob input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "BlobSource",
                "recursive": true
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Model tujuan lama untuk aktivitas Salin

Property Description Required
jenis typeProperti sink aktivitas Salin harus diatur ke BlobSink. Yes
copyBehavior Menentukan perilaku salin saat sumber berupa file dari penyimpanan data berbasis file.

Nilai yang diperbolehkan adalah:
- (default) PreserveHierarchy: Mempertahankan hierarki file di folder target. Jalur relatif file sumber ke folder sumber identik dengan jalur relatif file target ke folder target.
- FlattenHierarchy: Semua file dari folder sumber berada di tingkat pertama folder target. File target memiliki nama yang ditulis secara otomatis.
- MergeFiles: Menggabungkan semua file dari folder sumber dalam satu file. Jika nama file/blob ditentukan, nama file yang digabungkan adalah nama yang ditentukan. Jika tidak, nama tersebut adalah nama file yang ditulis secara otomatis.
No
maxConcurrentConnections Batas atas koneksi bersamaan yang ditetapkan ke penyimpanan data selama pelaksanaan aktivitas. Menentukan nilai hanya saat Anda ingin membatasi koneksi bersamaan. No

Example:

"activities":[
    {
        "name": "CopyToBlob",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Azure Blob output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "BlobSink",
                "copyBehavior": "PreserveHierarchy"
            }
        }
    }
]

Mengubah pengambilan data

Azure Data Factory bisa mendapatkan file baru atau yang diubah hanya dari Azure Blob Storage dengan mengaktifkan **Aktifkan penangkapan data perubahan** dalam transformasi sumber aliran data pemetaan. Dengan opsi konektor ini, Anda hanya dapat membaca file baru atau yang diperbarui dan menerapkan transformasi sebelum memuat data yang diubah ke dalam himpunan data tujuan pilihan Anda. Lihat Change Data Capture untuk detailnya.

Untuk daftar penyimpanan data yang didukung aktivitas Salin sebagai sumber dan sink, lihat Penyimpanan data yang didukung.