Menyalin data dari PostgreSQL V2 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 menggunakan Aktivitas Salin di alur Azure Data Factory atau Synapse Analytics untuk menyalin data dari database PostgreSQL. Artikel tersebut dibuat berdasarkan artikel gambaran umum aktivitas salin yang menyajikan gambaran umum aktivitas salin.
Penting
Konektor PostgreSQL V2 menyediakan dukungan PostgreSQL asli yang ditingkatkan. Jika Anda menggunakan konektor PostgreSQL V1 dalam solusi Anda, tingkatkan konektor PostgreSQL Anda karena V1 berada di tahap Akhir Dukungan. Lihat bagian ini untuk detail tentang perbedaan antara V2 dan V1.
Kemampuan yang didukung
Konektor PostgreSQL ini didukung untuk kemampuan berikut ini:
Kemampuan yang didukung | IR |
---|---|
Aktivitas penyalinan (sumber/-) | (1) (2) |
Aktivitas pencarian | (1) (2) |
① Runtime integrasi Azure ② Runtime integrasi yang dihost sendiri
Untuk daftar penyimpanan data yang didukung sebagai sumber/sink oleh aktivitas salin, lihat tabel Penyimpanan data yang didukung.
Secara khusus, konektor PostgreSQL ini mendukung PostgreSQL versi 12 ke atas.
Prasyarat
Jika penyimpanan data Anda terletak di dalam jaringan lokal, jaringan virtual Azure, atau Amazon Virtual Private Cloud, Anda harus mengonfigurasi runtime integrasi yang dihosting sendiri untuk menghubungkannya.
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 runtime integrasi jaringan virtual terkelola di Azure Data Factory untuk mengakses jaringan lokal 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.
Integration Runtime menyediakan driver PostgreSQL bawaan mulai dari versi 3.7, oleh karena itu Anda tidak perlu menginstal driver apa pun secara manual.
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
Membuat layanan tertaut ke PostgreSQL menggunakan UI
Gunakan langkah-langkah berikut untuk membuat layanan tertaut ke PostgreSQL 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 Postgre dan pilih konektor PostgreSQL.
Konfigurasikan detail layanan, uji koneksi, dan buat layanan tertaut baru.
Detail konfigurasi konektor
Bagian berikut ini memberikan detail tentang properti yang digunakan untuk menentukan entitas Data Factory khusus untuk konektor PostgreSQL.
Properti layanan tertaut
Properti berikut ini didukung untuk layanan tertaut PostgreSQL:
Properti | Deskripsi | Wajib |
---|---|---|
jenis | Properti jenis harus diatur ke: PostgreSqlV2 | Ya |
server | Menentukan nama host - dan port opsional - tempat PostgreSQL berjalan. | Ya |
pelabuhan | Port TCP server PostgreSQL. | No |
database | Database PostgreSQL untuk disambungkan. | Ya |
Nama pengguna | Nama pengguna yang akan disambungkan. Tidak diperlukan jika menggunakan IntegratedSecurity. | Ya |
kata sandi | Kata sandi yang akan disambungkan. Tidak diperlukan jika menggunakan IntegratedSecurity. | Ya |
sslMode | Mengontrol apakah SSL digunakan, tergantung pada dukungan server. - Nonaktifkan: SSL dinonaktifkan. Jika server memerlukan SSL, koneksi akan gagal. - Izinkan: Pilih koneksi non-SSL jika server mengizinkannya, tetapi izinkan koneksi SSL. - Lebih suka: Lebih suka koneksi SSL jika server mengizinkannya, tetapi izinkan koneksi tanpa SSL. - Perlu: Gagalkan koneksi jika server tidak mendukung SSL. - Verifikasi-ca: Gagalkan koneksi jika server tidak mendukung SSL. Juga memverifikasi sertifikat server. - Verifikasi penuh: Gagalkan koneksi jika server tidak mendukung SSL. Juga memverifikasi sertifikat server dengan nama host. Opsi: Nonaktifkan (0) / Izinkan (1) / Lebih suka (2) (Default) / Memerlukan (3) / Verifikasi-ca (4) / Verifikasi penuh (5) |
No |
authenticationType | Jenis autentikasi untuk menyambungkan ke database. Hanya mendukung Dasar. | Ya |
connectVia | Runtime integrasi yang akan digunakan untuk menyambungkan ke penyimpanan data. Pelajari selengkapnya dari bagian Prasyarat. Jika tidak ditentukan, Azure Integration Runtime default akan digunakan. | No |
Properti koneksi tambahan: | ||
skema | Mengatur jalur pencarian skema. | No |
Penggabungan | Apakah kumpulan koneksi harus digunakan. | No |
connectionTimeout | Waktu untuk menunggu (dalam detik) saat mencoba membuat koneksi sebelum mengakhiri upaya dan menghasilkan kesalahan. | No |
commandTimeout | Waktu untuk menunggu (dalam detik) saat mencoba menjalankan perintah sebelum mengakhiri upaya dan menghasilkan kesalahan. Atur ke nol untuk tak terbatas. | No |
trustServerCertificate | Apakah akan mempercayai sertifikat server tanpa memvalidasinya. | No |
sslCertificate | Lokasi sertifikat klien yang akan dikirim ke server. | No |
sslKey | Lokasi kunci klien untuk sertifikat klien yang akan dikirim ke server. | No |
sslPassword | Kata sandi untuk kunci untuk sertifikat klien. | No |
readBufferSize | Menentukan ukuran buffer internal yang digunakan Npgsql saat membaca. Peningkatan dapat meningkatkan performa jika mentransfer nilai besar dari database. | No |
logParameters | Saat diaktifkan, nilai parameter dicatat saat perintah dijalankan. | No |
zona waktu | Mendapatkan atau mengatur zona waktu sesi. | No |
pengodean | Mendapatkan atau mengatur pengodean .NET yang akan digunakan untuk mengodekan/mendekode data string PostgreSQL. | No |
Catatan
Untuk memiliki verifikasi SSL penuh melalui koneksi ODBC saat menggunakan Integration Runtime Yang Di-hosting sendiri, Anda harus menggunakan koneksi jenis ODBC alih-alih konektor PostgreSQL secara eksplisit, dan menyelesaikan konfigurasi berikut:
- Siapkan DSN di server SHIR apa pun.
- Letakkan sertifikat yang tepat untuk PostgreSQL di C:\Windows\ServiceProfiles\DIAHostService\AppData\Roaming\postgresql\root.crt di server SHIR. Di sinilah pengandar ODBC mencari > sertifikasi SSL untuk memverifikasi ketika tersambung ke database.
- Pada koneksi pabrik data Anda, gunakan koneksi jenis ODBC, dengan string koneksi yang mengarah ke DSN yang Anda buat di server SHIR.
Contoh:
{
"name": "PostgreSqlLinkedService",
"properties": {
"type": "PostgreSqlV2",
"typeProperties": {
"server": "<server>",
"port": 5432,
"database": "<database>",
"username": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
},
"sslmode": <sslmode>,
"authenticationType": "Basic"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Contoh: simpan kata sandi di Azure Key Vault
{
"name": "PostgreSqlLinkedService",
"properties": {
"type": "PostgreSqlV2",
"typeProperties": {
"server": "<server>",
"port": 5432,
"database": "<database>",
"username": "<username>",
"password": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName>"
}
"sslmode": <sslmode>,
"authenticationType": "Basic"
},
"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. Bagian ini menyediakan daftar properti yang didukung oleh himpunan data PostgreSQL.
Untuk menyalin data dari PostgreSQL, properti berikut ini didukung:
Properti | Deskripsi | Wajib |
---|---|---|
jenis | Properti jenis himpunan data harus diatur ke: PostgreSqlV2Table | Ya |
skema | Nama skema. | Tidak (jika "kueri" di sumber aktivitas ditentukan) |
tabel | Nama tabel. | Tidak (jika "kueri" di sumber aktivitas ditentukan) |
Contoh
{
"name": "PostgreSQLDataset",
"properties":
{
"type": "PostgreSqlV2Table",
"linkedServiceName": {
"referenceName": "<PostgreSQL linked service name>",
"type": "LinkedServiceReference"
},
"annotations": [],
"schema": [],
"typeProperties": {
"schema": "<schema name>",
"table": "<table name>"
}
}
}
Jika Anda menggunakan himpunan data RelationalTable
yang diketik, ia masih didukung apa adanya, sementara Anda disarankan untuk menggunakan yang baru ke depannya.
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 PostgreSQL.
PostgreSQL sebagai sumber
Untuk menyalin data dari PostgreSQL, properti berikut ini didukung di bagian sumber aktivitas salin:
Properti | Deskripsi | Wajib |
---|---|---|
jenis | Properti jenis sumber aktivitas salin harus diatur ke: PostgreSqlV2Source | Ya |
pertanyaan | Gunakan kueri SQL kustom untuk membaca data. Misalnya: "query": "SELECT * FROM \"MySchema\".\"MyTable\"" . |
Tidak (jika "tableName" di 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. Jika dan commandTimeout queryTimeout dikonfigurasi, queryTimeout diutamakan. |
No |
Catatan
Nama skema dan tabel peka huruf besar/kecil. Sertakan di ""
(tanda kutip ganda) dalam kueri.
Contoh:
"activities":[
{
"name": "CopyFromPostgreSQL",
"type": "Copy",
"inputs": [
{
"referenceName": "<PostgreSQL input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "PostgreSqlV2Source",
"query": "SELECT * FROM \"MySchema\".\"MyTable\"",
"queryTimeout": "00:10:00"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Jika Anda menggunakan sumber berjenis RelationalSource
, sumber ini masih didukung apa adanya, sementara Anda disarankan untuk menggunakan yang baru ke depannya.
Pemetaan jenis data untuk PostgreSQL
Saat menyalin data dari PostgreSQL, pemetaan berikut digunakan dari jenis data PostgreSQL ke jenis data sementara yang digunakan oleh layanan secara internal. Lihat Pemetaan skema dan jenis data untuk mempelajari bagaimana aktivitas penyalinan memetakan skema sumber dan jenis data ke sink.
Jenis data PostgreSql | Jenis data layanan sementara untuk PostgreSQL V2 | Jenis data layanan sementara untuk PostgreSQL V1 |
---|---|---|
SmallInt |
Int16 |
Int16 |
Integer |
Int32 |
Int32 |
BigInt |
Int64 |
Int64 |
Decimal (Presisi <= 28) |
Decimal |
Decimal |
Decimal (Presisi > 28) |
Tidak didukung | String |
Numeric |
Decimal |
Decimal |
Real |
Single |
Single |
Double |
Double |
Double |
SmallSerial |
Int16 |
Int16 |
Serial |
Int32 |
Int32 |
BigSerial |
Int64 |
Int64 |
Money |
Decimal |
String |
Char |
String |
String |
Varchar |
String |
String |
Text |
String |
String |
Bytea |
Byte[] |
Byte[] |
Timestamp |
DateTime |
DateTime |
Timestamp with time zone |
DateTime |
String |
Date |
DateTime |
DateTime |
Time |
TimeSpan |
TimeSpan |
Time with time zone |
DateTimeOffset |
String |
Interval |
TimeSpan |
String |
Boolean |
Boolean |
Boolean |
Point |
String |
String |
Line |
String |
String |
Iseg |
String |
String |
Box |
String |
String |
Path |
String |
String |
Polygon |
String |
String |
Circle |
String |
String |
Cidr |
String |
String |
Inet |
String |
String |
Macaddr |
String |
String |
Macaddr8 |
String |
String |
Tsvector |
String |
String |
Tsquery |
String |
String |
UUID |
Guid |
Guid |
Json |
String |
String |
Jsonb |
String |
String |
Array |
String |
String |
Bit |
Byte[] |
Byte[] |
Bit varying |
Byte[] |
Byte[] |
XML |
String |
String |
IntArray |
String |
String |
TextArray |
String |
String |
NumericArray |
String |
String |
DateArray |
String |
String |
Range |
String |
String |
Bpchar |
String |
String |
Properti aktivitas pencarian
Untuk mempelajari detail tentang properti, lihat Aktivitas pencarian.
Meningkatkan konektor PostgreSQL
Berikut adalah langkah-langkah yang membantu Anda meningkatkan konektor PostgreSQL Anda:
Buat layanan tertaut PostgreSQL baru dan konfigurasikan dengan merujuk ke Properti layanan tertaut.
Pemetaan jenis data untuk konektor PostgreSQL V2 berbeda dari yang untuk V1. Untuk mempelajari pemetaan jenis data terbaru, lihat Pemetaan jenis data untuk PostgreSQL.
Perbedaan antara PostgreSQL V2 dan V1
Tabel di bawah ini memperlihatkan perbedaan pemetaan jenis data antara PostgreSQL V2 dan V1.
Jenis data PostgreSQL | Jenis data layanan sementara untuk PostgreSQL V2 | Jenis data layanan sementara untuk PostgreSQL V1 |
---|---|---|
Uang | Decimal | String |
Tanda waktu dengan zona waktu | DateTime | String |
Waktu dengan zona waktu | DateTimeOffset | String |
Interval | TimeSpan | String |
BigDecimal | Tidak didukung. Sebagai alternatif, gunakan to_char() fungsi untuk mengonversi BigDecimal ke String. |
String |
Konten terkait
Untuk daftar penyimpanan data yang didukung sebagai sumber dan sink oleh aktivitas salin, lihat penyimpanan data yang didukung.