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.
Tips
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 menggunakan Aktivitas Salin di alur Azure Data Factory dan Synapse Analytics untuk menyalin data dari dan ke Azure Database for PostgreSQL. Dan, cara menggunakan Data Flow untuk mengubah data dalam Azure Database for PostgreSQL. Untuk mempelajari lebih lanjut, baca artikel pengantar untuk Azure Data Factory dan Synapse Analytics.
Penting
Azure Database for PostgreSQL versi 2.0 menyediakan dukungan Azure Database for PostgreSQL asli yang ditingkatkan. Jika Anda menggunakan Azure Database for PostgreSQL versi 1.0 dalam solusi, Anda disarankan untuk mutakhirkan konektor Azure Database for PostgreSQL Anda sesuka Anda.
Konektor ini dikhususkan untuk layanan Azure Database for PostgreSQL. Untuk menyalin data dari database PostgreSQL umum yang terletak di lokal atau di cloud, gunakan konektor PostgreSQL.
Kemampuan yang didukung
Konektor Azure Database for PostgreSQL ini didukung untuk kemampuan berikut:
| Kemampuan yang didukung | IR | Titik akhir privat terkelola | Versi konektor yang didukung |
|---|---|---|---|
| Copy activity (sumber/sink) | (1) (2) | 1.0 & 2.0 | |
| Memetakan aliran data (sumber/tujuan) | (1) | 1.0 & 2.0 | |
| Aktivitas pencarian | (1) (2) | 1.0 & 2.0 | |
| aktivitas Skrip | (1) (2) | 2.0 |
(1) Azure runtime integrasi (2) Runtime integrasi yang dihost sendiri
Ketiga aktivitas tersebut berfungsi pada Azure Database for PostgreSQL Single Server, Flexible Server, dan Azure Cosmos DB untuk PostgreSQL.
Penting
Azure Database for PostgreSQL Single Server akan dihentikan pada 28 Maret 2025. Migrasi ke Server Fleksibel pada tanggal tersebut. Anda dapat merujuk ke artikel ini dan FAQ untuk panduan migrasi.
Memulai Langkah Pertama
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 Azure Database for PostgreSQL menggunakan UI
Gunakan langkah-langkah berikut untuk membuat layanan tertaut ke database Azure untuk PostgreSQL di UI portal Azure.
Telusuri ke tab Kelola di ruang kerja Azure Data Factory atau Synapse Anda dan pilih Layanan Tertaut, lalu pilih Baru:
Cari PostgreSQL dan pilih database Azure untuk konektor PostgreSQL.
Konfigurasikan detail layanan, uji koneksi, dan buat layanan tertaut baru.
Detail konfigurasi konektor
Bagian berikut menawarkan detail tentang properti yang digunakan untuk menentukan entitas Data Factory khusus untuk konektor Azure Database for PostgreSQL.
Properti layanan yang terhubung
Versi konektor Azure Database for PostgreSQL 2.0 mendukung Transport Layer Security (TLS) 1.3 dan beberapa mode Secured Socket Layer (SSL). Silakan lihat bagian ini untuk meningkatkan versi konektor Azure SQL Database Anda dari versi 1.0. Untuk detail properti, lihat bagian yang sesuai.
Versi 2.0
Properti berikut ini didukung untuk layanan tertaut Azure Database for PostgreSQL saat Anda menerapkan versi 2.0:
| Properti | Deskripsi | Wajib |
|---|---|---|
| jenis | Jenis properti harus diatur menjadi: AzurePostgreSql. | Ya |
| versi | Versi yang Anda tentukan. Nilainya adalah 2.0. |
Ya |
| jenis otentikasi | Pilih dari jenis autentikasi: dasar, perwakilan layanan, identitas terkelola yang ditetapkan sistem, atau identitas terkelola yang ditetapkan pengguna. | Ya |
| server | Menentukan nama host dan port opsional tempat Azure Database for PostgreSQL berjalan. | Ya |
| port | Port TCP dari server Azure Database for PostgreSQL. Nilai defaultnya adalah 5432. |
Tidak |
| database | Nama database Azure Database for PostgreSQL yang akan dihubungkan. | Ya |
| Mode ssl | Mengontrol apakah SSL digunakan, tergantung pada dukungan server. - Dinonaktifkan: SSL dinonaktifkan. Jika server memerlukan SSL, koneksi gagal. - Izinkan: Pilih koneksi non-SSL jika server mengizinkannya, tetapi izinkan koneksi SSL. - Pilihan: Lebih suka koneksi SSL jika server mengizinkannya, tetapi izinkan koneksi tanpa SSL. - Diperlukan: Koneksi gagal jika server tidak mendukung SSL. - Verify_ca: Koneksi gagal jika server tidak mendukung SSL. Juga memverifikasi sertifikat server. - Verify_full: Koneksi gagal jika server tidak mendukung SSL. Juga memverifikasi sertifikat server dengan nama host. Opsi: Dinonaktifkan (0) / Izinkan (1) / Pilihan (2) (Default) / Diperlukan (3) / Verify_ca (4) / Verify_full (5) |
Tidak |
| hubungkan melalui | Properti ini menunjukkan runtime integrasi yang akan digunakan untuk menyambungkan ke penyimpanan data. Anda dapat menggunakan Azure Integration Runtime atau Integration Runtime yang dihost sendiri (jika penyimpanan data Anda terletak di jaringan privat). Jika tidak ditentukan, ia menggunakan Azure Integration Runtime default. | Tidak |
| Properti koneksi tambahan: | ||
| skema | Mengatur jalur pencarian skema. | Tidak |
| Penggabungan | Apakah pengelompokan koneksi sebaiknya digunakan? | Tidak |
| batas waktu koneksi | Waktu untuk menunggu (dalam detik) saat mencoba membuat koneksi sebelum mengakhiri upaya dan menghasilkan kesalahan. | Tidak |
| perintahBatas waktu | Waktu untuk menunggu (dalam detik) saat mencoba menjalankan perintah sebelum mengakhiri upaya dan menghasilkan kesalahan. Atur ke nol untuk tak terbatas. | Tidak |
| Mempercayai sertifikat server | Apakah akan mempercayai sertifikat server tanpa memvalidasinya. | Tidak |
| readBufferSize | Menentukan ukuran buffer internal yang digunakan Npgsql saat membaca. Peningkatan dapat meningkatkan performa jika mentransfer nilai besar dari database. | Tidak |
| zona waktu | Mendapatkan atau mengatur zona waktu sesi. | Tidak |
| pengodean | Mendapatkan atau mengatur pengodean .NET untuk mengodekan/mendekode data string PostgreSQL. | Tidak |
Otentikasi dasar
| Properti | Deskripsi | Wajib |
|---|---|---|
| nama pengguna | Nama pengguna untuk terhubung. Tidak diperlukan jika menggunakan IntegratedSecurity. | Ya |
| kata sandi | Kata sandi untuk terhubung. Tidak diperlukan jika menggunakan IntegratedSecurity. Tandai bidang ini sebagai SecureString untuk menyimpannya dengan aman. Atau, Anda dapat mengacu pada rahasia yang tersimpan di Azure Key Vault. | Ya |
Contoh:
{
"name": "AzurePostgreSqlLinkedService",
"properties": {
"type": "AzurePostgreSql",
"version": "2.0",
"typeProperties": {
"server": "<server name>",
"port": "5432",
"database": "<database name>",
"sslMode": 2,
"username": "<user name>",
"password": {
"type": "SecureString",
"value": "<password>"
}
}
}
}
Contoh:
Simpan kata sandi dalam Azure Key Vault
{
"name": "AzurePostgreSqlLinkedService",
"properties": {
"type": "AzurePostgreSql",
"version": "2.0",
"typeProperties": {
"server": "<server name>",
"port": "5432",
"database": "<database name>",
"sslMode": 2,
"username": "<user name>",
"password": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName>"
}
}
}
}
Autentikasi identitas terkelola yang ditentukan oleh sistem
Pabrik data atau ruang kerja Synapse dapat dikaitkan dengan identitas terkelola yang ditetapkan System yang mewakili layanan saat mengautentikasi ke sumber daya lain di Azure. Anda dapat menggunakan identitas terkelola ini untuk database Azure untuk autentikasi PostgreSQL. Pabrik yang ditunjuk atau ruang kerja Synapse dapat mengakses dan menyalin data dari atau ke database Anda dengan menggunakan identitas ini.
Untuk menggunakan identitas terkelola yang ditetapkan sistem, ikuti langkah-langkahnya:
Pabrik data atau ruang kerja Synapse dapat dikaitkan dengan identitas terkelola yang ditetapkan sistem. Pelajari, Lebih Lanjut Buat identitas terkelola yang ditetapkan sistem
Data Azure untuk PostgreSQL dengan identitas terkelola yang ditugaskan oleh sistem Aktif.
Di sumber daya Azure Database for PostgreSQL Anda, di bagian Keamanan
Pilih Autentikasi
Pilih autentikasi Microsoft Entra saja atau PostgreSQL dan autentikasi Microsoft Entra Metode autentikasi.
Pilih + Tambahkan administrator Microsoft Entra
Tambahkan identitas terkelola yang ditetapkan oleh sistem untuk sumber daya Azure Data Factory sebagai salah satu Administrator Microsoft Entra
Konfigurasikan database Azure untuk layanan tertaut PostgreSQL.
Contoh:
{
"name": "AzurePostgreSqlLinkedService",
"type": "Microsoft.DataFactory/factories/linkedservices",
"properties": {
"annotations": [],
"type": "AzurePostgreSql",
"version": "2.0",
"typeProperties": {
"server": "<server name>",
"port": 5432,
"database": "<database name>",
"sslMode": 2,
"authenticationType": "SystemAssignedManagedIdentity"
}
}
}
Nota
Jenis autentikasi ini tidak didukung pada runtime integrasi yang dihost sendiri.
Autentikasi identitas terkelola yang ditetapkan pengguna
Pabrik data atau ruang kerja Synapse dapat dikaitkan dengan identitas terkelola yang ditetapkan Pengguna yang mewakili layanan saat mengautentikasi ke sumber daya lain di Azure. Anda dapat menggunakan identitas terkelola ini untuk database Azure untuk autentikasi PostgreSQL. Pabrik yang ditunjuk atau ruang kerja Synapse dapat mengakses dan menyalin data dari atau ke database Anda dengan menggunakan identitas ini.
Untuk menggunakan autentikasi identitas terkelola yang ditetapkan pengguna, selain properti generik yang dijelaskan di bagian sebelumnya, tentukan properti berikut ini:
| Properti | Deskripsi | Wajib |
|---|---|---|
| bukti autentikasi | Tentukan identitas terkelola yang ditetapkan pengguna sebagai objek kredensial. | Ya |
Anda juga perlu mengikuti langkah-langkahnya:
Pastikan membuat sumber daya Identitas Terkelola yang Ditugaskan Pengguna di portal Azure. Untuk mempelajari lebih lanjut, buka Mengelola identitas terkelola yang ditetapkan pengguna
Tetapkan Identitas Terkelola yang ditetapkan pengguna ke database Azure anda untuk sumber daya PostgreSQL
Di database Azure untuk sumber daya server PostgreSQL Anda, di bawah Keamanan
Pilih Autentikasi
Verifikasi apakah metode Autentikasi hanya Microsoft Entra autentikasi atau PostgreSQL dan autentikasi Microsoft Entra
Klik tautan + Tambahkan administrator Microsoft Entra dan pilih identitas terkelola yang ditetapkan pengguna Anda
Tetapkan Identitas Terkelola yang ditetapkan pengguna ke sumber daya Azure Data Factory Anda
Konfigurasikan database Azure untuk layanan tertaut PostgreSQL.
Contoh:
{
"name": "AzurePostgreSqlLinkedService",
"type": "Microsoft.DataFactory/factories/linkedservices",
"properties": {
"annotations": [],
"type": "AzurePostgreSql",
"version": "2.0",
"typeProperties": {
"server": "<server name>",
"port": 5432,
"database": "<database name>",
"sslMode": 2,
"authenticationType": "UserAssignedManagedIdentity",
"credential": {
"referenceName": "<your credential>",
"type": "CredentialReference"
}
}
}
}
Autentikasi prinsip layanan
| Properti | Deskripsi | Wajib |
|---|---|---|
| nama pengguna | Nama tampilan perwakilan layanan | Ya |
| penyewa | Penyewa tempat server Azure Database for PostgreSQL berada | Ya |
| Id utama layanan | ID aplikasi prinsipal layanan | Ya |
| servicePrincipalCredentialType | Pilih apakah sertifikat perwakilan layanan atau kunci perwakilan layanan diinginkan metode autentikasi - ServicePrincipalCert: Atur ke sertifikat perwakilan layanan untuk sertifikat perwakilan layanan. - ServicePrincipalKey: Atur ke kunci prinsipal layanan untuk autentikasi kunci prinsipal layanan. |
Ya |
| servicePrincipalKey | Nilai rahasia klien. Digunakan saat kunci prinsipal layanan dipilih | Ya |
| azureCloudType | Pilih jenis cloud Azure server Azure Database for PostgreSQL Anda | Ya |
| Sertifikat Tertanam untuk Prinsipal Layanan | File sertifikat entitas layanan | Ya |
| servicePrincipalEmbeddedCertPassword | Kata sandi untuk sertifikat service principal jika diperlukan | Tidak |
Contoh:
Kunci prinsipal layanan
{
"name": "AzurePostgreSqlLinkedService",
"type": "Microsoft.DataFactory/factories/linkedservices",
"properties": {
"annotations": [],
"type": "AzurePostgreSql",
"version": "2.0",
"typeProperties": {
"server": "<server name>",
"port": 5432,
"database": "<database name>",
"sslMode": 2,
"username": "<service principal name>",
"authenticationType": "<authentication type>",
"tenant": "<tenant>",
"servicePrincipalId": "<service principal ID>",
"azureCloudType": "<azure cloud type>",
"servicePrincipalCredentialType": "<service principal type>",
"servicePrincipalKey": "<service principal key>"
}
}
}
Contoh:
Sertifikat perwakilan layanan
{
"name": "AzurePostgreSqlLinkedService",
"type": "Microsoft.DataFactory/factories/linkedservices",
"properties": {
"annotations": [],
"type": "AzurePostgreSql",
"version": "2.0",
"typeProperties": {
"server": "<server name>",
"port": 5432,
"database": "<database name>",
"sslMode": 2,
"username": "<service principal name>",
"authenticationType": "<authentication type>",
"tenant": "<tenant>",
"servicePrincipalId": "<service principal ID>",
"azureCloudType": "<azure cloud type>",
"servicePrincipalCredentialType": "<service principal type>",
"servicePrincipalEmbeddedCert": "<service principal certificate>",
"servicePrincipalEmbeddedCertPassword": "<service principal embedded certificate password>"
}
}
}
Nota
Microsoft Entra ID autentikasi menggunakan perwakilan layanan dan identitas terkelola yang ditetapkan pengguna didukung pada runtime integrasi yang dihost sendiri versi 5.50 atau lebih tinggi.
Versi 1.0
Properti berikut ini didukung untuk layanan tertaut Azure Database for PostgreSQL saat Anda menerapkan versi 1.0:
| Properti | Deskripsi | Wajib |
|---|---|---|
| jenis | Jenis properti harus diatur menjadi: AzurePostgreSql. | Ya |
| versi | Versi yang Anda tentukan. Nilainya adalah 1.0. |
Ya |
| stringKoneksi | String koneksi Npgsql untuk menghubungkan ke Azure Database untuk PostgreSQL. Anda juga dapat memasukkan kata sandi ke Azure Key Vault dan menarik konfigurasi password dari connection string. Lihat sampel berikut dan kredensial Store di Azure Key Vault untuk detail selengkapnya. |
Ya |
| hubungkan melalui | Properti ini menunjukkan runtime integrasi yang akan digunakan untuk menyambungkan ke penyimpanan data. Anda dapat menggunakan Azure Integration Runtime atau Integration Runtime yang dihost sendiri (jika penyimpanan data Anda terletak di jaringan privat). Jika tidak ditentukan, ia menggunakan Azure Integration Runtime default. | Tidak |
String koneksi yang umum adalah host=<server>.postgres.database.azure.com;database=<database>;port=<port>;uid=<username>;password=<password>. Berikut ini properti lainnya yang dapat Anda tentukan per kasus Anda:
| Properti | Deskripsi | Opsi | Wajib |
|---|---|---|---|
| EncryptionMethod (EM) | Metode yang digunakan driver untuk mengenkripsi data yang dikirim antara driver dan server database. Misalnya: EncryptionMethod=<0/1/6>; |
0 (Tanpa Enkripsi) (Default) / 1 (SSL) / 6 (RequestSSL) | Tidak |
| MemvalidasiSertifikatServer (VSC) | Menentukan apakah driver memvalidasi sertifikat yang dikirim oleh server database ketika enkripsi SSL diaktifkan (Metode Enkripsi=1). Misalnya: ValidateServerCertificate=<0/1>; |
0 (Dinonaktifkan) (Default) / 1 (Diaktifkan) | Tidak |
Contoh:
{
"name": "AzurePostgreSqlLinkedService",
"properties": {
"type": "AzurePostgreSql",
"version": "1.0",
"typeProperties": {
"connectionString": "host=<server>.postgres.database.azure.com;database=<database>;port=<port>;uid=<username>;password=<password>"
}
}
}
Contoh:
Simpan kata sandi dalam Azure Key Vault
{
"name": "AzurePostgreSqlLinkedService",
"properties": {
"type": "AzurePostgreSql",
"version": "1.0",
"typeProperties": {
"connectionString": "host=<server>.postgres.database.azure.com;database=<database>;port=<port>;uid=<username>;",
"password": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName>"
}
}
}
}
Properti himpunan data
Untuk daftar lengkap bagian dan properti yang tersedia untuk menentukan himpunan data, lihat Himpunan data. Bagian ini menyediakan daftar properti yang Azure Database for PostgreSQL dukung dalam himpunan data.
Untuk menyalin data dari Azure Database for PostgreSQL, atur properti jenis himpunan data ke AzurePostgreSqlTable. Properti berikut didukung:
| Properti | Deskripsi | Wajib |
|---|---|---|
| jenis | Properti jenis himpunan data harus diatur ke AzurePostgreSqlTable. | Ya |
| skema | Nama skema. | Tidak (jika "kueri" pada sumber aktivitas sudah ditentukan) |
| tabel | Nama tabel/tampilan. | Tidak (jika "kueri" pada sumber aktivitas sudah ditentukan) |
| Nama Tabel | Nama tabel tersebut. Properti ini didukung untuk kompatibilitas ke belakang. Untuk beban kerja baru, gunakan schema dan table. |
Tidak (jika "kueri" pada sumber aktivitas sudah ditentukan) |
Contoh:
{
"name": "AzurePostgreSqlDataset",
"properties": {
"type": "AzurePostgreSqlTable",
"linkedServiceName": {
"referenceName": "<AzurePostgreSql linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"schema": "<schema_name>",
"table": "<table_name>"
}
}
}
Properti Aktivitas Salin
Untuk daftar lengkap bagian dan properti yang tersedia untuk menentukan aktivitas, lihat Alur dan aktivitas. Bagian ini menyediakan daftar properti yang didukung oleh sumber Azure Database for PostgreSQL.
Azure Database untuk PostgreSql sebagai sumber
Untuk menyalin data dari Azure Database for PostgreSQL, atur jenis sumber dalam aktivitas salin ke AzurePostgreSqlSource. Di aktivitas salin, properti berikut didukung di bagian sumber:
| Properti | Deskripsi | Wajib |
|---|---|---|
| jenis | Properti jenis sumber aktivitas salin harus diatur ke AzurePostgreSqlSource | Ya |
| kueri | Gunakan kueri SQL kustom untuk membaca data. Sebagai contoh: SELECT * FROM mytable atau SELECT * FROM "MyTable". Perhatikan di PostgreSQL, nama entitas diperlakukan sebagai tidak peka huruf besar/kecil jika tidak dikutip. |
Tidak (jika properti tableName dalam himpunan data ditentukan) |
| queryTimeout | Waktu tunggu sebelum mengakhiri upaya untuk menjalankan perintah dan menghasilkan kesalahan, defaultnya adalah 120 menit. Jika parameter diatur untuk properti ini, nilai yang diizinkan adalah rentang waktu, seperti "02:00:00" (120 menit). Untuk informasi selengkapnya, lihat CommandTimeout. | Tidak |
| partitionOptions | Menentukan opsi pemartisian data yang digunakan untuk memuat data dari Azure SQL Database. Nilai yang diizinkan adalah: Tidak ada (default), PhysicalPartitionsOfTable, dan DynamicRange. Ketika opsi partisi diaktifkan (yaitu, bukan None), tingkat paralelisme untuk memuat data secara bersamaan dari Azure SQL Database dikendalikan oleh pengaturan parallelCopies pada aktivitas salin. |
Tidak |
| pengaturan partisi | Tentukan grup pengaturan untuk pemartisian data. Terapkan saat opsi partisi bukan None. |
Tidak |
Di bawah partitionSettings: |
||
| nama partisi | Daftar partisi fisik yang perlu disalin. Terapkan saat opsi partisi adalah PhysicalPartitionsOfTable. Jika Anda menggunakan kueri untuk mengambil data sumber, kaitkan ?AdfTabularPartitionName di klausul WHERE. Misalnya, lihat bagian Salinan Paralel dari Azure Database for PostgreSQL. |
Tidak |
| partitionColumnName | Tentukan nama kolom sumber dalam bilangan bulat atau jenis tanggal/waktu (int, smallint, bigint, date, timestamp without time zone, timestamp with time zone atau time without time zone) yang akan digunakan oleh partisi rentang untuk salinan paralel. Jika belum ditentukan, kunci primer tabel akan terdeteksi secara otomatis dan digunakan sebagai kolom partisi.Terapkan saat opsi partisi adalah DynamicRange. Jika Anda menggunakan kueri untuk mengambil data sumber, kaitkan ?AdfRangePartitionColumnName di klausul WHERE. Misalnya, lihat bagian Salinan Paralel dari Azure Database for PostgreSQL. |
Tidak |
| partitionUpperBound | Nilai maksimum kolom partisi untuk menyalin data. Terapkan saat opsi partisi adalah DynamicRange. Jika Anda menggunakan kueri untuk mengambil data sumber, kaitkan ?AdfRangePartitionUpbound di klausul WHERE. Misalnya, lihat bagian Salinan Paralel dari Azure Database for PostgreSQL. |
Tidak |
| batas bawah partisi | Nilai minimum kolom partisi untuk menyalin data. Terapkan saat opsi partisi adalah DynamicRange. Jika Anda menggunakan kueri untuk mengambil data sumber, kaitkan ?AdfRangePartitionLowbound di klausul WHERE. Misalnya, lihat bagian Salinan Paralel dari Azure Database for PostgreSQL. |
Tidak |
Contoh:
"activities":[
{
"name": "CopyFromAzurePostgreSql",
"type": "Copy",
"inputs": [
{
"referenceName": "<AzurePostgreSql input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "AzurePostgreSqlSource",
"query": "<custom query e.g. SELECT * FROM mytable>",
"queryTimeout": "00:10:00"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Azure Database for PostgreSQL sebagai tujuan
Untuk menyalin data ke Azure Database for PostgreSQL, atur jenis sink dalam aktivitas salin ke SqlSink. Berikut adalah properti yang didukung di bagian sink aktivitas salin:
| Properti | Deskripsi | Wajib | Versi dukungan konektor |
|---|---|---|---|
| jenis | Properti jenis sink aktivitas penyalinan harus ditetapkan ke AzurePostgreSQLSink. | Ya | Versi 1.0 & Versi 2.0 |
| preCopyScript | Tentukan kueri SQL untuk aktivitas salin yang akan dijalankan sebelum Anda menulis data ke Azure Database for PostgreSQL di setiap eksekusi. Anda dapat menggunakan properti ini untuk membersihkan data yang telah dimuat sebelumnya. | Tidak | Versi 1.0 & Versi 2.0 |
| writeMethod | Metode yang digunakan untuk menulis data ke dalam Azure Database for PostgreSQL. Nilai yang diizinkan adalah: CopyCommand (default, yang lebih berkinerja), BulkInsert dan Upsert (hanya Versi 2.0). |
Tidak | Versi 1.0 & Versi 2.0 |
| upsertSettings | Tentukan grup pengaturan untuk perilaku penulisan. Terapkan saat opsi WriteBehavior adalah Upsert. |
Tidak | Versi 2.0 |
Di bawah upsertSettings: |
|||
| kunci | Tentukan nama kolom untuk identifikasi baris unik. Kunci tunggal atau serangkaian kunci dapat digunakan. Kunci harus berupa kunci primer atau kolom unik. Jika tidak ditentukan, kunci primer digunakan. | Tidak | Versi 2.0 |
| writeBatchSize | Jumlah baris yang dimuat ke dalam Azure Database for PostgreSQL per batch. Nilai yang diizinkan adalah bilangan bulat yang menunjukkan jumlah baris. |
Tidak (defaultnya adalah 1.000.000) | Versi 1.0 & Versi 2.0 |
| writeBatchTimeout | Masa tunggu hingga operasi penyisipan batch selesai sebelum batas waktu habis. Nilai yang diizinkan adalah string Rentang Waktu. Contohnya adalah 00:30:00 (30 menit). |
Tidak (defaultnya adalah 00:30:00) | Versi 1.0 & Versi 2.0 |
Contoh 1: Perintah Salin
"activities":[
{
"name": "CopyToAzureDatabaseForPostgreSQL",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<Azure PostgreSQL output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "AzurePostgreSqlSink",
"preCopyScript": "<custom SQL script>",
"writeMethod": "CopyCommand",
"writeBatchSize": 1000000
}
}
}
]
Contoh 2: Upsert data
"activities":[
{
"name": "CopyToAzureDatabaseForPostgreSQL",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<Azure PostgreSQL output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "AzurePostgreSQLSink",
"writeMethod": "Upsert",
"upsertSettings": {
"keys": [
"<column name>"
]
},
}
}
}
]
Memasukkan atau memperbarui data
Copy activity secara asli mendukung operasi upsert. Untuk melakukan upsert, pengguna harus menyediakan kolom kunci yang merupakan kunci utama atau kolom unik. Jika pengguna tidak menyediakan kolom kunci, maka kolom kunci utama dalam tabel sink digunakan. Aktivitas Salin Data akan memperbarui kolom non-kunci dalam tabel tujuan di mana nilai kolom kunci cocok dengan tabel sumber; jika tidak, akan menambahkan data baru.
Salinan paralel dari Azure Database for PostgreSQL
Konektor Azure Database for PostgreSQL dalam aktivitas salin menyediakan partisi data bawaan untuk menyalin data secara paralel. Anda dapat menemukan opsi pemartisian data pada tab Sumber aktivitas salin.
Saat Anda mengaktifkan salinan yang dipartisi, aktivitas salin menjalankan kueri paralel terhadap sumber Azure Database for PostgreSQL Anda untuk memuat data menurut partisi. Derajat paralel dikendalikan oleh pengaturan parallelCopies pada aktivitas salin. Misalnya, jika Anda mengatur parallelCopies ke empat, layanan secara bersamaan menghasilkan dan menjalankan empat kueri berdasarkan opsi dan pengaturan partisi yang Anda tentukan, dan setiap kueri mengambil sebagian data dari Azure Database for PostgreSQL Anda.
Anda disarankan untuk mengaktifkan penyalinan paralel dengan pemartisian data terutama saat Anda memuat data dalam jumlah besar dari Azure Database for PostgreSQL Anda. Berikut ini adalah konfigurasi yang disarankan untuk skenario yang berbeda. Saat menyalin data ke penyimpanan data berbasis file, rekomendasinya adalah menulis ke folder sebagai beberapa file (hanya menentukan nama folder), dalam hal ini performanya lebih baik daripada menulis ke satu file.
| Skenario | Pengaturan yang disarankan |
|---|---|
| Pemuatan penuh dari tabel besar, dengan partisi fisik. |
Opsi partisi: Pembagian fisik dari tabel. Selama eksekusi, layanan secara otomatis mendeteksi partisi fisik, dan menyalin data berdasarkan partisi. |
| Pemuatan penuh dari tabel besar tanpa partisi fisik, namun menggunakan kolom bilangan bulat untuk partisi data. |
Opsi partisi: Partisi jangkauan dinamis. Kolom partisi: Menentukan kolom yang digunakan untuk mempartisi data. Jika belum ditentukan, kolom kunci primer digunakan. |
| Muat data dalam jumlah besar menggunakan kueri kustom, dengan partisi fisik. |
Opsi partisi: Pembagian fisik dari tabel. Kueri: SELECT * FROM ?AdfTabularPartitionName WHERE <your_additional_where_clause>.Nama partisi: Tentukan satu atau beberapa nama partisi untuk menyalin data. Jika tidak ditentukan, layanan akan otomatis mendeteksi partisi fisik pada tabel yang Anda tentukan dalam himpunan data PostgreSQL. Selama eksekusi, layanan mengganti ?AdfTabularPartitionName dengan nama partisi aktual, dan mengirim ke Azure Database for PostgreSQL. |
| Muat data dalam jumlah besar dengan menggunakan kueri kustom, tanpa partisi fisik, sedangkan dengan kolom bilangan bulat untuk partisi data. |
Opsi partisi: Partisi jangkauan dinamis. Kueri: SELECT * FROM ?AdfTabularPartitionName WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>.Kolom partisi: Menentukan kolom yang digunakan untuk mempartisi data. Anda dapat melakukan pemartisian terhadap kolom dengan jenis data bilangan bulat atau tanggal/tanggalwaktu. Batas atas partisi dan batas bawah partisi: Tentukan apakah Anda ingin memfilter kolom partisi untuk mengambil data hanya antara rentang bawah dan atas. Selama eksekusi, layanan menggantikan ?AdfRangePartitionColumnName, ?AdfRangePartitionUpbound, dan ?AdfRangePartitionLowbound dengan nama kolom dan rentang nilai aktual untuk setiap partisi, dan mengirim ke Azure Database for PostgreSQL. Misalnya, jika kolom partisi Anda "ID" diatur dengan batas bawah sebagai 1 dan batas atas sebagai 80, dengan salinan paralel diatur sebagai 4, layanan mengambil data melalui empat partisi. ID-nya masing-masing antara [1, 20], [21, 40], [41, 60], dan [61, 80]. |
Praktik terbaik untuk memuat data dengan opsi partisi:
- Pilih kolom yang khas sebagai kolom partisi (seperti kunci primer atau kunci unik) untuk menghindari penyimpangan data.
- Jika tabel memiliki partisi bawaan, gunakan opsi partisi "Partisi fisik tabel" untuk mendapatkan performa yang lebih baik.
- Jika Anda menggunakan Azure Integration Runtime untuk menyalin data, Anda dapat mengatur "Data Integration Units (DIU) yang lebih besar " (>4) untuk menggunakan lebih banyak sumber daya komputasi. Periksa skenario yang berlaku di sana.
- "Tingkat paralelisme salin" mengontrol jumlah partisi, mengatur angka ini terlalu besar dapat merugikan performa. Rekomendasikan mengatur angka ini sebagai (DIU atau jumlah simpul IR yang di-host sendiri) * (2 hingga 4).
Contoh: pemuatan penuh dari tabel besar dengan partisi fisik
"source": {
"type": "AzurePostgreSqlSource",
"partitionOption": "PhysicalPartitionsOfTable"
}
Contoh: kueri dengan partisi rentang dinamis
"source": {
"type": "AzurePostgreSqlSource",
"query": "SELECT * FROM <TableName> WHERE ?AdfDynamicRangePartitionCondition AND <your_additional_where_clause>",
"partitionOption": "DynamicRange",
"partitionSettings": {
"partitionColumnName": "<partition_column_name>",
"partitionUpperBound": "<upper_value_of_partition_column (optional) to decide the partition stride, not as data filter>",
"partitionLowerBound": "<lower_value_of_partition_column (optional) to decide the partition stride, not as data filter>"
}
}
Pemetaan properti aliran data
Saat mengubah data dalam pemetaan aliran data, Anda dapat membaca dan menulis ke tabel dari Azure Database for PostgreSQL. Untuk informasi selengkapnya, lihat transformasi sumber dan transformasi sink dalam aliran data pemetaan. Anda dapat memilih untuk menggunakan himpunan data Azure Database for PostgreSQL atau himpunan data inline sebagai jenis sumber dan sink.
Nota
Saat ini, hanya autentikasi dasar yang didukung untuk konektor Azure Database for PostgreSQL versi V1 dan V2 dalam Pemetaan Aliran Data.
Transformasi sumber
Tabel di bawah ini mencantumkan properti yang didukung oleh sumber Azure Database for PostgreSQL. Anda bisa mengedit properti ini di tab opsi Sumber.
| Nama | Deskripsi | Wajib | Nilai yang diizinkan | Properti skrip aliran data |
|---|---|---|---|---|
| Tabel | Jika Anda memilih Tabel sebagai input, aliran data mengambil semua data dari tabel yang ditentukan dalam himpunan data. | Tidak | - |
(hanya untuk himpunan data sebaris) Nama Tabel |
| Pertanyaan | Jika Anda memilih Kueri sebagai input, tentukan kueri SQL untuk mengambil data dari sumber, yang menggantikan tabel apa pun yang Anda tentukan dalam himpunan data. Menggunakan kueri adalah cara yang bagus untuk mengurangi baris untuk pengujian atau pencarian. Klausa Order By tidak didukung, tetapi Anda dapat mengatur pernyataan SELECT FROM lengkap. Anda juga dapat menggunakan fungsi tabel yang ditentukan pengguna. pilih * dari udfGetData() adalah UDF di SQL yang menghasilkan tabel yang dapat Anda gunakan dalam aliran data. Contoh kueri: select * from mytable where customerId > 1000 and customerId < 2000 atau select * from "MyTable". Perhatikan di PostgreSQL, nama entitas diperlakukan sebagai tidak peka huruf besar/kecil jika tidak dikutip. |
Tidak | string | kueri |
| Nama skema | Jika Anda memilih prosedur Tersimpan sebagai input, tentukan nama skema prosedur tersimpan, atau pilih Refresh untuk meminta layanan menemukan nama skema. | Tidak | string | namaSkema |
| Prosedur yang Disimpan dalam Database | Jika Anda memilih Prosedur tersimpan sebagai input, tentukan nama prosedur tersimpan untuk membaca data dari tabel sumber, atau pilih Refresh untuk meminta layanan menemukan nama prosedur. | Ya (jika Anda memilih Prosedur tersimpan sebagai input) | string | namaProsedur |
| Parameter prosedur | Jika Anda memilih Prosedur tersimpan sebagai input, tentukan parameter input apa pun untuk prosedur tersimpan dalam urutan yang diatur dalam prosedur, atau pilih Impor untuk mengimpor semua parameter prosedur menggunakan formulir @paraName. |
Tidak | Array | masukan |
| Ukuran batch | Tentukan ukuran batch untuk menggugus data besar ke dalam batch. | Tidak | Bilangan bulat | Ukuran Batch |
| Tingkat Isolasi | Pilih salah satu tingkat isolasi berikut: - Read Committed (Tingkat isolasi dalam SQL yang memastikan bahwa data baca diperoleh dari transaksi yang sudah diselesaikan) - Baca Tanpa Komitmen (standar) - Repeatable Read (Baca Berulang) - Serializable (dapat diserialisasi) - Tidak ada (abaikan tingkat isolasi) |
Tidak | DIBACA_DIKOMIT READ_UNCOMMITTED (Baca_Tidak_Terkomitmen) Pembacaan_Berulang Dapat Diserialkan TIDAK |
tingkat isolasi |
contoh skrip sumber Azure Database for PostgreSQL
Saat Anda menggunakan Azure Database for PostgreSQL sebagai jenis sumber, skrip aliran data terkait adalah:
source(allowSchemaDrift: true,
validateSchema: false,
isolationLevel: 'READ_UNCOMMITTED',
query: 'select * from mytable',
format: 'query') ~> AzurePostgreSQLSource
Transformasi penerima data
Tabel di bawah ini mencantumkan properti yang didukung oleh sink Azure Database for PostgreSQL. Anda dapat mengedit properti ini di tab opsi Sink.
| Nama | Deskripsi | Wajib | Nilai yang diizinkan | Properti skrip aliran data |
|---|---|---|---|---|
| Metode perbarui | Menentukan operasi apa yang diizinkan di tujuan database Anda. Defaultnya hanya mengizinkan sisipan. Untuk memperbarui, menyisipkan atau menghapus baris, diperlukan transformasi Alter row untuk menandai baris untuk tindakan tersebut. |
Ya |
true atau false |
dapat dihapus dapat disisipkan dapat diperbarui dapat di-upsert |
| Kolom utama | Untuk pembaruan, upsert dan penghapusan, kolom kunci harus diatur untuk menentukan baris mana yang akan diubah. Nama kolom yang Anda pilih sebagai kunci digunakan sebagai bagian dari pembaruan berikutnya, upsert, hapus. Oleh karena itu, Anda harus memilih kolom yang ada di pemetaan Sink. |
Tidak | Array | kunci |
| Lewati penulisan kolom kunci | Jika Anda ingin tidak menulis nilai ke kolom kunci, pilih "Lompati penulisan kolom kunci". | Tidak |
true atau false |
lewatiPenulisanKunci |
| Tindakan pada tabel | Menentukan apakah akan membuat ulang atau menghapus semua baris dari tabel tujuan sebelum menulis. - Tidak Ada: Tidak ada tindakan yang dilakukan pada tabel. - Buat ulang: Tabel akan dihilangkan dan dibuat ulang. Diperlukan jika membuat tabel baru secara dinamis. - Potong: Semua baris dari tabel target dihapus. |
Tidak |
true atau false |
menciptakan kembali Memangkas |
| Ukuran batch | Menentukan berapa banyak baris yang sedang ditulis di setiap batch. Ukuran batch yang lebih besar meningkatkan kompresi dan pengoptimalan memori, tetapi berisiko menyebabkan pengecualian kehabisan memori saat melakukan cache data. | Tidak | Bilangan bulat | Ukuran Batch |
| Memilih skema DB pengguna | Secara default, tabel sementara dibuat di bawah skema sink sebagai penahapan. Anda dapat menghapus centang opsi Gunakan skema sink dan sebagai gantinya, tentukan nama skema di mana Data Factory membuat tabel penahapan untuk memuat data upstream dan secara otomatis membersihkannya setelah selesai. Pastikan Anda telah membuat izin tabel di database dan mengubah izin pada skema. | Tidak | string | stagingSchemaName |
| Skrip Pra dan Pasca SQL | Tentukan skrip SQL multibaris yang akan dijalankan sebelum (praproses) dan setelah (pasca-pemrosesan) data ditulis ke database Sink Anda. | Tidak | string | praSQL postSQLs |
Tips
- Pisahkan skrip batch yang memiliki beberapa perintah menjadi batch yang terpisah.
- Hanya pernyataan Bahasa Definisi Data (DDL) dan Bahasa Manipulasi Data (DML) yang menampilkan jumlah pembaruan sederhana yang dapat dijalankan sebagai bagian dari batch. Pelajari lebih lanjut tentang Melakukan operasi batch
Aktifkan ekstrak bertambah bertahap: Gunakan opsi ini untuk memberi tahu ADF untuk hanya memproses baris yang berubah sejak terakhir kali alur dijalankan.
Kolom tambahan: Saat menggunakan fitur ekstrak tambahan, Anda harus memilih kolom tanggal/waktu atau numerik yang ingin Anda gunakan sebagai penanda di tabel sumber Anda.
Mulai membaca dari awal: Mengatur opsi ini dengan ekstrak inkremental menginstruksikan ADF untuk membaca semua baris pada eksekusi pertama alur dengan ekstrak inkremental diaktifkan.
contoh skrip sink Azure Database for PostgreSQL
Saat Anda menggunakan Azure Database for PostgreSQL sebagai jenis sink, skrip aliran data terkait adalah:
IncomingStream sink(allowSchemaDrift: true,
validateSchema: false,
deletable:false,
insertable:true,
updateable:true,
upsertable:true,
keys:['keyColumn'],
format: 'table',
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> AzurePostgreSqlSink
Kegiatan skrip
Penting
Aktivitas skrip hanya didukung di konektor versi 2.0.
Penting
Pernyataan multi-kueri menggunakan parameter output tidak didukung. Disarankan agar Anda membagi kueri output apa pun menjadi blok skrip terpisah dalam aktivitas skrip yang sama atau berbeda.
Pernyataan multi-kueri yang menggunakan parameter posisi tidak didukung. Disarankan agar Anda membagi kueri posisi apa pun menjadi blok skrip terpisah dalam aktivitas skrip yang sama atau berbeda.
Untuk informasi selengkapnya tentang aktivitas skrip, lihat Aktivitas skrip.
Properti aktivitas pencarian
Selengkapnya tentang properti, lihat Aktivitas pencarian.
Perbarui konektor untuk Azure Database for PostgreSQL
Di halaman Edit layanan tertaut , pilih 2.0 di bawah Versi dan konfigurasikan layanan tertaut dengan merujuk ke Properti layanan tertaut versi 2.0.
Konten terkait
Untuk daftar penyimpanan data yang didukung sebagai sumber dan tujuan oleh aktivitas penyalinan, lihat Penyimpanan data yang didukung.