Menambahkan data ke sumber cluster Aurora DB dan menanyakannya di Amazon Redshift - Amazon Aurora

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menambahkan data ke sumber cluster Aurora DB dan menanyakannya di Amazon Redshift

Untuk menyelesaikan pembuatan ETL integrasi nol yang mereplikasi data dari Aurora ke Amazon Redshift, Anda harus membuat database tujuan di Amazon Redshift.

Pertama, hubungkan ke klaster atau grup kerja Amazon Redshift Anda dan buat basis data dengan referensi ke pengidentifikasi integrasi Anda. Kemudian, Anda dapat menambahkan data ke sumber Anda Aurora DB cluster dan melihatnya direplikasi di Amazon Redshift.

Membuat database tujuan di Amazon Redshift

Sebelum Anda dapat mulai mereplikasi data ke Amazon Redshift, setelah Anda membuat integrasi, Anda harus membuat basis data tujuan di gudang data target Anda. Basis data tujuan ini harus menyertakan referensi ke pengidentifikasi integrasi. Anda dapat menggunakan konsol Amazon Redshift atau Editor kueri v2 untuk membuat basis data.

Untuk petunjuk cara membuat basis data tujuan, lihat Membuat basis data tujuan di Amazon Redshift.

Menambahkan data ke sumber DB cluster

Setelah mengonfigurasi integrasi, Anda dapat menambahkan beberapa data ke cluster Aurora DB yang ingin Anda replikasi ke gudang data Amazon Redshift Anda.

catatan

Ada perbedaan antara tipe data di Aurora dan Amazon Redshift. Untuk tabel pemetaan jenis data, lihat Perbedaan tipe data antara database Aurora dan Amazon Redshift.

Pertama, sambungkan ke cluster DB sumber menggunakan SQL klien My SQL atau Postgre pilihan Anda. Untuk petunjuk, silakan lihat Menghubungkan ke klaster DB Amazon Aurora.

Kemudian, buat tabel dan masukkan urutan data sampel.

penting

Pastikan tabel memiliki kunci primer. Jika tidak, tabel tidak dapat direplikasi ke gudang data target.

SQLUtilitas pg_dump dan pg_restore Postgre awalnya membuat tabel tanpa kunci utama dan kemudian menambahkannya setelahnya. Jika Anda menggunakan salah satu utilitas ini, sebaiknya buat skema terlebih dahulu, lalu muat data dalam perintah terpisah.

Saya SQL

Contoh berikut menggunakan utilitas My SQL Workbench.

CREATE DATABASE my_db; USE my_db; CREATE TABLE books_table (ID int NOT NULL, Title VARCHAR(50) NOT NULL, Author VARCHAR(50) NOT NULL, Copyright INT NOT NULL, Genre VARCHAR(50) NOT NULL, PRIMARY KEY (ID)); INSERT INTO books_table VALUES (1, 'The Shining', 'Stephen King', 1977, 'Supernatural fiction');

Postgre SQL

Contoh berikut menggunakan terminal SQL interaktif psql Postgre. Saat menghubungkan ke klaster, sertakan basis data bernama yang Anda tentukan saat membuat integrasi.

psql -h mycluster.cluster-123456789012.us-east-2.rds.amazonaws.com -p 5432 -U username -d named_db; named_db=> CREATE TABLE books_table (ID int NOT NULL, Title VARCHAR(50) NOT NULL, Author VARCHAR(50) NOT NULL, Copyright INT NOT NULL, Genre VARCHAR(50) NOT NULL, PRIMARY KEY (ID)); named_db=> INSERT INTO books_table VALUES (1, 'The Shining', 'Stephen King', 1977, 'Supernatural fiction');

Menanyakan data Aurora Anda di Amazon Redshift

Setelah Anda menambahkan data ke Aurora DB cluster, itu direplikasi ke Amazon Redshift dan siap untuk ditanyakan.

Untuk mengueri data yang direplikasi
  1. Buka konsol Amazon Redshift dan pilih Editor kueri v2 dari panel navigasi kiri.

  2. Hubungkan ke klaster atau grup kerja Anda dan pilih basis data tujuan Anda (yang Anda buat dari integrasi) dari menu dropdown (destination_database dalam contoh ini). Untuk petunjuk cara membuat basis data tujuan, lihat Membuat basis data tujuan di Amazon Redshift.

  3. Gunakan SELECT pernyataan untuk menanyakan data Anda. Dalam contoh ini, Anda dapat menjalankan perintah berikut untuk memilih semua data dari tabel yang Anda buat di sumber Aurora DB cluster:

    SELECT * from my_db."books_table";
    Jalankan SELECT pernyataan dalam editor kueri Redshift. Hasilnya adalah satu baris data sampel yang ditambahkan ke RDS database.
    • my_dbadalah nama skema basis data Aurora. Opsi ini hanya diperlukan untuk SQL database Saya.

    • books_tableadalah nama tabel Aurora.

Anda juga dapat menanyakan data menggunakan klien baris perintah. Sebagai contoh:

destination_database=# select * from my_db."books_table"; ID | Title | Author | Copyright | Genre | txn_seq | txn_id ----+–------------+---------------+-------------+------------------------+----------+--------+ 1 | The Shining | Stephen King | 1977 | Supernatural fiction | 2 | 12192
catatan

Untuk kepekaan huruf besar/kecil, gunakan tanda kutip ganda (" ") untuk nama skema, tabel, dan kolom. Untuk informasi selengkapnya, lihat enable_case_sensitive_identifier.

Perbedaan tipe data antara database Aurora dan Amazon Redshift

menunjukkan pemetaan tipe data Aurora My SQL atau Aurora SQL Postgre ke tipe data Amazon Redshift yang sesuai. Amazon Aurora saat ini hanya mendukung tipe data ini untuk integrasi nol. ETL

Jika tabel di cluster DB sumber Anda menyertakan tipe data yang tidak didukung, tabel akan tidak sinkron dan tidak dapat dikonsumsi oleh target Amazon Redshift. Streaming dari sumber ke target berlanjut, tetapi tabel dengan jenis data yang tidak didukung tidak tersedia. Untuk memperbaiki tabel dan membuatnya tersedia di Amazon Redshift, Anda harus mengembalikan perubahan yang melanggar secara manual, lalu menyegarkan integrasi dengan menjalankan ALTER DATABASE...INTEGRATION REFRESH.

SQL

tipe data saya SQL Jenis data Amazon Redshift Deskripsi Batasan
INT INTEGER Bilangan bulat empat byte bertanda Tidak ada
SMALLINT SMALLINT Bilangan bulat dua byte bertanda Tidak ada
TINYINT SMALLINT Bilangan bulat dua byte bertanda Tidak ada
MEDIUMINT INTEGER Bilangan bulat empat byte bertanda Tidak ada
BIGINT BIGINT Bilangan bulat delapan byte bertanda Tidak ada
INT UNSIGNED BIGINT Bilangan bulat delapan byte bertanda Tidak ada
TINYINT UNSIGNED SMALLINT Bilangan bulat dua byte bertanda Tidak ada
MEDIUMINT UNSIGNED INTEGER Bilangan bulat empat byte bertanda Tidak ada
BIGINT UNSIGNED DECIMAL(20,0) Numerik persis dari presisi yang dapat dipilih Tidak ada
DECIMAL(p, s) = NUMERIC (p, s) DECIMAL(p, s) Numerik persis dari presisi yang dapat dipilih

Presisi lebih besar dari 38 dan penskalaan lebih besar dari 37 tidak didukung

DECIMAL(p, s) UNSIGNED = NUMERIC (p, s) UNSIGNED DECIMAL(p, s) Numerik persis dari presisi yang dapat dipilih

Presisi lebih besar dari 38 dan penskalaan lebih besar dari 37 tidak didukung

FLOAT4/REAL REAL Angka floating-point presisi tunggal Tidak ada
FLOAT4/REAL UNSIGNED REAL Angka floating-point presisi tunggal Tidak ada
DOUBLE/REAL/FLOAT8 DOUBLE PRECISION Angka floating-point presisi ganda Tidak ada
DOUBLE/REAL/FLOAT8 UNSIGNED DOUBLE PRECISION Angka floating-point presisi ganda Tidak ada
BIT(n) VARBYTE(8) Nilai biner dengan panjang variabel Tidak ada
BINARY(n) VARBYTE(n) Nilai biner dengan panjang variabel Tidak ada
VARBINARY(n) VARBYTE(n) Nilai biner dengan panjang variabel Tidak ada
CHAR(n) VARCHAR(n) Nilai string dengan panjang variabel Tidak ada
VARCHAR(n) VARCHAR(n) Nilai string dengan panjang variabel Tidak ada
TEXT VARCHAR(65535) Nilai string panjang variabel hingga 65.535 karakter Tidak ada
TINYTEXT VARCHAR(255) Nilai string panjang variabel hingga 255 karakter Tidak ada
MEDIUMTEXT VARCHAR(65535) Nilai string panjang variabel hingga 65.535 karakter Tidak ada
LONGTEXT VARCHAR(65535) Nilai string panjang variabel hingga 65.535 karakter Tidak ada
ENUM VARCHAR(1020) Nilai string panjang variabel hingga 1.020 karakter Tidak ada
SET VARCHAR(1020) Nilai string panjang variabel hingga 1.020 karakter Tidak ada
DATE DATE Tanggal kalender (tahun, bulan, hari) Tidak ada
DATETIME TIMESTAMP Tanggal dan waktu (tanpa zona waktu) Tidak ada
TIMESTAMP(p) TIMESTAMP Tanggal dan waktu (tanpa zona waktu) Tidak ada
TIME VARCHAR(18) Nilai string panjang variabel hingga 18 karakter Tidak ada
YEAR VARCHAR(4) Nilai string panjang variabel hingga 4 karakter Tidak ada
JSON SUPER Data atau dokumen semi-terstruktur sebagai nilai Tidak ada

Aurora Postgre SQL

ETLIntegrasi nol untuk Aurora SQL Postgre tidak mendukung tipe data khusus atau tipe data yang dibuat oleh ekstensi.

Tipe data Aurora Postgre SQL Jenis data Amazon Redshift Deskripsi Batasan
array SUPER Data atau dokumen semi-terstruktur sebagai nilai Tidak ada
bigint BIGINT Bilangan bulat delapan byte bertanda Tidak ada
bigserial BIGINT Bilangan bulat delapan byte bertanda Tidak ada
bit varying(n) VARBYTE(n) Nilai biner panjang variabel hingga 16.777.216 byte Tidak ada
bit(n) VARBYTE(n) Nilai biner panjang variabel hingga 16.777.216 byte Tidak ada
sedikit, sedikit bervariasi VARBYTE(16777216) Nilai biner panjang variabel hingga 16.777.216 byte Tidak ada
boolean BOOLEAN Boolean logis (true/false) Tidak ada
bytea VARBYTE(16777216) Nilai biner panjang variabel hingga 16.777.216 byte Tidak ada
arang (n) CHAR(n) Nilai string karakter dengan panjang tetap hingga 65.535 byte Tidak ada
char bervariasi (n) VARCHAR(65535) Nilai string karakter panjang variabel hingga 65.535 karakter Tidak ada
cid BIGINT

Bilangan bulat delapan byte bertanda

Tidak ada
cidr

VARCHAR(19)

Nilai string panjang variabel hingga 19 karakter

date DATE Tanggal kalender (tahun, bulan, hari)

Nilai lebih besar dari 294.276 A.D. tidak didukung

double precision DOUBLE PRECISION Angka floating-point presisi ganda Nilai subnormal tidak sepenuhnya didukung

gtsvektor

VARCHAR(65535)

Nilai string panjang variabel hingga 65.535 karakter

Tidak ada
inet

VARCHAR(19)

Nilai string panjang variabel hingga 19 karakter

Tidak ada
integer INTEGER Bilangan bulat empat byte bertanda Tidak ada

int2vektor

SUPER Data atau dokumen semi-terstruktur sebagai nilai. Tidak ada
interval INTERVAL Durasi waktu Hanya INTERVAL jenis yang menentukan tahun ke bulan atau hari ke kualifikasi kedua yang didukung.
json SUPER Data atau dokumen semi-terstruktur sebagai nilai Tidak ada
jsonb SUPER Data atau dokumen semi-terstruktur sebagai nilai Tidak ada
jsonpath VARCHAR(65535) Nilai string panjang variabel hingga 65.535 karakter Tidak ada

macaddr

VARCHAR(17) Nilai string panjang variabel hingga 17 karakter Tidak ada

macaddr8

VARCHAR(23) Nilai string panjang variabel hingga 23 karakter Tidak ada
money DECIMAL(20,3) Jumlah mata uang Tidak ada
name VARCHAR(64) Nilai string panjang variabel hingga 64 karakter Tidak ada
numeric(p,s) DECIMAL(p, s) Nilai presisi tetap yang ditentukan pengguna
  • Nilai NaN tidak didukung

  • Presisi lebih besar dari 38 dan penskalaan lebih besar dari 37 tidak didukung

  • Skala negatif tidak didukung

oid BIGINT Bilangan bulat delapan byte bertanda Tidak ada
oidvektor SUPER Data atau dokumen semi-terstruktur sebagai nilai. Tidak ada
pg_brin_bloom_summary VARCHAR(65535) Nilai string panjang variabel hingga 65.535 karakter Tidak ada
pg_dependencies VARCHAR(65535) Nilai string panjang variabel hingga 65.535 karakter Tidak ada
pg_lsn VARCHAR(17) Nilai string panjang variabel hingga 17 karakter Tidak ada
pg_mcv_list VARCHAR(65535) Nilai string panjang variabel hingga 65.535 karakter Tidak ada
pg_ndistinct VARCHAR(65535) Nilai string panjang variabel hingga 65.535 karakter Tidak ada
pg_node_pohon VARCHAR(65535) Nilai string panjang variabel hingga 65.535 karakter Tidak ada
pg_snapshot VARCHAR(65535) Nilai string panjang variabel hingga 65.535 karakter Tidak ada
real REAL Angka floating-point presisi tunggal Nilai subnormal tidak sepenuhnya didukung
refkursor VARCHAR(65535) Nilai string panjang variabel hingga 65.535 karakter Tidak ada
smallint SMALLINT Bilangan bulat dua byte bertanda Tidak ada
smallserial SMALLINT Bilangan bulat dua byte bertanda Tidak ada
serial INTEGER Bilangan bulat empat byte bertanda Tidak ada
text VARCHAR(65535) Nilai string panjang variabel hingga 65.535 karakter Tidak ada
masa VARCHAR(23) Nilai string panjang variabel hingga 23 karakter Tidak ada
waktu [(p)] tanpa zona waktu VARCHAR(19) Nilai string panjang variabel hingga 19 karakter Nilai Infinity dan -Infinity tidak didukung
time [(p)] with time zone VARCHAR(22) Nilai string panjang variabel hingga 22 karakter Nilai Infinity dan -Infinity tidak didukung
stempel waktu [(p)] tanpa zona waktu TIMESTAMP Tanggal dan waktu (tanpa zona waktu)
  • Nilai Infinity dan -Infinity tidak didukung

  • Nilai yang lebih besar dari 9999-12-31 tidak didukung

  • Nilai B.C. tidak didukung

timestamp [(p)] with time zone TIMESTAMPTZ Tanggal dan waktu (dengan zona waktu)
  • Nilai Infinity dan -Infinity tidak didukung

  • Nilai yang lebih besar dari 9999-12-31 tidak didukung

  • Nilai B.C. tidak didukung

tsquery VARCHAR(65535) Nilai string panjang variabel hingga 65.535 karakter Tidak ada
tsvektor VARCHAR(65535) Nilai string panjang variabel hingga 65.535 karakter Tidak ada
txid_snapshot VARCHAR(65535) Nilai string panjang variabel hingga 65.535 karakter Tidak ada
uuid VARCHAR(36) Variabel-panjang 36 string karakter Tidak ada
xid BIGINT Bilangan bulat delapan byte bertanda Tidak ada
xid8 DECIMAL(20, 0) Desimal presisi tetap Tidak ada
xml VARCHAR(65535) Nilai string panjang variabel hingga 65.535 karakter Tidak ada

DDLoperasi untuk Aurora Postgre SQL

Amazon Redshift berasal dari PostgreSQL, sehingga berbagi beberapa fitur dengan Aurora Postgre karena arsitektur SQL Postgre yang umum. SQL ETLIntegrasi nol memanfaatkan kesamaan ini untuk merampingkan replikasi data dari Aurora Postgre SQL ke Amazon Redshift, memetakan database berdasarkan nama dan memanfaatkan database, skema, dan struktur tabel bersama.

Pertimbangkan poin-poin berikut saat mengelola integrasi nol Aurora PostgreSQL: ETL

  • Isolasi dikelola di tingkat database.

  • Replikasi terjadi pada tingkat database.

  • Database Aurora Postgre dipetakan ke SQL database Amazon Redshift berdasarkan nama, dengan data mengalir ke database Redshift yang berganti nama sesuai jika aslinya diganti namanya.

Terlepas dari kesamaan mereka, Amazon Redshift dan Aurora SQL Postgre memiliki perbedaan penting. Bagian berikut menguraikan respons sistem Amazon Redshift untuk DDL operasi umum.

Operasi basis data

Tabel berikut menunjukkan respon sistem untuk DDL operasi database.

Operasi DDL Respon sistem Redshift
CREATE DATABASE Tidak ada operasi
DROP DATABASE Amazon Redshift menghapus semua data dalam database Redshift target.
RENAME DATABASE Amazon Redshift menghapus semua data dalam database target asli dan menyinkronkan ulang data dalam database target baru. Jika database baru tidak ada, Anda harus membuatnya secara manual. Untuk petunjuknya, lihat Membuat database tujuan di Amazon Redshift.

Operasi skema

Tabel berikut menunjukkan respon sistem untuk DDL operasi skema.

Operasi DDL Respon sistem Redshift
CREATE SCHEMA Tidak ada operasi
DROP SCHEMA Amazon Redshift menjatuhkan skema asli.
RENAME SCHEMA Amazon Redshift menghapus skema asli lalu menyinkronkan ulang data dalam skema baru.

Operasi tabel

Tabel berikut menunjukkan respon sistem untuk DDL operasi tabel.

Operasi DDL Respon sistem Redshift
CREATE TABLE

Amazon Redshift membuat tabel.

Beberapa operasi menyebabkan pembuatan tabel gagal, seperti membuat tabel tanpa kunci utama atau melakukan partisi deklaratif. Untuk informasi selengkapnya, silakan lihat Keterbatasan Aurora PostgreSQL dan Memecahkan masalah Amazon nol- ETL integrasi dengan Amazon Redshift.

DROP TABLE Amazon Redshift menjatuhkan meja.
TRUNCATE TABLE Amazon Redshift memotong tabel.
ALTER TABLE (RENAME...) Amazon Redshift mengganti nama tabel atau kolom.
ALTER TABLE (SET SCHEMA)

Amazon Redshift menjatuhkan tabel dalam skema asli dan menyinkronkan ulang tabel dalam skema baru.

ALTER TABLE (ADD PRIMARY KEY) Amazon Redshift menambahkan kunci utama dan menyinkronkan ulang tabel.
ALTER TABLE (ADD COLUMN) Amazon Redshift menambahkan kolom ke tabel.
ALTER TABLE (DROP COLUMN)

Amazon Redshift menjatuhkan kolom jika bukan kolom kunci utama. Jika tidak, itu menyinkronkan ulang tabel.

ALTER TABLE (SET LOGGED/UNLOGGED) Jika Anda mengubah tabel menjadi login, Amazon Redshift akan menyinkronkan ulang tabel. Jika Anda mengubah tabel menjadi tidak tercatat, Amazon Redshift akan menjatuhkan tabel.