Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Petunjuk
Data Factory di Microsoft Fabric adalah generasi Azure Data Factory berikutnya, dengan arsitektur yang lebih sederhana, AI bawaan, dan fitur baru. Jika Anda baru menggunakan integrasi data, mulailah dengan Fabric Data Factory. Beban kerja ADF yang ada dapat ditingkatkan ke Fabric untuk mengakses kemampuan baru di seluruh ilmu data, analitik real time, dan pelaporan.
Artikel ini menguraikan cara menyalin data dari server FTP. Untuk mempelajari selengkapnya, baca artikel pengantar untuk Azure Data Factory dan Synapse Analytics.
Kemampuan yang didukung
Konektor FTP ini didukung untuk aktivitas berikut:
| Kemampuan yang didukung | IR |
|---|---|
| Aktivitas menyalin (sumber/-) | (1) (2) |
| Aktivitas pencarian | (1) (2) |
| Aktivitas GetMetadata | (1) (2) |
| Hapus aktivitas | (1) (2) |
(1) Azure runtime integrasi (2) Runtime integrasi yang dihost sendiri
Secara khusus, konektor FTP ini mendukung:
- Menyalin file menggunakan autentikasi Dasar atau Anonim.
- Menyalin file apa adanya atau memilah file dengan format file yang didukung dan codec pemadatan.
Konektor FTP mendukung server FTP yang berjalan dalam mode pasif. Mode aktif tidak didukung.
Prasyarat
Jika penyimpanan data Anda terletak di dalam jaringan lokal, jaringan virtual Azure, atau Amazon Virtual Private Cloud, Anda perlu mengonfigurasi runtime integrasi yang dihosting sendiri self-hosted integration runtime untuk menyambungkannya.
Jika penyimpanan data Anda adalah layanan data cloud terkelola, Anda dapat menggunakan Azure Integration Runtime. Jika akses dibatasi untuk IP yang disetujui dalam aturan firewall, Anda dapat menambahkan IP Azure Integration Runtime ke daftar izinkan.
Anda juga dapat menggunakan fitur managed virtual network integration runtime di Azure Data Factory untuk mengakses jaringan di lokasi tanpa menginstal dan mengonfigurasi runtime integrasi yang dihosting sendiri.
Untuk informasi selengkapnya tentang mekanisme dan opsi keamanan jaringan yang didukung oleh Data Factory, lihat Strategi akses data.
Mulai
Untuk melakukan aktivitas salin dengan alur, Anda dapat menggunakan salah satu alat atau SDK berikut:
- Alat Salin Data
- Portal Azure
- .NET SDK
- Python SDK
- Azure PowerShell
- REST API
- templat Azure Resource Manager
Membuat layanan tertaut ke server FTP menggunakan UI
Gunakan langkah-langkah berikut untuk membuat layanan tertaut ke server FTP di UI portal Azure.
Telusuri ke tab Kelola di ruang kerja Azure Data Factory atau Synapse Anda dan pilih Layanan Tertaut, lalu klik Baru:
Cari FTP dan pilih konektor FTP.
Konfigurasikan detail layanan, uji koneksi, dan buat layanan tertaut baru.
Detail konfigurasi konektor
Bagian berikut memberikan detail tentang properti yang digunakan untuk menentukan entitas khusus untuk FTP.
Properti layanan tertaut
Properti berikut ini didukung untuk layanan terhubung FTP:
| Properti | Deskripsi | Wajib |
|---|---|---|
| jenis | Jenis properti harus diatur ke: FtpServer. | Ya |
| host | Menentukan nama atau alamat IP server FTP. | Ya |
| port | Menentukan port tempat server FTP mendengarkan. Nilai yang diperbolehkan adalah: bilangan bulat, nilai default adalah 21. |
Tidak |
| aktifkanSsl | Menentukan apakah akan menggunakan FTP melalui saluran SSL/TLS. Nilai yang diizinkan adalah: benar (default), salah. |
Tidak |
| aktifkanValidasiSertifikatServer | Menentukan apakah akan mengaktifkan validasi sertifikat TLS/SSL server saat menggunakan FTP melalui saluran SSL/TLS. Nilai yang diizinkan adalah: benar (default), salah. |
Tidak |
| jenis autentikasi | Tentukan jenis autentikasi. Nilai yang diperbolehkan adalah: Dasar, Anonim |
Ya |
| userName | Menentukan pengguna yang memiliki akses ke server FTP. | Tidak |
| kata sandi | Menentukan kata sandi untuk pengguna (userName). Tandai bidang ini sebagai SecureString untuk menyimpannya dengan aman, atau referensi rahasia yang disimpan di Azure Key Vault. | Tidak |
| connectVia | Integration Runtime yang akan digunakan untuk menyambungkan ke penyimpanan data. Pelajari selengkapnya dari bagian Prasyarat. Jika tidak ditentukan, ia menggunakan Azure Integration Runtime default. | Tidak |
Catatan
Konektor FTP mendukung akses server FTP tanpa enkripsi atau enkripsi SSL/TLS eksplisit; tidak mendukung enkripsi SSL/TLS implisit.
Contoh 1: menggunakan autentikasi Anonim
{
"name": "FTPLinkedService",
"properties": {
"type": "FtpServer",
"typeProperties": {
"host": "<ftp server>",
"port": 21,
"enableSsl": true,
"enableServerCertificateValidation": true,
"authenticationType": "Anonymous"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Contoh 2: Menggunakan autentikasi Dasar
{
"name": "FTPLinkedService",
"properties": {
"type": "FtpServer",
"typeProperties": {
"host": "<ftp server>",
"port": 21,
"enableSsl": true,
"enableServerCertificateValidation": true,
"authenticationType": "Basic",
"userName": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Properti himpunan data
Untuk daftar lengkap bagian dan properti yang tersedia untuk menentukan himpunan data, lihat artikel Himpunan Data.
Azure Data Factory mendukung format file berikut. Lihat setiap artikel untuk mengetahui cara melakukan pengaturan berbasis format.
- Format Avro
- Format Biner
- Format teks dibatasi
- format Excel
- Format JSON
- Format ORC
- Format Parquet
- Format XML
Properti berikut ini didukung untuk FTP di bawah pengaturan location dalam himpunan data berbasis format:
| Properti | Deskripsi | Wajib |
|---|---|---|
| jenis | Jenis properti di bawah location dalam himpunan data harus diatur ke FtpServerLocation. |
Ya |
| folderPath | Jalur ke folder. Jika Anda ingin menggunakan wildcard untuk memfilter folder, lewati pengaturan ini dan tentukan dalam pengaturan sumber aktivitas. | Tidak |
| fileName | Nama file di folderPath yang diberikan. Jika Anda ingin menggunakan wildcard untuk memfilter file, lewati pengaturan ini dan tentukan dalam pengaturan sumber aktivitas. | Tidak |
Contoh:
{
"name": "DelimitedTextDataset",
"properties": {
"type": "DelimitedText",
"linkedServiceName": {
"referenceName": "<FTP linked service name>",
"type": "LinkedServiceReference"
},
"schema": [ < physical schema, optional, auto retrieved during authoring > ],
"typeProperties": {
"location": {
"type": "FtpServerLocation",
"folderPath": "root/folder/subfolder"
},
"columnDelimiter": ",",
"quoteChar": "\"",
"firstRowAsHeader": true,
"compressionCodec": "gzip"
}
}
}
Properti Aktivitas Salin
Untuk daftar lengkap bagian dan properti yang tersedia untuk menentukan aktivitas, lihat artikel Pipeline. Bagian ini menyediakan daftar properti yang didukung oleh sumber data FTP.
FTP sebagai sumber
Azure Data Factory mendukung format file berikut. Lihat setiap artikel untuk mengetahui cara melakukan pengaturan berbasis format.
- Format Avro
- Format Biner
- Format teks dibatasi
- format Excel
- Format JSON
- Format ORC
- Format Parquet
- Format XML
Properti berikut ini didukung untuk FTP di bawah pengaturan storeSettings dalam sumber salinan berbasis format:
| Properti | Deskripsi | Wajib |
|---|---|---|
| jenis | Jenis properti di bawah storeSettings harus diatur ke FtpReadSettings. |
Ya |
| Menemukan file yang akan disalin: | ||
| OPSI 1: jalur statik |
Salin dari jalur folder/file yang ditentukan dalam set data. Jika Anda ingin menyalin semua file dari folder, tentukan juga wildcardFileName sebagai *. |
|
| OPSI 2: kartubebas - wildcardFolderPath |
Jalur folder dengan karakter wild card untuk menyaring folder sumber. Karakter wildcard yang diizinkan adalah: * (mencocokkan nol karakter atau lebih) dan ? (mencocokkan nol atau satu karakter); gunakan ^ untuk melarikan diri jika nama folder Anda yang sebenarnya memiliki karakter wildcard atau karakter pelarian di dalamnya. Lihat contoh lainnya dalam Contoh filter folder dan file. |
Tidak |
| OPSI 2: kartubebas - wildcardFileName |
Nama file dengan karakter wildcard di bawah folderPath/wildcardFolderPath yang diberikan untuk memfilter file sumber. Karakter wildcard yang diizinkan adalah: * (mencocokkan nol karakter atau lebih) dan ? (mencocokkan nol atau satu karakter); gunakan ^ untuk meloloskan jika nama file Anda sebenarnya mengandung karakter wildcard atau karakter pelolos ini. Lihat contoh lainnya dalam Contoh filter folder dan file. |
Ya |
| OPSI 3: daftar file - fileListPath |
Menunjukkan untuk menyalin satu 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 menggunakan opsi ini, jangan menyebutkan nama file dalam himpunan data. Lihat contoh lainnya dalam Contoh daftar file. |
Tidak |
| Pengaturan tambahan: | ||
| rekursif | Menunjukkan apakah data dibaca secara rekursif dari subfolder atau hanya dari folder yang ditentukan. Perhatikan bahwa ketika rekursif disetel ke true dan tujuan adalah penyimpanan berbasis file, folder kosong atau subfolder tidak akan disalin atau dibuat di tujuan. Nilai yang diizinkan adalah true (default) dan false. Properti ini tidak berlaku saat Anda mengonfigurasi fileListPath. |
Tidak |
| hapusFileSetelahSelesai | 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. |
Tidak |
| useBinaryTransfer | Menentukan apakah akan menggunakan mode transfer biner. Nilainya adalah true untuk mode biner (default), dan false untuk ASCII. | Tidak |
| aktifkanPenemuanPartisi | 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. |
Tidak |
| 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 karakter pengganti, jalur akar partisi adalah sub-jalur sebelum karakter pengganti 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. |
Tidak |
| maxConcurrentConnections | Batas atas koneksi bersamaan yang ditetapkan ke penyimpanan data selama pelaksanaan aktivitas. Menentukan nilai hanya saat Anda ingin membatasi koneksi bersamaan. | Tidak |
| nonaktifkan segmentasi | Saat menyalin data dari FTP, layanan mencoba mendapatkan panjang file terlebih dahulu, kemudian membagi file menjadi beberapa bagian dan membacanya secara paralel. Tentukan apakah server FTP Anda mendukung mendapatkan panjang file atau ingin membaca dari offset tertentu. Nilai yang diizinkan adalah: false (default), true. |
Tidak |
Contoh:
"activities":[
{
"name": "CopyFromFTP",
"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": "FtpReadSettings",
"recursive": true,
"wildcardFolderPath": "myfolder*A",
"wildcardFileName": "*.csv",
"disableChunking": false
}
},
"sink": {
"type": "<sink type>"
}
}
}
]
Contoh filter folder dan file
Bagian ini menjelaskan perilaku yang dihasilkan dari jalur folder dan nama file dengan filter wildcard.
| folderPath | fileName | rekursif | Struktur folder sumber dan hasil filter (file yang dicetak tebal diambil) |
|---|---|---|---|
Folder* |
(kosong, gunakan default) | salah | FolderA File1.csv File2.json Subfolder1 File3.csv File4.json File5.csv AnotherFolderB File6.csv |
Folder* |
(kosong, gunakan default) | benar | FolderA File1.csv File2.json Subfolder1 File3.csv File4.json File5.csv AnotherFolderB File6.csv |
Folder* |
*.csv |
salah | FolderA File1.csv File2.json Subfolder1 File3.csv File4.json File5.csv AnotherFolderB File6.csv |
Folder* |
*.csv |
benar | 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.
Dengan asumsi Anda memiliki struktur folder sumber berikut dan ingin menyalin file dengan bold:
| Struktur sumber sampel | Konten dalam FileListToCopy.txt | Konfigurasi |
|---|---|---|
| akar 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: - Jalur folder: root/FolderADi sumber aktivitas salin: - Jalur daftar file: root/Metadata/FileListToCopy.txt Jalur daftar file mengarah 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 aktivitas pencarian
Untuk mempelajari detail tentang properti, lihat Aktivitas pencarian.
Properti aktivitas GetMetadata
Untuk mempelajari rincian tentang properti ini, periksa Aktivitas GetMetadata
Hapus properti aktivitas
Untuk mempelajari rincian tentang properti ini, periksa Aktivitas penghapusan
Model lama
Catatan
Model-model berikut ini masih didukung seperti saat ini untuk kompatibilitas ke belakang. Anda disarankan untuk selanjutnya menggunakan model baru yang disebutkan di bagian sebelumnya, dan antarmuka pengguna penulisan telah beralih menghasilkan model baru.
Model himpunan data lama
| Properti | Deskripsi | Wajib |
|---|---|---|
| jenis | Properti jenis himpunan data harus diatur menjadi: FileShare | Ya |
| folderPath | Jalur ke folder. Filter wildcard yang didukung adalah: * (mencocokkan satu atau lebih karakter) dan ? (cocok dengan nol atau satu karakter); gunakan ^ untuk escape jika nama folder Anda yang sebenarnya memiliki karakter wildcard atau karakter escape di dalamnya. Contoh: rootfolder/subfolder/, lihat contoh lainnya dalam Contoh filter folder dan file. |
Ya |
| fileName |
Filter nama atau wildcard untuk file dalam "folderPath" yang telah ditentukan. Jika Anda tidak menentukan nilai untuk properti ini, himpunan data akan menunjuk ke semua file dalam folder. Kartubebas yang diperbolehkan untuk filter adalah * (cocok dengan nol karakter atau lebih) dan ? (cocok dengan nol atau satu karakter).- Contoh 1: "fileName": "*.csv"- Contoh 2: "fileName": "???20180427.txt"Gunakan ^ untuk escape jika nama file Anda yang sebenarnya memiliki kartubebas atau karakter escape ini di dalamnya. |
Tidak |
| format | Jika Anda ingin menyalin file apa adanya antara penyimpanan berbasis file (salinan biner), lewati bagian format dalam himpunan data input dan output. Jika Anda ingin memilah 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. Tingkat yang didukung adalah: Optimal dan Tercepat. |
Tidak |
| useBinaryTransfer | Menentukan apakah akan menggunakan mode transfer biner. Nilainya adalah true untuk mode biner (default), dan false untuk ASCII. | Tidak |
Petunjuk
Untuk menyalin semua file di sebuah folder, tentukan folderPath saja.
Untuk menyalin satu file dengan nama tertentu, tentukan folderPath dengan bagian folder dan fileName dengan nama file.
Untuk menyalin subset file di dalam sebuah folder, tentukan folderPath dengan bagian jalur folder dan fileName dengan filter karakter pengganti.
Catatan
Jika Anda menggunakan properti "fileFilter" untuk filter file, properti masih didukung apa adanya, sementara Anda disarankan untuk menggunakan kemampuan filter baru yang ditambahkan ke "fileName" untuk selanjutnya.
Contoh:
{
"name": "FTPDataset",
"properties": {
"type": "FileShare",
"linkedServiceName":{
"referenceName": "<FTP linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"folderPath": "folder/subfolder/",
"fileName": "myfile.csv.gz",
"format": {
"type": "TextFormat",
"columnDelimiter": ",",
"rowDelimiter": "\n"
},
"compression": {
"type": "GZip",
"level": "Optimal"
}
}
}
}
Model sumber aktivitas salin lama
| Properti | Deskripsi | Wajib |
|---|---|---|
| jenis | Properti jenis sumber aktivitas salin harus diatur ke: FileSystemSource | Ya |
| rekursif | Menunjukkan apakah data dibaca secara rekursif dari sub folder atau hanya dari folder yang ditentukan. Perhatikan bahwa ketika rekursif diatur ke true dan sink adalah penyimpanan berbasis file, folder kosong/sub folder tidak akan disalin/dibuat di sink. Nilai yang diperbolehkan adalah: true (default) dan false |
Tidak |
| maxConcurrentConnections | Batas atas koneksi bersamaan yang ditetapkan ke penyimpanan data selama pelaksanaan aktivitas. Menentukan nilai hanya saat Anda ingin membatasi koneksi bersamaan. | Tidak |
Contoh:
"activities":[
{
"name": "CopyFromFTP",
"type": "Copy",
"inputs": [
{
"referenceName": "<FTP input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "FileSystemSource",
"recursive": true
},
"sink": {
"type": "<sink type>"
}
}
}
]
Konten terkait
Untuk daftar penyimpanan data yang didukung sebagai sumber dan tujuan oleh aktivitas salin, lihat penyimpanan data yang didukung.