Amazon S3 への DB スナップショットデータのエクスポート
DB スナップショットデータを Amazon S3 バケットにエクスポートできます。データをエクスポートすると、Amazon Athena や Amazon Redshift Spectrum などのツールを使用して、エクスポートしたデータを直接分析できます。エクスポートプロセスはバックグラウンドで実行されるため、アクティブな DB インスタンスのパフォーマンスには影響しません。
DB スナップショットをエクスポートすると、Amazon RDS はスナップショットからデータを抽出してアカウントの Amazon S3 バケットに保存します。データは Apache Parquet 形式で一貫して圧縮され、保存されます。
手動スナップショット、自動システムスナップショット、AWS Backup サービスで作成されたスナップショットなど、すべてのタイプの DB および DB クラスタースナップショットをエクスポートできます。デフォルトでは、スナップショット内のすべてのデータがエクスポートされます。ただし、特定のデータベース、スキーマ、またはテーブルのセットをエクスポートすることもできます。
磁気ストレージを使用する DB インスタンスからのスナップショットのエクスポートはサポートされていません。
Amazon RDS はすべての AWS リージョンのスナップショットのエクスポートに対応していますが、以下を除きます。
-
AWS GovCloud (米国東部)
-
AWS GovCloud (US-West)
-
中国
次の表は、スナップショットデータを Amazon S3 にエクスポートするためにサポートされているエンジンバージョンの一覧です。
MariaDB | MySQL | PostgreSQL |
---|---|---|
10.3 10.2.12 以上 10.1.26 以上 10.0.32 以上 |
8.0.13 以上 5.7.24 以上 5.6.40 以上 |
11.2 以上 10.7 以上 9.6.6–9.6.9, 9.6.12 以上 9.5.16 以上 |
Amazon RDS でサポートされているエンジンバージョンの詳細なリストについては、以下を参照してください。
トピック
スナップショットデータのエクスポートの概要
次の手順では、DB スナップショットデータを Amazon S3 バケットにエクスポートする方法の概要を示します。詳細については、次のセクションを参照してください。
DB スナップショットデータを Amazon S3 にエクスポートするには
-
エクスポートするスナップショットを特定します。
既存の自動スナップショットまたは手動スナップショットを使用するか、DB インスタンスの手動スナップショットを作成します。
-
Amazon S3 バケットへのアクセスを設定します。
バケットとは、Amazon S3 オブジェクトまたはファイルのコンテナです。バケットにアクセスするための情報を指定するには、次の手順に従います。
-
スナップショットのエクスポート先の S3 バケットを特定します。S3 バケットは、スナップショットと同じ AWS リージョンに存在している必要があります。詳細については、「エクスポート先の Amazon S3 バケットの特定」を参照してください。
-
サーバー側の暗号化用の AWS Key Management Service (AWS KMS) カスタマーマスターキー (CMK) を作成します。AWS KMS CMK は、エクスポートデータを S3 に書き込むときに AWS KMS サーバー側の暗号化を設定するために、スナップショットエクスポートタスクによって使用されます。詳細については、「Amazon RDS リソースの暗号化」を参照してください。
-
スナップショットエクスポートタスクに対して S3 バケットへのアクセスを許可する AWS Identity and Access Management (IAM) ロールを作成します。詳細については、「IAM ロールを使用した Amazon S3 バケットへのアクセスの提供」を参照してください。
-
-
コンソールまたは
start-export-task
CLI コマンドを使用して、スナップショットを Amazon S3 にエクスポートします。詳細については、「Amazon S3 バケットへのスナップショットのエクスポート」を参照してください。 -
Amazon S3 バケット内のエクスポートされたデータにアクセスするには、Amazon Simple Storage Service コンソールユーザーガイドの「オブジェクトのアップロード、ダウンロード、管理」を参照してください。
Amazon S3 バケットへのアクセスを設定する
DB スナップショットデータを Amazon S3 ファイルにエクスポートするには、まず Amazon S3 バケットにアクセスするためのアクセス許可をスナップショットに付与します。次に、Amazon S3 バケットへの書き込みを Amazon RDS サービスに許可するための IAM ロールを作成します。
エクスポート先の Amazon S3 バケットの特定
DB スナップショットをエクスポートする先の Amazon S3 バケットを特定します。既存の S3 バケットを使用するか、新しい S3 バケットを作成します。
エクスポート先の S3 バケットは、スナップショットと同じ AWS リージョンに存在している必要があります。
Amazon S3 バケットの操作の詳細については、Amazon Simple Storage Service コンソールユーザーガイドで以下のトピックを参照してください。
IAM ロールを使用した Amazon S3 バケットへのアクセスの提供
DB スナップショットデータを Amazon S3 にエクスポートする前に、スナップショットエクスポートタスクに対して Amazon S3 バケットへの書き込みアクセス権限を付与します。
これを行うには、バケットへのアクセスを提供する IAM ポリシーを作成します。次に IAM ロールを作成して、このロールにポリシーをアタッチします。後で IAM ロールをスナップショットエクスポートタスクに割り当てます。
AWS マネジメントコンソール を使用してスナップショットをエクスポートする場合は、スナップショットをエクスポートするときに IAM ポリシーとロールを自動的に作成するように選択できます。手順については、「Amazon S3 バケットへのスナップショットのエクスポート」を参照してください。
Amazon S3 へのアクセスを DB スナップショットタスクに許可するには
-
IAM ポリシーを作成します。このポリシーでバケットおよびオブジェクトへのアクセス許可を提供することにより、スナップショットエクスポートタスクから Amazon S3 にアクセスできるようにします。
Amazon RDS から S3 バケットへのファイル転送を許可するために、以下の必須アクションをポリシーに含めます。
-
s3:PutObject*
-
s3:GetObject*
-
s3:ListBucket
-
s3:DeleteObject*
-
s3:GetBucketLocation
S3 バケットとバケット内のオブジェクトを識別するために、以下のリソースをポリシーに含めます。次のリソースのリストは、Amazon S3 にアクセスするための Amazon リソースネーム (ARN) 形式を示しています。
-
arn:aws:s3:::
your-s3-bucket
-
arn:aws:s3:::
your-s3-bucket
/*
Amazon RDS の IAM ポリシーの作成の詳細については、「IAM データベースアクセス用の IAM ポリシーの作成と使用」を参照してください。IAM ユーザーガイドの「チュートリアル: はじめてのカスタマー管理ポリシーの作成とアタッチ」も参照してください。
次の AWS CLI コマンドでは、これらのオプションを指定して、
ExportPolicy
という名前の IAM ポリシーを作成します。このポリシーでは、your-s3-bucket
という名前のバケットへのアクセス権が付与されます。注記 ポリシーを作成したら、ポリシーの ARN を書き留めます。ポリシーを IAM ロールにアタッチする場合、後続のステップで ARN が必要です。
aws iam create-policy --policy-name ExportPolicy --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject*", "s3:GetObject*", "s3:DeleteObject*" ], "Resource": [ "arn:aws:s3:::
your-s3-bucket
", "arn:aws:s3:::your-s3-bucket
/*" ] } ] }' -
-
IAM ロールを作成します。これにより、Amazon RDS は、ユーザーに代わって Amazon S3 バケットにアクセスするための IAM ロールを引き受けることができます。詳細については、IAM ユーザーガイドの「IAM ユーザーにアクセス許可を委任するロールの作成」を参照してください。
次の例は、AWS CLI コマンドを使用して、
rds-s3-export-role
という名前のロールを作成する方法を示しています。aws iam create-role --role-name rds-s3-export-role --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "export.rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'
-
作成した IAM ポリシーを、作成した IAM ロールにアタッチします。
次の AWS CLI コマンドでは、先ほど作成したポリシーを
rds-s3-export-role
という名前のロールにアタッチします。
は、以前のステップで書き留めたポリシー ARN に置き換えます。your-policy-arn
aws iam attach-role-policy --policy-arn
your-policy-arn
--role-name rds-s3-export-role
Amazon S3 バケットへのスナップショットのエクスポート
1 つのアカウントにつき、最大 5 つの DB スナップショットエクスポートタスクを同時に実行できます。
データベースのタイプとサイズによっては、RDS スナップショットのエクスポートに時間がかかることがあります。エクスポートタスクでは、Amazon S3 にデータを抽出する前に、データベース全体を復元およびスケールします。このフェーズでのタスクの進捗状況は、「Starting (開始中)」と表示されます。タスクが S3 へのデータのエクスポートに切り替わると、進捗状況は [進行中] と表示されます。
エクスポートが完了するまでにかかる時間は、データベースに格納されているデータによって異なります。たとえば、数値のプライマリキーまたはインデックス列が適切に分散されているテーブルは、最も速くエクスポートされます。テーブルにパーティション化に適した列が含まれていない場合や文字列ベースの列にインデックスが 1 つしかない場合、エクスポートには低速なシングルスレッド処理が使用されるため、処理に時間がかかります。
DB スナップショットは、AWS マネジメントコンソール、AWS CLI、または RDS API を使用して Amazon S3 にエクスポートできます。
[Amazon S3 へのエクスポート] コンソールオプションは、Amazon S3 にエクスポートできるスナップショットに対してのみ表示されます。スナップショットは、次の理由により、エクスポートに使用できない場合があります。
-
DB エンジンが S3 エクスポートでサポートされていない。
-
DB インスタンスのバージョンが S3 エクスポートでサポートされていない。
-
スナップショットを作成した AWS リージョンで S3 エクスポートがサポートされていない。
DB スナップショットをエクスポートするには
-
AWS マネジメントコンソールにサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
ナビゲーションペインで、[Snapshots] を選択します。
-
タブから、エクスポートするスナップショットのタイプを選択します。
-
スナップショットのリストで、エクスポートするスナップショットを選択します。
-
[Actions] で、[Export to Amazon S3] を選択します。
[Export to Amazon S3] ウィンドウが表示されます。
-
[Export identifier] に、エクスポートタスクを識別する名前を入力します。この値は、S3 バケットで作成されるファイルの名前としても使用されます。
-
エクスポートするデータの量を選択します。
-
[All] を選択すると、スナップショット内のすべてのデータがエクスポートされます。
-
[Partial] を選択すると、スナップショットの特定部分がエクスポートされます。スナップショットのどの部分をエクスポートするかを指定するには、[Identifiers] に 1 つ以上のテーブルを入力します。
-
-
[S3 bucket] で、エクスポート先のバケットを選択します。
エクスポートされたデータを S3 バケット内のフォルダパスに割り当てるには、[S3 prefix] にオプションのパスを入力します。
-
IAM ロール の場合は、選択した S3 バケットへの書き込みアクセスを許可するロールを選択するか、新しいロールを作成します。
-
「IAM ロールを使用した Amazon S3 バケットへのアクセスの提供」の手順に従ってロールを作成した場合は、そのロールを選択します。
-
選択した S3 バケットへの書き込みアクセスを許可するロールを作成しなかった場合は、[Create a new role (新しいロールを作成する)] を選択してロールを自動的に作成します。次に、[IAM role name (IAM ロール名)] にロールの名前を入力します。
-
-
[Master key] に、エクスポートしたデータの暗号化に使用するキーの ARN を入力します。
-
[Export to Amazon S3] を選択します。
AWS CLI を使用して DB スナップショットを Amazon S3 にエクスポートするには、以下の必須オプションを指定して start-export-task コマンドを使用します。
-
--export-task-identifier
-
--source-arn
-
--s3-bucket-name
-
--iam-role-arn
-
--kms-key-id
以下の例では、スナップショットエクスポートタスク (my_snapshot_export
) により、スナップショットを my_export_bucket
という名前の S3 バケットにエクスポートします。
Linux、macOS、Unix の場合:
aws rds start-export-task \ --export-task-identifier
my_snapshot_export
\ --source-arn arn:aws:rds:AWS_Region
:123456789012:snapshot:snapshot_name
\ --s3-bucket-namemy_export_bucket
\ --iam-role-arniam_role
\ --kms-key-idmaster_key
Windows の場合:
aws rds start-export-task ^ --export-task-identifier
my_snapshot_export
^ --source-arn arn:aws:rds:AWS_Region
:123456789012:snapshot:snapshot_name
^ --s3-bucket-namemy_export_bucket
^ --iam-role-arniam_role
^ --kms-key-idmaster_key
サンプル出力を次に示します。
{ "Status": "STARTING", "IamRoleArn": "iam_role", "ExportTime": "2019-08-12T01:23:53.109Z", "S3Bucket": "my_export_bucket", "PercentProgress": 0, "KmsKeyId": "master_key", "ExportTaskIdentifier": "my_snapshot_export", "TotalExtractedDataInGB": 0, "TaskStartTime": "2019-11-13T19:46:00.173Z", "SourceArn": "arn:aws:rds:AWS_Region:123456789012:snapshot:snapshot_name" }
スナップショットのエクスポート先である S3 バケット内のフォルダパスを指定するには、start-export-task コマンドに --s3-prefix
オプションを含めます。
Amazon RDS API を使用して DB スナップショットを Amazon S3 にエクスポートするには、以下の必須パラメータを指定して StartExportTask オペレーションを使用します。
-
ExportTaskIdentifier
-
SourceArn
-
S3BucketName
-
IamRoleArn
-
KmsKeyId
スナップショットのエクスポートのモニタリング
DB スナップショットのエクスポートは、AWS マネジメントコンソール、AWS CLI、または RDS API を使用してモニタリングできます。
DB スナップショットのエクスポートをモニタリングするには
-
AWS マネジメントコンソールにサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
ナビゲーションペインで、[Snapshots] を選択します。
-
スナップショットのエクスポート一覧を表示するには、[Exports in Amazon S3] タブを選択します。
-
特定のスナップショットのエクスポートに関する情報を表示するには、エクスポートタスクを選択します。
AWS CLI を使用して DB スナップショットのエクスポートをモニタリングするには、describe-export-tasks コマンドを使用します。
次の例は、すべてのスナップショットのエクスポートに関する最新情報を表示する方法を示しています。
aws rds describe-export-tasks { "ExportTasks": [ { "Status": "CANCELED", "TaskEndTime": "2019-11-01T17:36:46.961Z", "S3Prefix": "something", "ExportTime": "2019-10-24T20:23:48.364Z", "S3Bucket": "examplebucket", "PercentProgress": 0, "KmsKeyId": "arn:aws:kms:
AWS_Region
:123456789012:key/K7MDENG/bPxRfiCYEXAMPLEKEY", "ExportTaskIdentifier": "anewtest", "IamRoleArn": "arn:aws:iam::123456789012:role/export-to-s3", "TotalExtractedDataInGB": 0, "TaskStartTime": "2019-10-25T19:10:58.885Z", "SourceArn": "arn:aws:rds:AWS_Region
:123456789012:snapshot:parameter-groups-test" }, { "Status": "COMPLETE", "TaskEndTime": "2019-10-31T21:37:28.312Z", "WarningMessage": "{\"skippedTables\":[],\"skippedObjectives\":[],\"general\":[{\"reason\":\"FAILED_TO_EXTRACT_TABLES_LIST_FOR_DATABASE\"}]}", "S3Prefix": "", "ExportTime": "2019-10-31T06:44:53.452Z", "S3Bucket": "examplebucket1", "PercentProgress": 100, "KmsKeyId": "arn:aws:kms:AWS_Region
:123456789012:key/2Zp9Utk/h3yCo8nvbEXAMPLEKEY", "ExportTaskIdentifier": "thursday-events-test", "IamRoleArn": "arn:aws:iam::123456789012:role/export-to-s3", "TotalExtractedDataInGB": 263, "TaskStartTime": "2019-10-31T20:58:06.998Z", "SourceArn": "arn:aws:rds:AWS_Region
:123456789012:snapshot:rds:example-1-2019-10-31-06-44" }, { "Status": "FAILED", "TaskEndTime": "2019-10-31T02:12:36.409Z", "FailureCause": "The S3 bucket edgcuc-export isn't located in the current AWS Region. Please, review your S3 bucket name and retry the export.", "S3Prefix": "", "ExportTime": "2019-10-30T06:45:04.526Z", "S3Bucket": "examplebucket2", "PercentProgress": 0, "KmsKeyId": "arn:aws:kms:AWS_Region
:123456789012:key/2Zp9Utk/h3yCo8nvbEXAMPLEKEY", "ExportTaskIdentifier": "wednesday-afternoon-test", "IamRoleArn": "arn:aws:iam::123456789012:role/export-to-s3", "TotalExtractedDataInGB": 0, "TaskStartTime": "2019-10-30T22:43:40.034Z", "SourceArn": "arn:aws:rds:AWS_Region
:123456789012:snapshot:rds:example-1-2019-10-30-06-45" } ] }
特定のスナップショットのエクスポートに関する情報を表示するには、describe-export-tasks
コマンドに --export-task-identifier
オプションを含めます。出力をフィルタリングするには、--Filters
オプションを含めます。その他のオプションについては、 describe-export-tasks コマンドを参照してください。
Amazon RDS API を使用して DB スナップショットのエクスポートに関する情報を表示するには、DescribeExportTasks オペレーションを使用します。
エクスポートワークフローの完了を追跡したり、別のワークフローをトリガーしたりするには、Amazon Simple Notification Service トピックをサブスクライブします。Amazon SNS の詳細については、「Amazon RDS イベント通知の使用」を参照してください。
スナップショットのエクスポートタスクのキャンセル
DB スナップショットのエクスポートタスクをキャンセルするには、AWS マネジメントコンソール、AWS CLI、または RDS API を使用できます。
スナップショットのエクスポートタスクをキャンセルしても、Amazon S3 にエクスポート済みのデータは削除されません。コンソールを使用してデータを削除する方法については、「S3 バケットからオブジェクトを削除する方法」を参照してください。 CLI を使用してデータを削除するには、delete-object コマンドを使用します。
スナップショットのエクスポートタスクをキャンセルするには
-
AWS マネジメントコンソールにサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
ナビゲーションペインで、[Snapshots] を選択します。
-
[Exports in Amazon S3] タブを選択します。
-
キャンセルするスナップショットのエクスポートタスクを選択します。
-
[Cancel] を選択します。
-
確認ページで [Cancel export task] を選択します。
AWS CLI を使用してスナップショットのエクスポートタスクをキャンセルするには、cancel-export-task コマンドを使用します。このコマンドには、--export-task-identifier
オプションが必要です。
aws rds cancel-export-task --export-task-identifier my_export { "Status": "CANCELING", "S3Prefix": "", "ExportTime": "2019-08-12T01:23:53.109Z", "S3Bucket": "examplebucket", "PercentProgress": 0, "KmsKeyId": "arn:aws:kms:
AWS_Region
:123456789012:key/K7MDENG/bPxRfiCYEXAMPLEKEY", "ExportTaskIdentifier": "my_export", "IamRoleArn": "arn:aws:iam::123456789012:role/export-to-s3", "TotalExtractedDataInGB": 0, "TaskStartTime": "2019-11-13T19:46:00.173Z", "SourceArn": "arn:aws:rds:AWS_Region
:123456789012:snapshot:export-example-1" }
Amazon RDS API を使用してスナップショットのエクスポートタスクをキャンセルするには、ExportTaskIdentifier
パラメータを指定して CancelExportTask オペレーションを使用します。
PostgreSQL のアクセス許可エラーのトラブルシューティング
PostgreSQL データベースを Amazon S3 にエクスポートするときに、特定のテーブルがスキップされたことを示す PERMISSIONS_DO_NOT_EXIST
エラーが表示される場合があります。これは、通常、DB インスタンスの作成時に指定するスーパーユーザーで、これらのテーブルにアクセスするアクセス許可がないことが原因です。
このエラーを修正するには、次のコマンドを実行します。
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA
schema_name
TOsuperuser_name
スーパーユーザー権限の詳細については、「マスターユーザーアカウント特権」を参照してください。
Amazon S3 バケットにエクスポートする際のデータ変換
DB スナップショットを Amazon S3 バケットにエクスポートすると、Amazon RDS はデータを Parquet 形式に変換してエクスポートし、保存します。Parquet の詳細については、Apache Parquet
Parquet は、すべてのデータを次のプリミティブ型の 1 つとして格納します。
-
BOOLEAN
-
INT32
-
INT64
-
INT96
-
FLOAT
-
DOUBLE
-
BYTE_ARRAY – バイナリとも呼ばれる可変長のバイト配列
-
FIXED_LEN_BYTE_ARRAY – 値が一定のサイズを持つ場合に使用される固定長のバイト配列
Parquet のデータ型はほとんど存在せず、この形式の読み書きに伴う複雑さが軽減されるようになっています。Parquet は、プリミティブ型を拡張するための論理型を提供します。論理型は、LogicalType
メタデータフィールドにデータを持つ注釈として実装されます。論理型の注釈は、プリミティブ型の解釈方法を示します。
STRING
論理型が BYTE_ARRAY
型に注釈を付けた場合は、このバイト配列を UTF-8 でエンコードされた文字列として解釈する必要があることを示します。エクスポートタスクが完了すると、Amazon RDS は文字列変換が発生したかどうかを通知します。エクスポートされた基になるデータは、常にソースのデータと同じです。ただし、UTF-8 のエンコーディングに伴う差異により、Athena
などのツールで読み取ると、一部の文字はソースと異なるように表示される場合があります。
詳細については、Parquet ドキュメントの「Parquet Logical Type Definitions
-
一部の文字は、データベーステーブルの列名でサポートされていません。列名に次の文字が含まれるテーブルは、エクスポート時にスキップされます。
,;{}()\n\t=
-
データに 500 MB に近い値またはより大きい値が含まれている場合、エクスポートは失敗します。
-
データベース、スキーマ、またはテーブルの名前にスペースが含まれている場合、部分的なエクスポートはサポートされません。ただし、DB スナップショット全体をエクスポートすることはできます。
MySQL およびMariaDB データ型の Parquet へのマッピング
次の表は、データが変換されて Amazon S3 にエクスポートされる際の MySQL および MariaDB データ型から Parquet データ型へのマッピングを示しています。
ソースデータ型 | Parquet プリミティブ 型 | 論理型の注釈 | 変換に関するメモ |
---|---|---|---|
数値データ型 | |||
BIGINT | INT64 | ||
BIGINT UNSIGNED | FIXED_LEN_BYTE_ARRAY(9) | DECIMAL(20,0) | Parquet は符号付き型のみをサポートしているため、マッピングは BIGINT_UNSIGNED 型を格納するために追加のバイト (8 プラス 1) を必要とします。 |
BIT | BYTE_ARRAY | ||
DECIMAL | INT32 | DECIMAL(p,s) | ソース値が 231 未満の場合は、INT32 として格納されます。 |
INT64 | DECIMAL(p,s) | ソース値が 231 以上で 263 未満の場合は、INT64 として格納されます。 | |
FIXED_LEN_BYTE_ARRAY(N) | DECIMAL(p,s) | ソース値が 263 以上の場合は、FIXED_LEN_BYTE_ARRAY(N) として格納されます。 | |
BYTE_ARRAY | STRING | Parquet は、38 を超える 10 進精度をサポートしていません。10 進値は、BYTE_ARRAY 型の文字列に変換され、UTF8 としてエンコードされます。 | |
DOUBLE | DOUBLE | ||
FLOAT | DOUBLE | ||
INT | INT32 | ||
INT UNSIGNED | INT64 | ||
MEDIUMINT | INT32 | ||
MEDIUMINT UNSIGNED | INT64 | ||
NUMERIC | INT32 | DECIMAL(p,s) |
ソース値が 231 未満の場合は、INT32 として格納されます。 |
INT64 | DECIMAL(p,s) | ソース値が 231 以上で 263 未満の場合は、INT64 として格納されます。 | |
FIXED_LEN_ARRAY(N) | DECIMAL(p,s) | ソース値が 263 以上の場合は、FIXED_LEN_BYTE_ARRAY(N) として格納されます。 | |
BYTE_ARRAY | STRING | Parquet は、38 を超える数値精度をサポートしていません。この数値は、BYTE_ARRAY 型の文字列に変換され、UTF8 としてエンコードされます。 | |
SMALLINT | INT32 | ||
SMALLINT UNSIGNED | INT32 | ||
TINYINT | INT32 | ||
TINYINT UNSIGNED | INT32 | ||
文字列データ型 | |||
BINARY | BYTE_ARRAY | ||
BLOB | BYTE_ARRAY | ||
CHAR | BYTE_ARRAY | ||
ENUM | BYTE_ARRAY | STRING | |
LINESTRING | BYTE_ARRAY | ||
LONGBLOB | BYTE_ARRAY | ||
LONGTEXT | BYTE_ARRAY | STRING | |
MEDIUMBLOB | BYTE_ARRAY | ||
MEDIUMTEXT | BYTE_ARRAY | STRING | |
MULTILINESTRING | BYTE_ARRAY | ||
SET | BYTE_ARRAY | STRING | |
TEXT | BYTE_ARRAY | STRING | |
TINYBLOB | BYTE_ARRAY | ||
TINYTEXT | BYTE_ARRAY | STRING | |
VARBINARY | BYTE_ARRAY | ||
VARCHAR | BYTE_ARRAY | STRING | |
日付と時刻のデータ型 | |||
DATE | BYTE_ARRAY | STRING | 日付は BYTE_ARRAY 型の文字列に変換され、UTF8 としてエンコードされます。 |
DATETIME | INT64 | TIMESTAMP_MICROS | |
TIME | BYTE_ARRAY | STRING | TIME 型は BYTE_ARRAY の文字列に変換され、UTF8 としてエンコードされます。 |
TIMESTAMP | INT64 | TIMESTAMP_MICROS | |
YEAR | INT32 | ||
ジオメトリデータ型 | |||
GEOMETRY | BYTE_ARRAY | ||
GEOMETRYCOLLECTION | BYTE_ARRAY | ||
MULTIPOINT | BYTE_ARRAY | ||
MULTIPOLYGON | BYTE_ARRAY | ||
POINT | BYTE_ARRAY | ||
POLYGON | BYTE_ARRAY | ||
JSON データ型 | |||
JSON | BYTE_ARRAY | STRING |
PostgreSQL データ型の Parquet へのマッピング
次の表は、データが変換されて Amazon S3 にエクスポートされる際の PostgreSQL データ型から Parquet データ型へのマッピングを示しています。
PostgreSQL のデータ型 | Parquet プリミティブ 型 | 論理型の注釈 | マッピングに関するメモ |
---|---|---|---|
数値データ型 | |||
BIGINT | INT64 | ||
BIGSERIAL | INT64 | ||
DECIMAL | BYTE_ARRAY | STRING | DECIMAL 型は BYTE_ARRAY 型の文字列に変換され、UTF8 としてエンコードされます。
この変換は、データ精度や、数値ではないデータ値 (NaN) に伴う複雑さを回避するためのものです。 |
DOUBLE PRECISION | DOUBLE | ||
INTEGER | INT32 | ||
MONEY | BYTE_ARRAY | STRING | |
REAL | FLOAT | ||
SERIAL | INT32 | ||
SMALLINT | INT32 | INT_16 | |
SMALLSERIAL | INT32 | INT_16 | |
文字列および関連データ型 | |||
ARRAY | BYTE_ARRAY | STRING |
配列は文字列に変換され、BINARY (UTF8) としてエンコードされます。 この変換は、データ精度、数値ではないデータ値 (NaN)、および時間データ値に伴う複雑さを回避するためのものです。 |
BIT | BYTE_ARRAY | STRING | |
BIT VARYING | BYTE_ARRAY | STRING | |
BYTEA | BINARY | ||
CHAR | BYTE_ARRAY | STRING | |
CHAR(N) | BYTE_ARRAY | STRING | |
ENUM | BYTE_ARRAY | STRING | |
NAME | BYTE_ARRAY | STRING | |
TEXT | BYTE_ARRAY | STRING | |
TEXT SEARCH | BYTE_ARRAY | STRING | |
VARCHAR(N) | BYTE_ARRAY | STRING | |
XML | BYTE_ARRAY | STRING | |
日付と時刻のデータ型 | |||
DATE | BYTE_ARRAY | STRING | |
INTERVAL | BYTE_ARRAY | STRING | |
TIME | BYTE_ARRAY | STRING | |
TIME WITH TIME ZONE | BYTE_ARRAY | STRING | |
TIMESTAMP | BYTE_ARRAY | STRING | |
TIMESTAMP WITH TIME ZONE | BYTE_ARRAY | STRING | |
ジオメトリデータ型 | |||
BOX | BYTE_ARRAY | STRING | |
CIRCLE | BYTE_ARRAY | STRING | |
LINE | BYTE_ARRAY | STRING | |
LINESEGMENT | BYTE_ARRAY | STRING | |
PATH | BYTE_ARRAY | STRING | |
POINT | BYTE_ARRAY | STRING | |
POLYGON | BYTE_ARRAY | STRING | |
JSON データ型 | |||
JSON | BYTE_ARRAY | STRING | |
JSONB | BYTE_ARRAY | STRING | |
その他のデータ型 | |||
BOOLEAN | BOOLEAN | ||
CIDR | BYTE_ARRAY | STRING | ネットワークデータ型 |
COMPOSITE | BYTE_ARRAY | STRING | |
DOMAIN | BYTE_ARRAY | STRING | |
INET | BYTE_ARRAY | STRING | ネットワークデータ型 |
MACADDR | BYTE_ARRAY | STRING | |
OBJECT IDENTIFIER | 該当なし | ||
PG_LSN | BYTE_ARRAY | STRING | |
RANGE | BYTE_ARRAY | STRING | |
UUID | BYTE_ARRAY | STRING |