Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、ブログ記事を参照してください。
半構造化データのアンロード
Amazon Redshift を使用すると、Amazon Redshift クラスターから Amazon S3 に、テキスト、Apache Parquet、Apache ORC、Avro などのさまざまな形式で半構造化データをエクスポートできます。以下のセクションでは、Amazon Redshift で半構造化データのアンロード操作を設定および実行するプロセスについて説明します。
- CSV or text formats
-
SUPER データ列を持つテーブルを、コンマ区切り値 (CSV) 形式またはテキスト形式で Amazon S3 にアンロードできます。navigation 句と unnest 句の組み合わせを使用して、Amazon Redshift は SUPER データ形式の階層データを CSV 形式またはテキスト形式の Amazon S3 にアンロードします。その後、アンロードされたデータに対して外部テーブルを作成し、Redshift Spectrum を使用してクエリを実行できます。UNLOAD の使用と必要な IAM アクセス許可の詳細については、「UNLOAD」を参照してください。
次の例では、Amazon Redshift テーブルから Amazon S3 バケットにすべてのデータをアンロードします。
UNLOAD ('SELECT * FROM <redshift_table>')
TO '<S3_bucket>'
IAM_ROLE '<iam_role>'
DELIMITER AS '|'
GZIP
ALLOWOVERWRITE;
ユーザー定義の文字列が null 値を表す他のデータ型とは異なり、Amazon Redshift は JSON 形式を使用して SUPER データ列をエクスポートし、JSON 形式で決定されるように null として表します。その結果、SUPER データ列では、UNLOAD コマンドで使用される NULL [AS] オプションを無視します。
- Parquet format
-
SUPER データ列を持つテーブルをParquet形式で Amazon S3 にアンロードできます。Amazon Redshift は、JSON データ型として、Parquetで SUPER 列を表します。これにより、半構造化データを Parquet で表すことができます。これらの列は、Redshift Spectrum を使用してクエリするか、またはCOPY コマンドを使用して Amazon Redshift に取り戻すことができます。UNLOAD の使用と必要な IAM アクセス許可の詳細については、「UNLOAD」を参照してください。
次の例では、Amazon Redshift テーブルから Parquet 形式の Amazon S3 バケットにすべてのデータをアンロードします。
UNLOAD ('SELECT * FROM <Amazon Redshift_table>')
TO '<S3_bucket>'
IAM_ROLE '<iam_role>'
FORMAT PARQUET;