

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、[ブログ記事](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)を参照してください。

# Amazon S3 から固定幅データをロードする
<a name="t_loading_fixed_width_data"></a>

固定幅データファイルでは、データの各列の長さが統一されています。固定幅データファイルの各フィールドでは、長さと位置がまったく同じです。固定幅データファイルの文字データ (CHAR と VARCHAR) については、幅を統一するために、プレースホルダーとして先行または後続スペースを含める必要があります。整数については、プレースホルダーとして先行ゼロを含める必要があります。固定幅データファイルには列を分割する区切り文字がありません。

固定幅データファイルを既存のテーブルにロードするには、COPY コマンドで FIXEDWIDTH パラメータを使用します。データを正しくロードするには、テーブル仕様が fixedwidth\_spec の値に一致する必要があります。

ファイルからテーブルに固定幅データをロードするには、次のコマンドを発行します。

```
COPY table_name FROM 's3://amzn-s3-demo-bucket/prefix' 
IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole' 
FIXEDWIDTH 'fixedwidth_spec';
```

*fixedwidth\_spec* パラメータは、各列の ID と各列の幅がコロンで区切られて指定されている文字列です。**column:width** ペアはカンマで区切られています。ID には数字、文字、またはその 2 つの組み合わせを自由に選択できます。ID とテーブル自体の間には何の関係もありません。そのため、仕様にテーブルと同じ順序で列を含める必要があります。

次の 2 つの例では同じ仕様を示していますが、最初の例では数字の ID を使用し、2 つ目の例では文字列の ID を使用しています。

```
'0:3,1:25,2:12,3:2,4:6'
```

```
'venueid:3,venuename:25,venuecity:12,venuestate:2,venueseats:6'
```

次の例では、前述の仕様を使用して VENUE テーブルにロードするサンプルの固定幅データを示しています。

```
1  Toyota Park               Bridgeview  IL0
2  Columbus Crew Stadium     Columbus    OH0
3  RFK Stadium               Washington  DC0
4  CommunityAmerica Ballpark Kansas City KS0
5  Gillette Stadium          Foxborough  MA68756
```

次の COPY コマンドではこのデータセットが VENUE テーブルにロードされます。

```
COPY venue
FROM 's3://amzn-s3-demo-bucket/data/venue_fw.txt' 
IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole' 
FIXEDWIDTH 'venueid:3,venuename:25,venuecity:12,venuestate:2,venueseats:6';
```