Format teks terbatas di Azure Data Factory dan 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!
Ikuti artikel ini saat Anda ingin memilah file teks berbatas atau menulis data ke dalam format teks berbatas.
Format teks yang dibatasi didukung untuk konektor berikut:
- Amazon S3
- Penyimpanan yang Kompatibel dengan Amazon S3
- Azure Blob
- Azure Data Lake Storage Gen1
- Azure Data Lake Storage Gen2
- Azure Files
- Sistem File
- FTP
- Penyimpanan Cloud Google
- HDFS
- HTTP
- Penyimpanan Cloud Oracle
- SFTP
Properti himpunan data
Untuk daftar lengkap bagian dan properti yang tersedia untuk menentukan himpunan data, lihat artikel Himpunan Data. Bagian ini menyediakan daftar properti yang didukung oleh himpunan data teks berbatas.
Properti | Deskripsi | Wajib |
---|---|---|
jenis | Properti tipe himpunan data harus diatur ke DelimitedText. | Ya |
lokasi | Pengaturan lokasi file. Tiap konektor berbasis file memiliki jenis lokasinya sendiri dan properti yang didukung di location . |
Ya |
columnDelimiter | Karakter yang digunakan untuk memisahkan kolom dalam sebuah file. Nilai defaultnya adalah koma , . Saat pemisah kolom didefinisikan sebagai string kosong, yang berarti tidak ada pembatas, seluruh baris diambil sebagai kolom tunggal.Saat ini, pembatas kolom sebagai string kosong hanya didukung untuk memetakan aliran data tetapi tidak untuk aktivitas Salin. |
No |
rowDelimiter | Untuk aktivitas Salin, karakter tunggal atau "\r\n" digunakan untuk memisahkan baris dalam file. Nilai defaultnya adalah salah satu dari nilai berikut saat dibaca: ["\r\n", "\r", "\n"]; saat menulis: "\r\n". "\r\n" hanya didukung dalam perintah salin. Untuk pemetaan aliran data, satu atau dua karakter digunakan untuk memisahkan baris dalam file. Nilai default adalah salah satu dari nilai berikut saat dibaca: ["\r\n", "\r", "\n"]; saat menulis: "\n". Ketika pemisah baris diatur ke tidak ada pembatas (untai kosong), pemisah kolom juga harus diatur sebagai tidak ada pembatas (untai kosong), yang berarti memperlakukan seluruh konten sebagai nilai tunggal. Saat ini, pemisah baris sebagai string kosong hanya didukung untuk pemetaan aliran data tetapi bukan aktivitas Salin. |
No |
quoteChar | Karakter tunggal untuk mengutip nilai kolom jika berisi pemisah kolom. Nilai defaultnya adalah tanda kutip ganda " . Ketika quoteChar didefinisikan sebagai untai kosong, itu berarti tidak ada karakter kutipan dan nilai kolom tidak dikutip, dan escapeChar digunakan untuk keluar dari pemisahn kolom dan dirinya sendiri. |
No |
escapeChar | Karakter tunggal untuk keluar dari tanda kutip di dalam nilai yang dikutip. Nilai default adalah garis miring terbalik \ . Ketika escapeChar didefinisikan sebagai untai kosong, quoteChar juga harus diatur sebagai untai kosong, dalam hal ini pastikan semua nilai kolom tidak berisi pemisah. |
No |
firstRowAsHeader | Menentukan apakah akan memperlakukan/menjadikan baris pertama sebagai baris header dengan nama kolom. Nilai yang diperbolehkan adalah true dan false (default). Ketika baris pertama sebagai header adalah false, catatan pratinjau data UI dan output aktivitas pencarian otomatis menghasilkan nama kolom sebagai Prop_{n} (mulai dari 0), aktivitas salin memerlukan pemetaan eksplisit dari sumber ke sink dan menemukan kolom menurut ordinal (mulai dari 1), dan pemetaan daftar aliran data, dan menemukan kolom dengan nama sebagai Column_{n} (mulai dari 1). |
No |
nullValue | Menentukan representasi untai nilai null. Nilai defaultnya adalah untai kosong. |
No |
encodingName | Jenis pengodean yang digunakan untuk membaca/menulis file uji. Nilai yang diizinkan adalah sebagai berikut: "UTF-8", "UTF-8 tanpa BOM", "UTF-16", "UTF-16BE", "UTF-32", "UTF-32BE", "US-ASCII", "UTF-7", "BIG5", "EUC-JP", "EUC-KR", "GB2312", "GB18030", "JOHAB", "SHIFT-JIS", "CP875", "CP866", "IBM00858 ", "IBM037", "IBM273", "IBM437", "IBM500", "IBM737", "IBM775", "IBM850", "IBM852", "IBM855", "IBM857", "IBM860", "IBM861", "IBM863", "IBM864", "IBM865", "IBM869", "IBM870", "IBM01140", "IBM01141", "IBM01142", "IBM01143", "IBM01144", "IBM01145", "IBM01146", "IBM01147 ", "IBM01148", "IBM01149", "ISO-2022-JP", "ISO-2022-KR", "ISO-8859-1", "ISO-8859-2", "ISO-8859-3", "ISO-8859-4", "ISO-8859-5", "ISO-8859-6", "ISO-8859-7", "ISO-8859-8", "ISO-8859-9", "ISO -8859-13", "ISO-8859-15", "WINDOWS-874", "WINDOWS-1250", "WINDOWS-1251", "WINDOWS-1252", "WINDOWS-1253", "WINDOWS-1254", "WINDOWS-1255", "WINDOWS-1256", "WINDOWS-1257", "WINDOWS-1258". Perhatikan bahwa pemetaan aliran data tidak mendukung pengodean UTF-7. Aliran data pemetaan catatan tidak mendukung pengodean UTF-8 dengan Byte Order Mark (BOM). |
No |
compressionCodec | Codec pemadatan yang digunakan untuk membaca/menulis file teks. Nilai yang diizinkan adalah bzip2, gzip, deflate, ZipDeflate, TarGzip, Tar, snappy, atau lz4. Defaultnya tidak dipadatkan. Catatan aktivitas Salin saat ini tidak mendukung "snappy" & "lz4", dan pemetaan aliran data tidak mendukung "ZipDeflate", "TarGzip", dan "Tar". Catatan ketika menggunakan aktivitas penyalinan untuk mendekompresi file ZipDeflate/TarGzip/Tar dan menulis ke penyimpanan data sink berbasis file, secara default file diekstraksi ke folder: <path specified in dataset>/<folder named as source compressed file>/ , gunakan sumber preserveZipFileNameAsFolder / preserveCompressionFileNameAsFolder aktivitas penyalinan untuk mengontrol apakah akan mempertahankan nama file yang dipadatkan sebagai struktur folder. |
No |
kompresiLevel | Rasio pemadatan. Nilai yang diizinkan adalah Optimal atau Tercepat. - Tercepat: Operasi kompresi akan selesai secepat mungkin, meski file hasil tidak dikompresi secara optimal. - Optimal: Operasi pemadatan akan dipadatkan secara optimal, bahkan jika operasi membutuhkan waktu lebih lama untuk menyelesaikannya. Untuk informasi selengkapnya, lihat topik Tingkat Pemadatan. |
No |
Di bawah ini adalah contoh himpunan data teks berbatas di Azure Blob Storage:
{
"name": "DelimitedTextDataset",
"properties": {
"type": "DelimitedText",
"linkedServiceName": {
"referenceName": "<Azure Blob Storage linked service name>",
"type": "LinkedServiceReference"
},
"schema": [ < physical schema, optional, retrievable during authoring > ],
"typeProperties": {
"location": {
"type": "AzureBlobStorageLocation",
"container": "containername",
"folderPath": "folder/subfolder",
},
"columnDelimiter": ",",
"quoteChar": "\"",
"escapeChar": "\"",
"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 oleh sumber dan sink teks berbatas.
Teks berbatas sebagai sumber
Properti berikut didukung di bagian *sumber* aktivitas salin.
Properti | Deskripsi | Wajib |
---|---|---|
jenis | Properti jenis sumber aktivitas salin harus diatur ke DelimitedTextSource. | Ya |
formatSettings | Grup properti. Lihat tabel Pengaturan pembacaan teks berbatas di bawah ini. | No |
storeSettings | Grup berbagai properti tentang cara membaca data dari penyimpanan data. Setiap konektor berbasis file memiliki pengaturan baca yang didukung sendiri di bagian storeSettings . |
No |
Pengaturan pembacaan teks berbatas yang didukung pada formatSettings
:
Properti | Deskripsi | Wajib |
---|---|---|
jenis | Jenis formatSettings harus diatur ke DelimitedTextReadSettings. | Ya |
skipLineCount | Menunjukkan jumlah baris yang tidak kosong untuk dilewati saat membaca data dari file input. Jika skipLineCount dan firstRowAsHeader ditentukan, baris tersebut akan dilewati terlebih dahulu dan kemudian informasi header dibaca dari file input. |
No |
compressionProperties | Grup properti tentang cara mendekompresi data untuk codec pemadatan yang ditentukan. | No |
preserveZipFileNameAsFolder (di bawah compressionProperties ->type sebagai ZipDeflateReadSettings ) |
Berlaku saat input himpunan data dikonfigurasi dengan pemadatan ZipDeflate. Menunjukkan apakah akan mempertahankan nama file zip sumber sebagai struktur folder selama salin. - Bila disetel ke true (default), layanan akan menulis file yang tidak di-zip ke <path specified in dataset>/<folder named as source zip file>/ .- Bila disetel ke false, layanan menulis file yang tidak di-zip langsung ke <path specified in dataset> . Pastikan Anda tidak memiliki nama file duplikat dalam file zip sumber yang berbeda untuk menghindari persaingan atau perilaku tak terduga. |
No |
preserveCompressionFileNameAsFolder (di bawah compressionProperties ->type sebagai TarGZipReadSettings atau TarReadSettings ) |
Berlaku ketika himpunan data input dikonfigurasi dengan pemadatan TarGzip/Tar. Menunjukkan apakah akan mempertahankan nama file sumber yang dipadatkan sebagai struktur folder selama salin. - Bila disetel ke true (default), layanan akan menulis file yang didekompresi ke <path specified in dataset>/<folder named as source compressed file>/ . - Bila disetel ke false, layanan menulis file yang didekompresi langsung ke <path specified in dataset> . Pastikan Anda tidak memiliki nama file duplikat di file sumber yang berbeda untuk menghindari persaingan atau perilaku yang tidak terduga. |
No |
"activities": [
{
"name": "CopyFromDelimitedText",
"type": "Copy",
"typeProperties": {
"source": {
"type": "DelimitedTextSource",
"storeSettings": {
"type": "AzureBlobStorageReadSettings",
"recursive": true
},
"formatSettings": {
"type": "DelimitedTextReadSettings",
"skipLineCount": 3,
"compressionProperties": {
"type": "ZipDeflateReadSettings",
"preserveZipFileNameAsFolder": false
}
}
},
...
}
...
}
]
Teks berbatas sebagai sink
Properti berikut ini didukung di bagian sink aktivitas salin.
Properti | Deskripsi | Wajib |
---|---|---|
jenis | Properti jenis sumber aktivitas penyalinan harus diatur ke DelimitedTextSink. | Ya |
formatSettings | Grup properti. Lihat tabel Pengaturan penulisan teks berbatas di bawah ini. | No |
storeSettings | Grup properti tentang cara menulis data ke penyimpanan data. Setiap konektor berbasis file memiliki pengaturan tulis tersendiri yang didukung pada storeSettings . |
No |
Pengaturan penulisan teks berbatas yang didukung pada formatSettings
:
Properti | Deskripsi | Wajib |
---|---|---|
jenis | Jenis formatSettings harus diatur ke DelimitedTextWriteSettings. | Ya |
fileExtension | Ekstensi file yang digunakan untuk memberi nama file output, misalnya, .csv , .txt . Ini harus ditentukan ketika fileName tidak ditentukan dalam himpunan data DelimitedText output. Ketika nama file dikonfigurasi dalam himpunan data output, itu akan digunakan sebagai nama file sink dan pengaturan ekstensi file akan diabaikan. |
Ya, ketika nama file tidak ditentukan dalam himpunan data output |
maxRowsPerFile | Saat menulis data ke dalam folder, Anda dapat memilih untuk menulis ke beberapa file dan menentukan baris maksimal per file. | No |
fileNamePrefix | Berlaku ketika maxRowsPerFile dikonfigurasi.Menentukan awalan nama file saat menulis data ke beberapa file, menghasilkan pola ini: <fileNamePrefix>_00000.<fileExtension> . Jika tidak ditentukan, awalan nama file akan dibuat secara otomatis. Properti ini tidak berlaku ketika sumber adalah penyimpanan berbasis file atau penyimpanan data dengan dukungan opsi partisi. |
No |
Properti pemetaan aliran data
Dalam memetakan aliran data, Anda dapat membaca dan menulis ke format teks yang dibatasi di penyimpanan data berikut: Azure Blob Storage, Azure Data Lake Storage Gen1 serta Azure Data Lake Storage Gen2 dan SFTP. Anda dapat membaca format teks yang dibatasi di Amazon S3.
Himpunan data sebaris
Aliran data pemetaan mendukung "himpunan data sebaris" sebagai opsi untuk menentukan sumber dan sink Anda. Himpunan data berbatas sebaris didefinisikan langsung di dalam transformasi sumber dan sink Anda dan tidak dibagikan di luar aliran data yang ditentukan. Ini berguna untuk membuat parameter properti himpunan data langsung di dalam aliran data Anda dan dapat memperoleh manfaat dari peningkatan performa dari himpunan data ADF bersama.
Saat membaca folder dan file sumber dalam jumlah besar, Anda dapat meningkatkan performa penemuan file aliran data dengan mengatur opsi "Skema yang diproyeksikan pengguna" di dalam Proyeksi | Dialog opsi skema. Opsi ini menonaktifkan penemuan otomatis skema default ADF dan akan sangat meningkatkan performa penemuan file. Sebelum mengatur opsi ini, pastikan untuk mengimpor proyeksi sehingga ADF memiliki skema yang ada untuk proyeksi. Opsi ini tidak berfungsi dengan penyimpangan skema.
Properti sumber
Tabel di bawah ini mencantumkan properti yang didukung oleh sumber teks berbatas. Anda bisa mengedit properti ini di tab opsi Sumber.
Nama | Deskripsi | Wajib diisi | Nilai yang diizinkan | Properti skrip aliran data |
---|---|---|---|---|
Jalur wild card | Semua file yang cocok dengan jalur kartubebas akan diproses. Mengambil alih jalur folder dan file yang diatur dalam himpunan data. | no | Tali[] | wildcardPaths |
Jalur akar partisi | Untuk data file yang dipartisi, Anda dapat memasukkan jalur akar partisi untuk membaca folder yang dipartisi sebagai kolom | no | String | partitionRootPath |
Daftar file | Apakah sumber Anda mengarah ke file teks yang mencantumkan file untuk diproses | no | true atau false |
fileList |
Baris multibaris | Apakah file sumber berisi baris yang mencakup beberapa baris. Nilai multibaris harus dalam tanda kutip. | tidak true atau false |
multiLineRow | |
Kolom untuk menyimpan nama file | Membuat kolom baru dengan jalur dan nama file sumber | no | String | rowUrlColumn |
Setelah selesai | Hapus atau pindahkan file setelah diproses. Jalur file dimulai dari akar kontainer | no | Hapus: true atau false Pindah: ['<from>', '<to>'] |
purgeFiles moveFiles |
Filter menurut terakhir diubah | Pilih untuk memfilter file berdasarkan waktu terakhir file tersebut diubah | no | Tanda Waktu | modifiedAfter modifiedBefore |
Izinkan file tidak ditemukan | Jika true, kesalahan tidak akan ditampilkan jika tidak ditemukan file | no | true atau false |
ignoreNoFilesFound |
Kolom maksimum | Nilai defaultnya adalah 20480. Kustomisasi nilai ini saat nomor kolom lebih dari 20480 | no | Bilangan bulat | maxColumns |
Catatan
Dukungan sumber aliran data untuk daftar file dibatasi hingga 1024 entri dalam file Anda. Untuk memasukkan lebih banyak file, gunakan kartubebas dalam daftar file Anda.
Contoh sumber
Gambar di bawah ini adalah contoh konfigurasi sumber teks berbatas dalam pemetaan aliran data.
Skrip aliran data terkait adalah:
source(
allowSchemaDrift: true,
validateSchema: false,
ignoreNoFilesFound: false,
multiLineRow: true,
wildcardPaths:['*.csv']) ~> CSVSource
Catatan
Sumber aliran data mendukung serangkaian globbing Linux terbatas yang didukung oleh sistem file Hadoop
Properti sink
Tabel di bawah ini mencantumkan properti yang didukung oleh sink teks berbatas. Anda dapat mengedit properti ini di tab Pengaturan.
Nama | Deskripsi | Wajib diisi | Nilai yang diizinkan | Properti skrip aliran data |
---|---|---|---|---|
Menghapus folder | Jika folder tujuan dibersihkan sebelum menulis | no | true atau false |
Memotong |
Opsi nama file | Format penamaan data yang ditulis. Secara default, satu file per partisi dalam format part-#####-tid-<guid> |
no | Pola: String Per partisi: String[] Nama file sebagai data kolom: String Output ke satu file: ['<fileName>'] Nama folder sebagai data kolom: Untai |
filePattern partitionFileNames rowUrlColumn partitionFileNames rowFolderUrlColumn |
Kutip semua | Menyertakan semua nilai dalam kuotasi | no | true atau false |
quoteAll |
Header | Menambahkan header pelanggan ke file output | no | [<string array>] |
{i>header |
Contoh sink
Gambar di bawah ini adalah contoh konfigurasi sink teks berbatas dalam pemetaan aliran data.
Skrip aliran data terkait adalah:
CSVSource sink(allowSchemaDrift: true,
validateSchema: false,
truncate: true,
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> CSVSink
Konektor dan format terkait
Berikut adalah beberapa konektor umum dan format yang terkait dengan format teks yang dibatasi:
- Penyimpanan Blob Azure
- Format Biner
- Dataverse
- Format Delta
- Format Excel
- Sistem File
- FTP
- HTTP
- Format JSON
- Format Parquet