Mengonversi ETL proses ke dalam AWS GlueAWS Schema Conversion Tool - AWS Schema Conversion Tool

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

Mengonversi ETL proses ke dalam AWS GlueAWS Schema Conversion Tool

Di bagian berikut, Anda dapat menemukan deskripsi konversi yang memanggil AWS Glue API operasi dengan Python. Untuk informasi selengkapnya, lihat AWS Glue ETLSkrip program dengan Python di Panduan AWS Glue Pengembang.

Langkah 1: Buat database

Langkah pertama adalah membuat database baru dalam Katalog AWS Glue Data dengan menggunakan AWS SDKAPI. Saat Anda menentukan tabel di Katalog Data, Anda menambahkannya ke database. Database digunakan untuk mengatur tabel di AWS Glue.

Contoh berikut menunjukkan create_database metode API AWS Glue Python untuk.

response = client.create_database( DatabaseInput={ 'Name': 'database_name’, 'Description': 'description', 'LocationUri': 'string', 'Parameters': { 'parameter-name': 'parameter value' } } )

Jika Anda menggunakan Amazon Redshift, nama database dibentuk sebagai berikut.

{redshift_cluster_name}_{redshift_database_name}_{redshift_schema_name}

Nama lengkap cluster Amazon Redshift untuk contoh ini adalah sebagai berikut.

rsdbb03.apq1mpqso.us-west-2.redshift.amazonaws.com

Berikut ini menunjukkan contoh nama database yang terbentuk dengan baik. Dalam hal ini rsdbb03 adalah nama, yang merupakan bagian pertama dari nama lengkap titik akhir cluster. Database diberi nama dev dan skema adalahora_glue.

rsdbb03_dev_ora_glue

Langkah 2: Buat koneksi

Buat koneksi baru dalam Katalog Data dengan menggunakan AWS SDKAPI.

Contoh berikut menunjukkan menggunakan create_connectionmetode API AWS Glue Python untuk.

response = client.create_connection( ConnectionInput={ 'Name': 'Redshift_abcde03.aabbcc112233.us-west-2.redshift.amazonaws.com_dev', 'Description': 'Created from SCT', 'ConnectionType': 'JDBC', 'ConnectionProperties': { 'JDBC_CONNECTION_URL': 'jdbc:redshift://aabbcc03.aabbcc112233.us-west-2.redshift.amazonaws.com:5439/dev', 'USERNAME': 'user_name', 'PASSWORD': 'password' }, 'PhysicalConnectionRequirements': { 'AvailabilityZone': 'us-west-2c', 'SubnetId': 'subnet-a1b23c45', 'SecurityGroupIdList': [ 'sg-000a2b3c', 'sg-1a230b4c', 'sg-aba12c3d', 'sg-1abb2345' ] } } )

Parameter yang digunakan create_connection adalah sebagai berikut:

  • Name(UTF-8 string) — diperlukan. Untuk Amazon Redshift, nama koneksi dibentuk sebagai berikut:Redshift_<Endpoint-name>_<redshift-database-name>, misalnya: Redshift_abcde03_dev

  • Description(UTF-8 string) — Deskripsi Anda tentang koneksi.

  • ConnectionType(UTF-8 string) - Diperlukan. Jenis koneksi. Saat ini, JDBC hanya didukung; SFTP tidak didukung.

  • ConnectionProperties(dict) — Diperlukan. Daftar pasangan kunci-nilai yang digunakan sebagai parameter untuk koneksi ini, termasuk JDBC koneksiURL, nama pengguna, dan kata sandi.

  • PhysicalConnectionRequirements(dict) — Persyaratan koneksi fisik, yang meliputi:

    • SubnetId(UTF-8 string) — ID subnet yang digunakan oleh koneksi.

    • SecurityGroupIdList(list) — Daftar ID grup keamanan yang digunakan oleh koneksi.

    • AvailabilityZone(UTF-8 string) - Diperlukan. Availability Zone yang berisi endpoint. Parameter ini tidak lagi digunakan.

Langkah 3: Buat AWS Glue crawler

Selanjutnya, Anda membuat AWS Glue crawler untuk mengisi katalog. AWS Glue Untuk informasi selengkapnya, lihat Katalogisasi tabel dengan crawler di Panduan Pengembang.AWS Glue

Langkah pertama dalam menambahkan crawler adalah membuat database baru dalam Katalog Data dengan menggunakan. AWS SDKAPI Sebelum Anda mulai, pastikan untuk terlebih dahulu menghapus versi sebelumnya dengan menggunakan delete_crawler operasi.

Saat Anda membuat crawler, beberapa pertimbangan berlaku:

  • Untuk nama crawler, gunakan format<redshift_node_name>_<redshift_database_name>_<redshift_shema_name>, misalnya: abcde03_dev_ora_glue

  • Gunakan IAM peran yang sudah ada. Untuk informasi selengkapnya tentang membuat IAM peran, lihat Membuat IAM peran di Panduan IAM Pengguna.

  • Gunakan nama database yang Anda buat di langkah sebelumnya.

  • Gunakan ConnectionName parameter, yang diperlukan.

  • Untuk path parameter, gunakan jalur ke JDBC target, misalnya: dev/ora_glue/%

Contoh berikut menghapus crawler yang ada dan kemudian membuat yang baru dengan menggunakan Python untuk. API AWS Glue

response = client.delete_crawler( Name='crawler_name' ) response = client.create_crawler( Name='crawler_name', Role= ‘IAM_role’, DatabaseName='database_name’, Description='string', Targets={ 'S3Targets': [ { 'Path': 'string', 'Exclusions': [ 'string', ] }, ], 'JdbcTargets': [ { 'ConnectionName': ‘ConnectionName’, 'Path': ‘Include_path’, 'Exclusions': [ 'string', ] }, ] }, Schedule='string', Classifiers=[ 'string', ], TablePrefix='string', SchemaChangePolicy={ 'UpdateBehavior': 'LOG'|'UPDATE_IN_DATABASE', 'DeleteBehavior': 'LOG'|'DELETE_FROM_DATABASE'|'DEPRECATE_IN_DATABASE' }, Configuration='string' )

Buat dan kemudian jalankan crawler yang menghubungkan ke satu atau beberapa penyimpanan data, menentukan struktur data, dan menulis tabel ke dalam Katalog Data. Anda dapat menjalankan crawler sesuai jadwal, seperti yang ditunjukkan berikut.

response = client.start_crawler( Name='string' )

Contoh ini menggunakan Amazon Redshift sebagai target. Jenis data Amazon Redshift dipetakan ke tipe AWS Glue data dengan cara berikut setelah crawler berjalan.

Jenis data Amazon Redshift AWS Glue tipe data
smallint smallint
integer int
bigint bigint
desimal desimal (18,0)
desimal (p, s) desimal (p, s)
real double
double precision double
boolean boolean
char string
varchar string
varchar (n) string
date tanggal
timestamp timestamp
timestamptz timestamp