Sumber data Amazon Redshift menyediakan saluran dua arah untuk membaca dari dan menulis ke Amazon Redshift. Anda dapat mengonfigurasi task sinkronisasi data melalui antarmuka tanpa kode (codeless UI) atau editor kode. Topik ini menjelaskan kemampuan sinkronisasi data untuk Amazon Redshift.
Versi Amazon Redshift yang didukung
Amazon Redshift menggunakan driver redshift-jdbc4.2 versi 2.1.0.1. Untuk informasi lebih lanjut mengenai kemampuan driver tersebut, lihat Configure a JDBC driver for Amazon Redshift.
Tipe bidang yang didukung
Untuk informasi mengenai tipe bidang Amazon Redshift, lihat dokumentasi resmi Amazon Redshift. Tabel berikut mencantumkan tipe bidang utama yang didukung.
Tipe Amazon Redshift | Tipe SQL | Tipe Java |
BIGINT | SQL_BIGINT | Long |
BOOLEAN | SQL_BIT | Boolean |
CHAR | SQL_CHAR | String |
DATE | SQL_TYPE_DATE | java.sql.Date |
DECIMAL | SQL_NUMERIC | BigDecimal |
DOUBLE PRECISION | SQL_DOUBLE | Double |
GEOMETRY | SQL_ LONGVARBINARY | byte[] |
INTEGER | SQL_INTEGER | Integer |
OID | SQL_BIGINT | Long |
SUPER | SQL_LONGVARCHAR | String |
REAL | SQL_REAL | Float |
SMALLINT | SQL_SMALLINT | Short |
TEXT | SQL_VARCHAR | String |
TIME | SQL_TYPE_TIME | java.sql.Time |
TIMETZ | SQL_TYPE_TIME | java.sql.Time |
TIMESTAMP | SQL_TYPE_ TIMESTAMP | java.sql.Timestamp |
TIMESTAMPTZ | SQL_TYPE_ TIMESTAMP | java.sql.Timestamp |
VARCHAR | SQL_VARCHAR | String |
Persiapan untuk sinkronisasi data
Sebelum melakukan sinkronisasi data di DataWorks, Anda harus membuat koneksi jaringan antara sumber data dan resource group arsitektur tanpa server (serverless) atau grup sumber daya eksklusif untuk Integrasi Data agar resource group tersebut dapat mengakses sumber data melalui jaringan internal. Kami merekomendasikan penggunaan resource group arsitektur tanpa server untuk sinkronisasi data. Untuk informasi tentang cara membuat koneksi jaringan, lihat Network connectivity solutions.
Buat sumber data
Sebelum mengembangkan task sinkronisasi di DataWorks, Anda harus menambahkan sumber data yang diperlukan ke DataWorks dengan mengikuti petunjuk dalam Data source management. Anda dapat melihat deskripsi parameter di Konsol DataWorks untuk memahami arti parameter saat menambahkan sumber data.
Daftar berikut menjelaskan beberapa parameter untuk sumber data Amazon Redshift.
JDBC URL: Masukkan string koneksi Java Database Connectivity (JDBC). String tersebut harus mencakup alamat IP, nomor port, database, dan parameter koneksi. Alamat IP publik maupun pribadi didukung. Jika Anda menggunakan alamat IP publik, pastikan resource group Integrasi Data dapat mengakses host Amazon Redshift.
Username: Masukkan username untuk database Amazon Redshift.
Password: Masukkan password untuk username yang ditentukan.
Kembangkan task sinkronisasi data
Untuk informasi mengenai titik masuk dan prosedur konfigurasi task sinkronisasi, lihat panduan konfigurasi berikut.
Panduan konfigurasi task sinkronisasi offline untuk satu tabel
Untuk petunjuknya, lihat Configure a sync task in the codeless UI dan Configure a sync task in the code editor.
Untuk daftar lengkap parameter dan contoh skrip untuk editor kode, lihat Appendix: Script examples and parameter descriptions.
Lampiran: Contoh skrip dan deskripsi parameter
Konfigurasikan task sinkronisasi batch menggunakan editor kode
Jika Anda ingin mengonfigurasi task sinkronisasi batch menggunakan editor kode, Anda harus mengonfigurasi parameter terkait dalam skrip sesuai dengan persyaratan format skrip terpadu. Untuk informasi lebih lanjut, lihat Configure a task in the code editor. Informasi berikut menjelaskan parameter yang harus dikonfigurasi untuk sumber data saat Anda mengonfigurasi task sinkronisasi batch menggunakan editor kode.
Contoh skrip Reader
{
"stepType": "redshift"
"parameter":
{
"datasource":"redshift_datasource",
"table": "redshift_table_name",
"where": "xxx=3",
"splitPk": "id",
"column":
[
"id",
"table_id",
"table_no",
"table_name",
"table_status"
]
},
"name": "Reader",
"category": "reader"
}Parameter skrip Reader
Parameter skrip | Deskripsi | Wajib | Nilai default |
datasource | Nama sumber data. Di editor kode, nilai parameter ini harus sesuai dengan nama sumber data yang Anda tambahkan. | Ya | Tidak ada |
table | Nama tabel sumber. | Ya | Tidak ada |
column | Daftar bidang yang akan disinkronkan. Pisahkan bidang dengan koma. Contoh: "column":["id","name","age"]. Untuk menyinkronkan semua kolom, gunakan tanda bintang (*). Contoh: "column":["*"]. | Ya | Tidak ada |
where | Kondisi filter. Pernyataan SQL dibuat dari parameter column, table, dan where yang ditentukan untuk mengekstraksi data. Misalnya, saat pengujian, Anda dapat mengatur kondisi where menjadi limit 10. Dalam skenario bisnis umum, Anda mungkin menyinkronkan data dari hari ini. Untuk melakukannya, atur kondisi where menjadi gmt_create>$bizdate.
| Tidak | Tidak ada |
splitPk | Jika Anda menentukan splitPk, sistem akan menggunakan bidang yang ditentukan untuk partisi data. Hal ini memulai task konkuren untuk meningkatkan efisiensi sinkronisasi data. | Tidak | Tidak ada |
Contoh skrip Writer
{
"stepType": "redshift",// The plug-in name.
"parameter":
{
"postSql":["delete from XXX;"],
"preSql":["delete from XXX;"],
"datasource":"redshift_datasource",// The data source name.
"table": "redshift_table_name",// The table name.
"writeMode": "insert",
"batchSize": 2048,
"column":
[
"id",
"table_id",
"table_no",
"table_name",
"table_status"
]
},
"name": "Writer",
"category": "writer"
}Parameter skrip Writer
Parameter skrip | Deskripsi | Wajib | Nilai default |
datasource | Nama sumber data. Di editor kode, nilai parameter ini harus sesuai dengan nama sumber data yang Anda tambahkan. | Ya | Tidak ada |
table | Nama tabel tujuan. | Ya | Tidak ada |
column | Bidang di tabel tujuan tempat Anda ingin menulis data. Pisahkan bidang dengan koma. Contoh: "column":["id","name","age"]. Untuk menulis ke semua kolom secara berurutan, gunakan tanda bintang (*). Contoh: "column":["*"]. | Ya | Tidak ada |
preSql | Pernyataan SQL yang dieksekusi sebelum task sinkronisasi data dimulai. Antarmuka tanpa kode hanya mendukung satu pernyataan SQL. Editor kode mendukung beberapa pernyataan SQL, seperti pernyataan untuk purge data lama. | Tidak | Tidak ada |
postSql | Pernyataan SQL yang dieksekusi setelah task sinkronisasi data selesai. Antarmuka tanpa kode hanya mendukung satu pernyataan SQL. Editor kode mendukung beberapa pernyataan SQL, seperti pernyataan untuk menambahkan timestamp. | Tidak | Tidak ada |
batchSize | Jumlah maksimum entri data yang diimpor dalam setiap batch. | Tidak | 2048 |
writeMode | Hanya insert yang didukung. | Tidak | insert |