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

DataWorks:Amazon S3 データソース

最終更新日:Apr 24, 2026

Amazon Simple Storage Service (Amazon S3) は、どこからでも任意の量のデータを保存および取得するために構築されたオブジェクトストレージサービスです。DataWorks の Data Integration を使用すると、Amazon S3 からのデータの読み取りと Amazon S3 へのデータの書き込みができます。このトピックでは、DataWorks における Amazon S3 データソースの機能について説明します。

制限事項

バッチ読み取り

Amazon S3 は非構造化データを格納します。Data Integration では、Amazon S3 Reader は以下の機能をサポートしています。

サポート

非サポート

  • 読み取り可能なファイルは TXT 形式のみで、TXT ファイル内のスキーマは二次元テーブルである必要があります。

  • カスタム区切り文字を持つ CSV 形式のオブジェクトからデータを読み取ります。

  • ORC および PARQUET 形式のデータを読み取ります。

  • さまざまなデータ型を文字列として読み取り、列のプルーニングと定数列をサポートします。

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

  • オブジェクトの圧縮をサポートします。サポートされている圧縮形式は gzipbzip2zip です。

    説明

    複数のオブジェクトを単一のパッケージに圧縮することはできません。

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

  • 単一の オブジェクト (ファイル) のマルチスレッド読み取りはサポートしていません。

  • 単一の圧縮 Object のマルチスレッド読み取りはサポートしていません。

  • 100 GB を超える単一の オブジェクト (ファイル) の読み取りはサポートしていません。

バッチ書き込み

Amazon S3 Writer は、データ同期プロトコルから Amazon S3 のテキストファイルにデータを変換します。Amazon S3 自体は非構造化データストアです。Amazon S3 Writer は以下の機能をサポートしています。

サポート

非サポート

  • 書き込み可能なのはテキストタイプのファイルのみで (ビデオや画像などの BLOB タイプはサポートされていません)、テキストファイル内のスキーマは二次元テーブルである必要があります。

  • カスタム区切り文字を持つ CSV 形式のファイルにデータを書き込みます。

  • ORC および PARQUET 形式でデータを書き込みます。

    説明

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

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

  • ファイルのローリングをサポートします。ファイルが指定されたサイズを超えると、システムは新しいファイルに切り替えます。

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

  • Amazon S3 はデータ型を提供しません。Amazon S3 Writer は、すべてのデータを STRING 型として Amazon S3 オブジェクトに書き込みます。

  • Amazon S3 バケットのストレージクラスが Deep Archive の場合、書き込み操作はサポートされません。

  • 単一のオブジェクト (ファイル) は 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 パラメーターが効果を発揮しないことを示します。true の値は速度制限が有効であることを示します。
            "concurrent":1, // 同時実行数。
            "mbps":"12"// 速度制限のレート。1 mbps = 1 MB/s。
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

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

パラメーター

説明

必須

デフォルト値

datasource

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

はい

N/A

Object

Amazon S3 のオブジェクト情報。複数のオブジェクトを指定できます。たとえば、バケットに test フォルダが含まれ、そのフォルダに ll.txt という名前のファイルが含まれている場合、Objecttest/ll.txt に設定します。

  • 単一の S3 オブジェクトを指定すると、Amazon S3 Reader はシングルスレッドのデータ抽出のみをサポートします。

  • 複数の S3 オブジェクトを指定すると、Amazon S3 Reader はマルチスレッドのデータ抽出をサポートします。同時実行スレッド数は、チャネル数によって指定されます。

  • ワイルドカードを指定すると、Amazon S3 Reader は複数のオブジェクトをリストしようとします。たとえば、abc*[0-9] は abc0、abc1、abc2、abc3 などに一致します。ワイルドカードを使用すると、メモリ不足エラーが発生する可能性があります。ワイルドカードの使用は推奨されません。

説明
  • データ同期システムは、単一のジョブで同期されるすべてのオブジェクトを 1 つのデータテーブルとして扱います。すべてのオブジェクトが同じスキーマに準拠していることを確認してください。

  • 単一ディレクトリ内のファイル数を制御してください。そうしないと、OutOfMemoryError エラーがトリガーされる可能性があります。この場合、ファイルを異なるディレクトリに分割して再試行してください。

はい

N/A

column

読み取る列のリスト。type パラメーターはソースデータのデータ型を指定します。index パラメーターはテキストファイル内の列番号 (0から始まる) を指定します。value パラメーターは、現在の列が定数であることを指定します。ソースファイルからデータを読み取る代わりに、システムは指定された値に基づいて列を生成します。

デフォルトでは、すべてのデータを String 型として読み取ることができます。設定例:

column": ["*"]

列情報を指定することもできます。設定例:

"column":    
{       
"type": "long",       
"index": 0 //S3 テキストの最初の列から int フィールドを取得します。
},    
{       
"type": "string",       
"value": "alibaba" //S3 Reader 内部で文字列フィールド "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 フィールドとして扱います。

いいえ

N/A

skipHeader

CSV ファイルの場合、skipHeader を使用してヘッダー行を読み取るかどうかを指定します。

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

  • False:データ同期中にヘッダー行は読み取られません。

説明

skipHeader は圧縮ファイルではサポートされていません。

いいえ

false

csvReaderConfig

CSV ファイルを読み取るための設定。このパラメーターは Map 型です。CsvReader は CSV ファイルの読み取りに使用され、さまざまな設定を提供します。このパラメーターを設定しない場合、デフォルト値が使用されます。

いいえ

N/A

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 パラメーターが効果を発揮しないことを示します。true の値は速度制限が有効であることを示します。
            "concurrent": 1, // 同時実行数。
            "mbps": "12" // 速度制限のレート。1 mbps = 1 MB/s。
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

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

パラメーター

説明

必須

デフォルト値

datasource

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

はい

N/A

object

送信先オブジェクトの名前。

はい

N/A

fileFormat

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

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

  • text:列区切り文字を使用してデータを単純に区切ります。列区切り文字を含むデータはエスケープされません。

  • parquet

  • ORC

はい

text

writeMode

  • truncate:書き込み前に、指定されたオブジェクト名のプレフィックスに一致する名前を持つすべてのオブジェクトが削除されます。たとえば、"object":"abc" と設定すると、名前が abc で始まるすべてのオブジェクトが削除されます。

  • append:書き込み前に処理は行われません。Data Integration S3 Writer は、ファイル名の競合を避けるために、指定されたオブジェクト名にランダムな UUID サフィックスを付けて直接データを書き込みます。たとえば、オブジェクト名を DI に設定すると、実際に書き込まれるファイルは 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 フィールドとして扱います。

いいえ

N/A

header

書き込むヘッダー。例:["id", "name", "age"]

いいえ

N/A

writeSingleObject

true:データを単一のファイルに書き込みます。false:データを複数のファイルに書き込みます。

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

  • 一部のシナリオでは、たとえばソースが Hologres の場合、データはシャードパーティションに基づいて読み取られます。単一の同時実行数であっても、複数のファイルが生成されることがあります。

いいえ

false

encoding

書き込むファイルのエンコーディング。

いいえ

utf-8

column

データを書き込むための列設定。

  • fileFormat が csv または text に設定されている場合、数値プレースホルダーで column パラメーターを設定します。例:

    "column":[
     "0",
     "1"
     ]
  • fileFormat が Parquet または ORC に設定されている場合、名前と型の組み合わせで column パラメーターを設定します。例:

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

はい

N/A