翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
でETLプロセスを に変換 AWS Glue する AWS Schema Conversion Tool
以下のセクションでは、Python で オペレーションを呼び AWS Glue API出す変換について説明します。詳細については、「 デベロッパーガイド」の「Python のプログラム AWS Glue ETLスクリプト」を参照してください。 AWS Glue
ステップ 1: データベースを作成する
最初のステップは、 を使用して AWS Glue データカタログに新しいデータベースを作成するAWS SDKことですAPI。データカタログに定義したテーブルは、データベースに追加されます。データベースは、 のテーブルを整理するために使用されます AWS Glue。
次の例は、Python API for の create_database
メソッドを示しています AWS Glue。
response = client.create_database( DatabaseInput={ 'Name': '
database_name
’, 'Description': 'description
', 'LocationUri': 'string
', 'Parameters': { 'parameter-name
': 'parameter value
' } } )
Amazon Redshift を使用している場合のデータベース名は次のとおりです。
{redshift_cluster_name}_{redshift_database_name}_{redshift_schema_name}
この例では、Amazon Redshift クラスターのフルネームは次のようになります。
rsdbb03.apq1mpqso.us-west-2.redshift.amazonaws.com
正しい形式のデータベース名の例を以下に示します。この場合は、rsdbb03
のようになります。これは、クラスターエンドポイントのフルネームの最初の部分です。データベースの名前は dev
で、スキーマは ora_glue
です。
rsdbb03_dev_ora_glue
ステップ 2: 接続を作成する
を使用して、データカタログに新しい接続を作成しますAWS SDKAPI。
次の例は、 API用の Python の create_connection
メソッドの使用を示しています AWS Glue。
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
' ] } } )
create_connection
で使用されているパラメータは次のとおりです。
-
Name
(UTF-8 文字列) – 必須。Amazon Redshift では、接続名は次のような形式になります:Redshift_
(例:<Endpoint-name>
_<redshift-database-name>
Redshift_abcde03_dev
) -
Description
(UTF-8 文字列) – 接続の説明。 -
ConnectionType
(UTF-8 文字列) – 必須。接続のタイプ。現在、 JDBC のみがサポートされています。 SFTP はサポートされていません。 -
ConnectionProperties
(dict) – 必須。接続 、URLユーザー名、パスワードなど、このJDBC接続のパラメータとして使用されるキーと値のペアのリスト。 -
PhysicalConnectionRequirements
(dict) - 物理接続の要件。以下の内容が含まれます。-
SubnetId
(UTF-8 文字列) – 接続で使用されるサブネットの ID。 -
SecurityGroupIdList
(list) - 接続で使用されるセキュリティグループ ID リスト。 -
AvailabilityZone
(UTF-8 文字列) – 必須。そのエンドポイントを含むアベイラビリティーゾーン。このパラメータは廃止されました。
-
ステップ 3: AWS Glue クローラーの作成
次に、 AWS Glue カタログに入力する AWS Glue クローラーを作成します。詳細については、『AWS Glue デベロッパーガイド』の「クローラーを使用したデータのカタログ化」を参照してください。
クローラーを追加する最初のステップは、 を使用してデータカタログに新しいデータベースを作成することですAWS SDKAPI。開始する前にまず、delete_crawler
オペレーションを使用して、以前のバージョンをすべて削除する必要があります。
クローラーを作成するときは、いくつかの考慮事項が適用されます。
-
クローラー名には、
形式を使用します (例:<redshift_node_name>
_<redshift_database_name>
_<redshift_shema_name>
abcde03_dev_ora_glue
)。 -
既に存在する IAMロールを使用します。IAM ロールの作成の詳細については、「 ユーザーガイド」のIAM「ロールの作成IAM」を参照してください。
-
前のステップで作成したデータベースの名前を使用します。
-
ConnectionName
パラメータ (必須) を使用します。 -
path
パラメータには、JDBCターゲットへのパスを使用します。例:dev/ora_glue/%
次の例では、既存のクローラーを削除し、Python API for を使用して新しいクローラーを作成します 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
' )
1 つ以上のデータストアに接続してデータ構造を決定し、データカタログにテーブルを書き込むクローラーを作成して、実行します。スケジュールに基づいてクローラーを実行することができます (以下参照)。
response = client.start_crawler( Name='string' )
この例では、Amazon Redshift をターゲットとして使用しています。Amazon Redshift データ型は、クローラーの実行後に次の方法で AWS Glue データ型にマッピングされます。
Amazon Redshift のデータ型 | AWS Glue データ型 |
smallint | smallint |
integer | int |
bigint | bigint |
decimal | decimal(18,0) |
decimal(p,s) | decimal(p,s) |
real | double |
double precision | double |
boolean | boolean |
char | string |
varchar | string |
varchar(n) | string |
date | date |
timestamp | timestamp |
timestamptz | timestamp |