Menyalin data dari Google Cloud Storage menggunakan Azure Data Factory atau 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 menyalin data dari Google Cloud Storage (GCS). Untuk mempelajari selengkapnya, baca artikel pengantar untuk Azure Data Factory dan Synapse Analytics.
Kemampuan yang didukung
Konektor Google Cloud Storage ini didukung untuk kemampuan berikut ini:
Kemampuan yang didukung | IR |
---|---|
Aktivitas penyalinan (sumber/-) | (1) (2) |
Alur data pemetaan (sumber/-) | (1) |
Aktivitas pencarian | (1) (2) |
Aktivitas GetMetadata | (1) (2) |
Aktivitas penghapusan | (1) (2) |
ā Runtime integrasi Azure ā” Runtime integrasi yang dihost sendiri
Secara khusus, konektor Google Cloud Storage ini mendukung penyalinan file apa adanya atau penguraian file dengan format file dan kodek kompresi yang didukung. Ia memanfaatkan interoperabilitas yang kompatibel dengan S3 dari GCS.
Prasyarat
Penyiapan berikut diperlukan di akun Google Cloud Storage Anda:
- Mengaktifkan interoperabilitas untuk akun Google Cloud Storage Anda
- Tetapkan proyek default yang berisi data yang ingin Anda salin dari wadah GCS target.
- Buat akun layanan dan tentukan tingkat izin yang tepat dengan menggunakan Cloud IAM di GCP.
- Buat kunci akses untuk akun layanan ini.
Izin yang diperlukan
Untuk menyalin data dari Google Cloud Storage, pastikan Anda telah diberi izin berikut untuk operasi objek: storage.objects.get
dan storage.objects.list
.
Jika Anda menggunakan antarmuka pengguna untuk pembuat, storage.buckets.list
izin tambahan diperlukan untuk operasi seperti pengujian koneksi ke layanan tertaut dan penjelajahan dari akar. Jika Anda tidak ingin memberikan izin ini, Anda dapat memilih opsi "Uji koneksi ke jalur file" atau "Telusuri dari jalur tertentu" dari antarmuka pengguna.
Untuk daftar lengkap peran Google Cloud Storage dan izin terkait, lihat Peran IAM untuk Cloud Storage di situs Google Cloud.
Memulai
Untuk melakukan aktivitas Salin dengan alur, Anda dapat menggunakan salah satu alat atau SDK berikut:
- Alat Penyalinan Data
- Portal Microsoft Azure
- SDK .NET
- SDK Python
- Azure PowerShell
- REST API
- Templat Azure Resource Manager
Memuat layanan tertaut ke Google Cloud Storage menggunakan Antarmuka Pengguna
Gunakan langkah-langkah berikut untuk membuat layanan tertaut ke Google Cloud Storage di antarmuka pengguna portal Microsoft Azure.
Telusuri ke tab Kelola di ruang kerja Azure Data Factory atau Synapse Anda dan pilih Layanan Tertaut, lalu klik Baru:
Cari Google dan pilih konektor Google Cloud Storage (S3 API).
Konfigurasikan detail layanan, uji koneksi, dan buat layanan tertaut baru.
Detail konfigurasi konektor
Bagian berikut ini menyediakan detail tentang properti yang digunakan untuk menentukan entitas Data Factory khusus untuk Google Cloud Storage.
Properti layanan tertaut
Properti berikut didukung untuk layanan tertaut Google Cloud Storage:
Properti | Deskripsi | Wajib |
---|---|---|
jenis | Properti jenis harus diatur ke GoogleCloudStorage. | Ya |
accessKeyId | ID dari kunci akses rahasia. Untuk menemukan kunci akses dan rahasia, lihat Prasyarat. | Ya |
secretAccessKey | Kunci akses rahasia itu sendiri. Tandai bidang ini sebagai SecureString untuk menyimpannya dengan aman, atau lihat rahasia yang disimpan di Azure Key Vault. | Ya |
serviceUrl | Tentukan titik akhir GCS kustom sebagai https://storage.googleapis.com . |
Ya |
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 |
Berikut contohnya:
{
"name": "GoogleCloudStorageLinkedService",
"properties": {
"type": "GoogleCloudStorage",
"typeProperties": {
"accessKeyId": "<access key id>",
"secretAccessKey": {
"type": "SecureString",
"value": "<secret access key>"
},
"serviceUrl": "https://storage.googleapis.com"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Properti himpunan data
Azure Data Factory mendukung jenis format file berikut. Lihat setiap artikel untuk mengetahui cara melakukan pengaturan berbasis format.
- Format Avro
- Format Biner
- Format teks terpisah
- Format Excel
- Format JSON
- Format ORC
- Format Parquet
- Format XML
Properti berikut didukung untuk Google Cloud Storage di bawah setelan location
dalam himpunan data berbasis format:
Properti | Deskripsi | Wajib |
---|---|---|
jenis | Properti jenis di bawah location dalam himpunan data harus diatur ke GoogleCloudStorageLocation. |
Ya |
bucketName | Nama wadah GCS. | Ya |
folderPath | Jalur ke folder di bawah wadah yang diberikan. Jika Anda ingin menggunakan kartubebas untuk memfilter folder, lewati pengaturan ini dan tentukan itu di pengaturan sumber aktivitas. | No |
fileName | Nama file di bawah jalur wadah dan folder yang diberikan. Jika Anda ingin menggunakan kartubebas untuk memfilter file, lewati pengaturan ini dan tentukan itu di pengaturan sumber aktivitas. | No |
Contoh:
{
"name": "DelimitedTextDataset",
"properties": {
"type": "DelimitedText",
"linkedServiceName": {
"referenceName": "<Google Cloud Storage linked service name>",
"type": "LinkedServiceReference"
},
"schema": [ < physical schema, optional, auto retrieved during authoring > ],
"typeProperties": {
"location": {
"type": "GoogleCloudStorageLocation",
"bucketName": "bucketname",
"folderPath": "folder/subfolder"
},
"columnDelimiter": ",",
"quoteChar": "\"",
"firstRowAsHeader": true,
"compressionCodec": "gzip"
}
}
}
Properti aktivitas salin
Untuk daftar lengkap bagian dan properti yang tersedia untuk menentukan aktivitas, lihat artikel Alur. Bagian ini menyediakan daftar properti yang didukung sumber Google Cloud Storage.
Google Cloud Storage sebagai jenis sumber
Azure Data Factory mendukung jenis format file berikut. Lihat setiap artikel untuk mengetahui cara melakukan pengaturan berbasis format.
- Format Avro
- Format Biner
- Format teks terpisah
- Format Excel
- Format JSON
- Format ORC
- Format Parquet
- Format XML
Properti berikut didukung untuk Google Cloud Storage di bawah pengaturan storeSettings
dalam himpunan data berbasis format:
Properti | Deskripsi | Wajib |
---|---|---|
jenis | Properti jenis di bawah storeSettings harus diatur ke GoogleCloudStorageReadSettings. |
Ya |
Menemukan file yang akan disalin: | ||
OPSI 1: jalur statik |
Menyalin dari wadah atau jalur folder/file yang diberikan dan ditentukan dalam himpunan data. Jika Anda ingin menyalin semua file dari satu wadah atau folder, tentukan juga wildcardFileName sebagai * . |
|
OPSI 2: awalan GCS - awalan |
Awalan untuk nama kunci GCS di bawah wadah yang diberikan dikonfigurasi dalam himpunan data untuk memfilter file GCS sumber. Kunci GCS yang namanya dimulai dengan bucket_in_dataset/this_prefix dipilih. Opsi ini menggunakan filter sisi layanan GCS, yang memberikan performa yang lebih baik daripada filter kartubebas. |
No |
OPSI 3: kartubebas - wildcardFolderPath |
Jalur folder dengan karakter kartubebas di bawah wadah yang diberikan dikonfigurasi 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 karakter escape jika nama folder Anda memiliki karakter kartubebas atau karakter escape di dalamnya. Lihat contoh lainnya dalam Contoh filter folder dan file. |
No |
OPSI 3: kartubebas - wildcardFileName |
Nama file dengan kartubebas di bawah jalur wadah dan folder yang diberikan (atau jalur folder kartubebas) untuk memfilter file sumber. Kartubebas yang diizinkan adalah: * (cocok dengan nol atau lebih karakter) dan ? (cocok dengan karakter nol atau satu). Gunakan ^ untuk karakter escape jika nama file Anda memiliki karakter kartubebas atau karakter escape di dalamnya. Lihat contoh lainnya dalam Contoh filter folder dan file. |
Ya |
OPSI 3: daftar file - fileListPath |
Mengindikasikan untuk menyalin set 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 di 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 file, jadi ketika aktivitas salin gagal, Anda akan melihat beberapa file telah disalin ke tujuan dan dihapus dari sumbernya, sementara file yang lain masih berada 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 lebih 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 modifiedDatetimeStart adalah 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 dengan atas. | No |
enablePartitionDiscovery | Untuk file yang dipartisi, tentukan apakah Anda akan memilah 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 kartubebas, jalur akar partisi adalah sub-jalur sebelum kartubebas pertama. 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 eksekusi aktivitas. Menentukan nilai hanya saat Anda ingin membatasi koneksi bersamaan. | No |
Contoh:
"activities":[
{
"name": "CopyFromGoogleCloudStorage",
"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": "GoogleCloudStorageReadSettings",
"recursive": true,
"wildcardFolderPath": "myfolder*A",
"wildcardFileName": "*.csv"
}
},
"sink": {
"type": "<sink type>"
}
}
}
]
Contoh filter folder dan file
Bagian ini menjelaskan perilaku yang dihasilkan dari jalur folder dan nama file dengan filter kartubebas.
wadah | kunci | recursive | Struktur folder sumber dan hasil filter (file dalam huruf tebal akan diambil) |
---|---|---|---|
wadah | Folder*/* |
salah | wadah FolderA File1.csv File2.json Subfolder1 File3.csv File4.json File5.csv AnotherFolderB File6.csv |
wadah | Folder*/* |
benar | wadah FolderA File1.csv File2.json Subfolder1 File3.csv File4.json File5.csv AnotherFolderB File6.csv |
wadah | Folder*/*.csv |
salah | wadah FolderA File1.csv File2.json Subfolder1 File3.csv File4.json File5.csv AnotherFolderB File6.csv |
wadah | Folder*/*.csv |
benar | wadah 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 | Konfigurasi |
---|---|---|
wadah 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: - Wadah: bucket - Jalur folder: FolderA Di sumber aktivitas salin: - Jalur daftar file: bucket/Metadata/FileListToCopy.txt Jalur daftar file menunjuk ke file teks di penyimpanan data yang sama yang menyertakan daftar file yang ingin Anda salin, satu file per baris dengan jalur relatif ke jalur yang dikonfigurasi dalam himpunan data. |
Properti pemetaan aliran data
Saat mengubah data dalam pemetaan aliran data, Anda dapat membaca file dari Google Cloud Storage dalam format berikut:
Pengaturan format-spesifik terletak di dokumentasi untuk format tersebut. Untuk informasi selengkapnya, lihat Transformasi sumber dalam pemetaan aliran data.
Transformasi sumber
Dalam transformasi sumber, Anda dapat membaca dari kontainer, folder, atau file individual di Google Cloud Storage. Gunakan tab Opsi sumber untuk mengelola cara membaca file.
Jalur kartubebas: Menggunakan pola karakter pengganti akan menginstruksikan layanan untuk mengulang setiap folder dan file yang cocok dalam transformasi sumber tunggal. Cara ini efektif untuk memproses beberapa file dalam satu aliran. Tambahkan beberapa pola pencocokan kartubebas dengan tanda plus yang muncul saat Anda mengarahkan kursor ke pola kartubebas 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 kartubebas Anda juga harus menyertakan jalur folder Anda dari folder akar.
Contoh kartubebas:
*
Mewakili set karakter.**
Mewakili nesting direktori rekursif.?
Menggantikan satu karakter.[]
Mencocokkan satu atau beberapa karakter dalam tanda kurung./data/sales/**/*.csv
Mendapatkan semua file .csv di bawah /data/penjualan./data/sales/20??/**/
Mendapatkan semua file di abad ke-20./data/sales/*/*/*.csv
Mendapatkan file .csv dua tingkat di bawah /data/penjualan./data/sales/2004/*/12/[XY]1?.csv
Mendapatkan semua file .csv pada Desember tahun 2004 dimulai dengan X atau Y di awali dengan angka dua digit.
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 kartubebas untuk menyertakan semua jalur yang merupakan folder yang dipartisi ditambah file daun yang ingin Anda baca.
Gunakan pengaturan Jalur akar partisi untuk menentukan tingkat atas struktur folder. Saat Anda menampilkan konten data Anda melalui pratinjau data, Anda akan melihat bahwa layanan akan menambahkan partisi yang telah diselesaikan yang ditemukan di setiap tingkat folder Anda.
Daftar berkas: Daftar ini adalah set file. 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 "dari". Jika Anda tidak menggunakan kartubebas untuk jalur Anda, pengaturan "dari" akan menjadi folder yang sama dengan folder sumber Anda.
Jika Anda memiliki jalur sumber dengan kartubebas, sintaks Anda akan terlihat seperti di bawah ini:
/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
.
Catatan
Operasi file hanya berjalan ketika Anda memulai aliran data dari eksekusi alur (debug alur atau eksekusi alur) yang menggunakan aktivitas Jalankan Aliran Data dalam alur. Operasi file tidak berjalan dalam mode debug Aliran Data.
Filter berdasarkan terakhir diubah: Anda dapat memfilter file mana yang Anda proses dengan menentukan rentang tanggal file terakhir diubah. Semua tanggalwaktu dalam format UTC.
Properti aktivitas pencarian
Untuk mempelajari detail tentang properti, lihat Aktivitas pencarian.
Properti aktivitas GetMetadata
Untuk mempelajari detail tentang properti ini, lihat aktivitas GetMetadata.
Properti aktivitas penghapusan
Untuk mempelajari detail tentang properti ini, lihat Aktivitas penghapusan.
Model warisan
Jika Anda menggunakan konektor Amazon S3 untuk menyalin data dari Google Cloud Storage, konektor ini masih didukung untuk kompatibilitas mundur. Kami menyarankan agar Anda menggunakan model baru yang disebutkan sebelumnya. Antarmuka pengguna penulisan telah beralih untuk menghasilkan model baru.
Konten terkait
Untuk daftar penyimpanan data yang didukung aktivitas Salin sebagai sumber dan sink, lihat Penyimpanan data yang didukung.