DataWorks menyediakan Amazon Redshift Reader dan Amazon Redshift Writer untuk membaca dan menulis data ke sumber data Amazon Redshift. Anda dapat mengonfigurasi tugas sinkronisasi menggunakan antarmuka tanpa kode (UI) atau editor kode. Topik ini menjelaskan cara menyinkronkan data dari atau ke sumber data Amazon Redshift.
Versi Amazon Redshift yang didukung
Driver yang digunakan oleh Amazon Redshift adalah redshift-jdbc4.2 Driver 2.1.0.1. Untuk informasi lebih lanjut tentang kemampuan driver, lihat Konfigurasikan Versi Driver JDBC untuk Amazon Redshift.
Pemetaan tipe data
Untuk informasi tentang pemetaan antara tipe data Amazon Redshift dan tipe data SQL serta pemetaan antara tipe data Amazon Redshift dan tipe data Java, lihat Dokumentasi Resmi Amazon Redshift. Tabel berikut mencantumkan pemetaan tipe data.
Tipe data Amazon Redshift | Tipe data SQL | Tipe data 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 |
Membuat koneksi jaringan untuk sumber data Amazon Redshift
Sebelum menjalankan tugas sinkronisasi yang dikonfigurasi untuk sumber data Amazon Redshift, Anda harus membuat koneksi jaringan antara sumber data dan grup sumber daya eksklusif Anda untuk Data Integration melalui jaringan internal. Untuk informasi lebih lanjut, lihat Membuat Koneksi Jaringan antara Grup Sumber Daya dan Sumber Data.
Mengembangkan tugas sinkronisasi
Untuk informasi tentang titik masuk dan prosedur konfigurasi tugas sinkronisasi, lihat bagian berikut. Untuk pengaturan parameter, lihat infotip setiap parameter di tab konfigurasi tugas sinkronisasi.
Menambahkan sumber data
Sebelum mengonfigurasi tugas sinkronisasi untuk menyinkronkan data dari atau ke sumber data tertentu, Anda harus menambahkan sumber data ke DataWorks. Untuk informasi lebih lanjut, lihat Tambahkan dan Kelola Sumber Data. Anda harus mengonfigurasi parameter berikut saat menambahkan sumber data Amazon Redshift ke DataWorks:
JDBC URL: Tentukan string koneksi JDBC yang berisi alamat IP, nomor port, nama database, dan parameter koneksi. Anda dapat menggunakan alamat IP publik atau pribadi. Jika menggunakan alamat IP publik, pastikan grup sumber daya eksklusif Anda untuk Data Integration dapat mengakses host tempat sumber data Amazon Redshift diterapkan.
Username: Tentukan nama pengguna database Amazon Redshift yang ingin Anda hubungkan.
Password: Tentukan kata sandi database Amazon Redshift yang ingin Anda hubungkan.
Konfigurasikan tugas sinkronisasi batch untuk menyinkronkan data tabel tunggal
Untuk informasi lebih lanjut tentang prosedur konfigurasi, lihat Konfigurasikan Tugas Sinkronisasi Batch Menggunakan UI Tanpa Kode dan Konfigurasikan Tugas Sinkronisasi Batch Menggunakan Editor Kode.
Untuk informasi tentang semua parameter yang dikonfigurasi dan kode yang dijalankan saat menggunakan editor kode untuk mengonfigurasi tugas sinkronisasi batch, lihat Lampiran: Kode dan Parameter.
Lampiran: Kode dan parameter
Konfigurasikan tugas sinkronisasi batch menggunakan editor kode
Jika Anda menggunakan editor kode untuk mengonfigurasi tugas sinkronisasi batch, Anda harus mengonfigurasi parameter untuk pembaca dan penulis sumber data terkait sesuai dengan persyaratan format di editor kode. Untuk informasi lebih lanjut tentang persyaratan format, lihat Konfigurasikan Tugas Sinkronisasi Batch Menggunakan Editor Kode. Informasi berikut menjelaskan detail konfigurasi parameter untuk pembaca dan penulis di editor kode.
Kode untuk Amazon Redshift Reader dan parameter dalam kode untuk Amazon Redshift Reader
Kode untuk Amazon Redshift 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 dalam kode untuk Amazon Redshift Reader
Parameter | Deskripsi | Diperlukan | Nilai default |
datasource | Nama sumber data. Harus sama dengan nama sumber data yang telah ditambahkan. Anda dapat menambahkan sumber data menggunakan editor kode. | Ya | Tidak ada nilai default |
table | Nama tabel dari mana Anda ingin membaca data. | Ya | Tidak ada nilai default |
column | Nama kolom dari mana Anda ingin membaca data. Pisahkan nama dengan koma (,), seperti "column":["id","name","age"]. Jika Anda ingin membaca data dari semua kolom di tabel sumber, atur parameter ini ke asterisk (*), seperti "column":["*"]. | Ya | Tidak ada nilai default |
where | Klausa WHERE. Tugas sinkronisasi batch menggabungkan nilai parameter column, table, dan where untuk membentuk pernyataan SQL dan mengeksekusi pernyataan SQL untuk membaca data dari tabel sumber. Saat melakukan pengujian, Anda dapat mengatur parameter where untuk membatasi 10. Untuk membaca data yang dihasilkan pada hari saat ini, Anda dapat mengatur parameter where ke gmt_create > $bizdate.
| Tidak | Tidak ada nilai default |
splitPk | Bidang yang digunakan untuk sharding data. Jika Anda mengonfigurasi parameter ini, tabel sumber akan di-sharding berdasarkan nilai dari parameter ini. Data Integration kemudian menjalankan thread paralel untuk membaca data. Dengan cara ini, data dapat disinkronkan lebih efisien. | Tidak | Tidak ada nilai default |
Kode untuk Amazon Redshift Writer dan parameter dalam kode untuk Amazon Redshift Writer
Kode untuk Amazon Redshift Writer
{
"stepType": "redshift",// Nama plugin.
"parameter":
{
"postSql":["delete from XXX;"],
"preSql":["delete from XXX;"],
"datasource":"redshift_datasource",// Nama sumber data.
"table": "redshift_table_name",// Nama tabel.
"writeMode": "insert",
"batchSize": 2048,
"column":
[
"id",
"table_id",
"table_no",
"table_name",
"table_status"
]
},
"name": "Writer",
"category": "writer"
}Parameter dalam kode untuk Amazon Redshift Writer
Parameter | Deskripsi | Diperlukan | Nilai default |
datasource | Nama sumber data. Harus sama dengan nama sumber data yang telah ditambahkan. Anda dapat menambahkan sumber data menggunakan editor kode. | Ya | Tidak ada nilai default |
table | Nama tabel ke mana Anda ingin menulis data. | Ya | Tidak ada nilai default |
column | Nama kolom ke mana Anda ingin menulis data. Pisahkan nama dengan koma (,), seperti "column":["id","name","age"]. Jika Anda ingin menulis data ke semua kolom di tabel tujuan, atur parameter ini ke asterisk (*), seperti "column":["*"]. | Ya | Tidak ada nilai default |
preSql | Pernyataan SQL yang ingin Anda eksekusi sebelum tugas sinkronisasi batch dijalankan. Misalnya, Anda dapat mengatur parameter ini ke pernyataan SQL yang digunakan untuk menghapus data lama. Anda hanya dapat mengeksekusi satu pernyataan SQL di UI tanpa kode dan beberapa pernyataan SQL di editor kode. | Tidak | Tidak ada nilai default |
postSql | Pernyataan SQL yang ingin Anda eksekusi setelah tugas sinkronisasi batch dijalankan. Misalnya, Anda dapat mengatur parameter ini ke pernyataan SQL yang digunakan untuk menambahkan timestamp. Anda hanya dapat mengeksekusi satu pernyataan SQL di UI tanpa kode dan beberapa pernyataan SQL di editor kode. | Tidak | Tidak ada nilai default |
batchSize | Jumlah maksimum catatan data yang akan ditulis sekaligus. | Tidak | 2048 |
writeMode | Mode penulisan. Atur nilainya menjadi insert. | Tidak | insert |