すべてのプロダクト
Search
ドキュメントセンター

DataWorks:Amazon S3 データソース

最終更新日:Jan 30, 2026

Amazon S3 (Simple Storage Service) は、どこからでも任意の量のデータを保存および取得できるオブジェクトストレージサービスです。DataWorks のデータ統合は、Amazon S3 からのデータの読み取りと書き込みをサポートしています。このトピックでは、Amazon S3 データソースの特徴について説明します。

制限事項

バッチ読み取り

Amazon S3 は非構造化データストレージサービスです。DataWorks のデータ統合における Amazon S3 Reader は、以下の特徴をサポートしています。

サポート対象

サポート対象外

  • 2次元テーブルを表すスキーマを含む TXT フォーマットのファイルのみ読み取りをサポートします。

  • カスタムデリミタを持つ CSV 形式のファイルをサポートします。

  • ORC および PARQUET フォーマットをサポートします。

  • 複数のデータ型を文字列として読み取ること、列のプルーニング、および定数列をサポートします。

  • 再帰的な読み取りとファイル名のフィルタリングをサポートします。

  • gzipbzip2zip を使用したテキスト圧縮をサポートします。

    説明

    複数のファイルを含む圧縮アーカイブはサポートされていません。

  • 複数の Object の同時読み取りをサポートします。

  • 単一の Object を読み取るためのマルチスレッドはサポートされていません。

  • 単一の圧縮 Object を読み取るためのマルチスレッドはサポートされていません。

  • 単一の Object は 100 GB を超えることはできません。

バッチ書き込み

Amazon S3 Writer は、データ同期プロトコルからのデータを、Amazon S3 のテキストファイルに変換します。Amazon S3 は非構造化データストレージサービスであるため、Amazon S3 Writer は以下の特徴をサポートしています。

サポート対象

サポート対象外

  • テキストファイルの書き込みのみをサポートします。ビデオや画像などの BLOB データはサポートされていません。テキストファイルには、2次元テーブルを表すスキーマが含まれている必要があります。

  • カスタムデリミタを持つ CSV 形式のファイルをサポートします。

  • ORC および PARQUET フォーマットをサポートします。

    説明

    スクリプトモードでは、SNAPPY 圧縮フォーマットがサポートされています。

  • 書き込みのためのマルチスレッドをサポートしており、各スレッドは異なるサブファイルに書き込みます。

  • ファイルが指定されたサイズを超えると、Writer は新しいファイルを作成します。

  • 単一ファイルへの同時書き込みはサポートされていません。

  • Amazon S3 にはネイティブのデータ型がありません。Amazon S3 Writer は、すべてのデータを STRING 型として Amazon S3 オブジェクトに書き込みます。

  • Glacier Deep Archive ストレージクラスを使用する Amazon S3 バケットへの書き込みはサポートされていません。

  • 単一のオブジェクトは 100 GB を超えることはできません。

データソースの追加

DataWorks で同期タスクを開発する前に、「データソース管理」の手順に従って、必要なデータソースを DataWorks に追加する必要があります。データソースを追加する際に、DataWorks コンソールでパラメーターの説明を表示して、各パラメーターの意味を理解できます

データ同期タスクの開発

同期タスクの設定のエントリポイントと手順については、以下の設定ガイドをご参照ください。

単一テーブルのバッチ同期タスクの設定

付録:スクリプトの例とパラメーターの説明

コードエディタを使用したバッチ同期タスクの設定

コードエディタを使用してバッチ同期タスクを設定する場合、統一されたスクリプトフォーマットの要件に基づいて、スクリプト内の関連パラメーターを設定する必要があります。詳細については、「コードエディタでのタスクの設定」をご参照ください。以下では、コードエディタを使用してバッチ同期タスクを設定する際に、データソースに対して設定する必要があるパラメーターについて説明します。

Reader スクリプトの例

{
    "type":"job",
    "version":"2.0",// バージョン番号。
    "steps":[
        {
            "stepType":"s3",// プラグイン名。
            "parameter":{
                "nullFormat":"",// NULL 値を表す文字列を定義します。
                "compress":"",// テキスト圧縮タイプ。
                "datasource":"",// データソース。
                "column":[// フィールド。
                    {
                        "index":0,// 列インデックス。
                        "type":"string"// データ型。
                    },
                    {
                        "index":1,
                        "type":"long"
                    },
                    {
                        "index":2,
                        "type":"double"
                    },
                    {
                        "index":3,
                        "type":"boolean"
                    },
                    {
                        "format":"yyyy-MM-dd HH:mm:ss", // 時刻フォーマット。
                        "index":4,
                        "type":"date"
                    }
                ],
                "skipHeader":"",// CSV 形式のファイルのヘッダーをスキップします。
                "encoding":"",// エンコード形式。
                "fieldDelimiter":",",// フィールドデリミタ。
                "fileFormat": "",// テキストファイルタイプ。
                "object":[]// オブジェクトプレフィックス。
            },
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"stream",
            "parameter":{},
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":""// 許容されるエラーレコード数。
        },
        "speed":{
            "throttle":true,// レート制限を有効にするかどうかを指定します。このパラメーターが false に設定されている場合、mbps パラメーターは無視されます。
            "concurrent":1, // 同時ジョブ数。
            "mbps":"12"// 最大転送レート (MB/s)。注意:このコンテキストでは、1 mbps は 1 MB/s に相当します。
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Reader スクリプトのパラメーター

パラメーター

説明

必須

デフォルト値

datasource

データソースの名前。スクリプトモードでは、このパラメーターの値は、追加するデータソースの名前と一致する必要があります。

はい

なし

object

読み取り対象の S3 オブジェクトです。複数のオブジェクトを指定できます。たとえば、バケットに `test` という名前のフォルダがあり、その中に ll.txt というファイルが含まれている場合、オブジェクトの値を test/ll.txt に設定します。

  • 単一の S3 オブジェクトを指定すると、Amazon S3 Reader は単一のスレッドを使用してデータを抽出します。

  • 複数の S3 オブジェクトを指定すると、Amazon S3 Reader は複数のスレッドを使用してデータを抽出します。同時実行スレッドの数は、concurrent パラメーターによって決まります。

  • ワイルドカードを使用すると、Amazon S3 Reader は複数のオブジェクトを検索し、走査しようとします。たとえば、`abc*[0-9]` は `abc0`、`abc1`、`abc2`、`abc3` に一致します。ワイルドカードの使用はメモリオーバーフローエラーを引き起こす可能性があるため、推奨されません。

説明
  • データ同期システムは、単一のジョブ内のすべてのオブジェクトを 1 つのデータテーブルとして扱います。すべてのオブジェクトが同じスキーマを共有していることを確認する必要があります。

  • 潜在的な OutOfMemoryError の問題を避けるために、単一のディレクトリ内のファイル数を制限してください。このエラーが発生した場合は、ファイルを異なるディレクトリに分割して再試行してください。

はい

なし

column

読み取るフィールドのリスト。`type` はソースのデータ型を指定します。`index` はテキストファイル内の列の位置 (0 から開始) を指定します。`value` は列の定数値を指定します。この値はソースファイルから読み取られるのではなく、自動的に生成されます。

デフォルトでは、すべてのデータを文字列型として読み取ることができます。構成は次のとおりです:

"column": ["*"]

詳細な列情報を指定することもできます。構成は次のとおりです:

"column":    
{       
"type": "long",       
"index": 0 // S3 テキストファイルの最初の列から整数を読み取ります。
},    
{       
"type": "string",       
"value": "alibaba" // この列の値として定数文字列 "alibaba" を生成します。
}
説明

column 情報を指定する場合、`type` パラメーターは必須です。`index` または `value` のいずれかを指定する必要があります。

はい

すべての列が STRING 型として読み取られます。

fieldDelimiter

フィールドを区切るために使用されるデリミタ。

説明

Amazon S3 Reader にはフィールドデリミタを指定する必要があります。フィールドデリミタが指定されていない場合、デフォルトでカンマ (,) が使用されます。このデフォルト値は UI にも事前に入力されています。

デリミタが表示可能な文字でない場合は、その Unicode 表現を使用します。たとえば、\u001b や \u007c を使用できます。

はい

, (カンマ)

compress

テキスト圧縮タイプ。デフォルトでは、このパラメーターは空で、圧縮が使用されないことを示します。サポートされている圧縮タイプは、gzipbzip2zip です。

いいえ

なし

encoding

ソースファイルのエンコード形式。

いいえ

UTF-8

nullFormat

テキストファイルでは、標準の文字列を使用して NULL 値を表すことはできません。nullFormat パラメーターを使用して、NULL 値を表す文字列を定義できます。たとえば、nullFormat="null" と設定すると、ソースデータの "null" は NULL フィールドと見なされます。

いいえ

なし

skipHeader

CSV 形式のファイルの場合、skipHeader パラメーターを使用してヘッダー行をスキップするかどうかを指定できます。

  • true:データ同期中にヘッダー行がスキップされます。

  • false:データ同期中にヘッダー行がデータ行として読み取られます。

説明

skipHeader パラメーターは圧縮ファイルには使用できません。

いいえ

false

csvReaderConfig

CSV ファイルを読み取るための詳細設定。このパラメーターはマップ型です。このパラメーターが設定されていない場合、CsvReader のデフォルト設定が使用されます。

いいえ

なし

Writer スクリプトの例

{
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "stream",
            "parameter": {},
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "s3",
            "category": "writer",
            "name": "Writer",
            "parameter": {
                "datasource": "datasource1",
                "object": "test/csv_file.csv",
                "fileFormat": "csv",
                "encoding": "utf8/gbk/...",
                "fieldDelimiter": ",",
                "lineDelimiter": "\n",
                "column": [
                    "0",
                    "1"
                ],
                "header": [
                    "col_bigint",
                    "col_tinyint"
                ],
                "writeMode": "truncate",
                "writeSingleObject": true
            }
        }
    ],
    "setting": {
        "errorLimit": {
            "record": "" // 許容されるエラーレコード数。
        },
        "speed": {
            "throttle": true, // レート制限を有効にするかどうかを指定します。このパラメーターが false に設定されている場合、mbps パラメーターは無視されます。
            "concurrent": 1, // 同時ジョブ数。
            "mbps": "12" // 最大転送レート (MB/s)。注意:このコンテキストでは、1 mbps は 1 MB/s に相当します。
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

Writer スクリプトのパラメーター

パラメーター

説明

必須

デフォルト値

datasource

データソースの名前。スクリプトモードでは、このパラメーターの値は、追加するデータソースの名前と同じである必要があります。

はい

なし

object

宛先オブジェクトの名前。

はい

なし

fileFormat

ファイル形式。次の形式がサポートされています:

  • csv:標準の CSV 形式のみがサポートされています。書き込むデータに列区切り文字が含まれている場合、Writer はデータを二重引用符 (") でエスケープします。

  • text:列が指定されたデリミタで区切られる単純なテキスト形式。データにデリミタが含まれていても、Writer はエスケープ文字を使用しません。

  • PARQUET

  • ORC

はい

text

writeMode

  • truncate:データを書き込む前に、システムは指定されたオブジェクトプレフィックスを持つ既存のすべてのオブジェクトを削除します。たとえば、"object":"abc" と設定すると、Writer は名前が `abc` で始まるすべてのオブジェクトを削除します。

  • append:データを書き込む前に、システムは既存のデータを処理しません。S3 Writer は指定されたオブジェクトに直接データを書き込み、ファイル名が一意になるようにランダムな汎用一意識別子 (UUID) のサフィックスを追加します。たとえば、オブジェクト名として `dataintegration` を指定すると、実際のファイル名は `DI_xxxx_xxxx_xxxx` のようになります。

  • nonConflict:指定されたパスに一致するプレフィックスを持つオブジェクトが存在する場合、ジョブは失敗し、エラーが報告されます。たとえば、"object":"abc" と設定し、`abc123` という名前のオブジェクトが既に存在する場合、ジョブは失敗します。

はい

append

fieldDelimiter

出力ファイルでフィールドを区切るために使用されるデリミタ。

いいえ

, (カンマ)

lineDelimiter

出力ファイルで行を区切るために使用されるデリミタ。

いいえ

\n (改行文字)

compress

テキスト圧縮タイプ。デフォルトでは、このパラメーターは空で、圧縮が使用されないことを示します。

  • `fileFormat` を `text` または `csv` に設定した場合、GZIP と BZIP2 がサポートされます。

  • `fileFormat` を `PARQUET` または `ORC` に設定した場合、`SNAPPY` 圧縮を使用できます。

いいえ

なし

nullFormat

テキストファイルでは、標準の文字列を使用して NULL 値を表すことはできません。nullFormat パラメーターを使用して、NULL 値を表す文字列を定義できます。たとえば、nullFormat="null" と設定し、ソースデータが NULL の場合、システムは文字列「null」をファイルに書き込みます。

いいえ

なし

header

ファイルに書き込むヘッダー行。例:["id", "name", "age"]

いいえ

なし

writeSingleObject

データを単一のファイルに書き込むかどうかを指定します。有効な値は `true` と `false` です。

説明
  • ORC または PARQUET 形式でデータを書き込む場合、`writeSingleObject` パラメーターは効果がありません。このパラメーターを使用しても、高同時実行シナリオで単一の ORC または PARQUET ファイルにデータを書き込むことはできません。単一のファイルにデータを書き込むには、同時実行スレッド数を 1 に設定できます。ただし、Writer はファイル名にランダムなサフィックスを追加します。同時実行スレッド数を 1 に設定すると、同期速度にも影響します。

  • 一部のシナリオ、たとえばソースが Hologres ソースである場合、Reader はシャードごとにデータを読み取ります。これにより、同時実行スレッド数が 1 であっても、複数の出力ファイルが生成されることがあります。

いいえ

false

encoding

出力ファイルのエンコード形式。

いいえ

UTF-8

column

出力ファイルの列構成。

  • `fileFormat` が `csv` または `text` の場合、`column` には数値プレースホルダーを設定できます。例:

    "column":[
     "0",
     "1"
     ]
  • `fileFormat` が `PARQUET` または `ORC` の場合、各列の `name` と `type` を指定する必要があります。例:

    "column": [
      {
        "name": "col1",
        "type": "BIGINT"
      },
      {
        "name": "col2",
        "type": "DOUBLE"
      }
    ]

はい

なし