Hikaru's notes

A collection of notes and resources

View the Project on GitHub HikaruMizoe/notes

# Glue Data Catalogからデータを取得する
dynamic_frame = glueContext.create_dynamic_frame.from_catalog(
    database="my_database",
    table_name="my_table"
)

# DynamicFrameをS3にParquet形式で書き出す
glueContext.write_dynamic_frame.from_options(
    frame=dynamic_frame,
    connection_type="s3",
    connection_options={"path": "s3://my_bucket/output/"},
    format="parquet"
)

# Glue Data Catalogから直接データ取得する
glueContext.write_dynamic_frame.from_catalog(
    database="my_database",
    table_name="my_table",
    connection_options={"path": "s3://my_bucket/output/"},
    format="parquet"
)
-- athenaからParquet形式でS3にデータをエクスポート
UNLOAD 's3://my-bucket/output/'
SELECT * FROM customer_data
WHERE age > 30
WITH (format = 'PARQUET');
DMS のレプリケーションインスタンスは、ターゲットリージョン(データが転送される側)に作成するのが一般的なベストプラクティスである。このケースでは、ターゲットリージョンは us-west-1 であるため、us-west-1 リージョンでレプリケーションインスタンスを作成する。
異なるアカウント間でのデータレプリケーションを行うには、必要な権限をクロスアカウントで設定する必要がある。ソースアカウント(us-east-1)において、DMS レプリケーションインスタンスが RDS にアクセスできるよう、IAM ロールで適切なポリシーを設定する。ターゲットアカウント(us-west-1)にも同様のアクセス権限を付与する。
また、us-east-1 の RDS インスタンスと us-west-1 の DMS レプリケーションインスタンスが通信できるように、必要なネットワーク設定を行う必要がある。