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

DataWorks:OSS データソース

最終更新日:Jan 09, 2026

OSS データソースは、Object Storage Service (OSS) からのデータの読み取りと OSS へのデータの書き込みのための双方向チャネルを提供します。このトピックでは、DataWorks における OSS データソースのデータ同期機能について説明します。

サポートされているフィールドタイプと制限

オフライン読み取り

OSS Reader は OSS からデータを読み取り、Data Integration プロトコルに変換します。OSS は非構造化データ向けのストレージサービスです。Data Integration のために、OSS Reader は以下の機能をサポートしています。

サポート

非サポート

  • TXT ファイルをサポートしています。TXT ファイル内のスキーマは 2次元テーブルである必要があります。

  • カスタム区切り文字を持つ CSV 形式のファイルをサポートしています。

    説明

    テキストファイル (TXT および CSV) は、gzipbzip2zip 圧縮をサポートしています。

    ファイルを圧縮する場合、1つの圧縮パッケージに複数のファイルを含めることはできません。

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

  • 複数のデータ型(文字列として表現)の読み取り、カラムのプルーニング、カラム定数をサポートしています。

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

  • 複数のオブジェクトに対する同時読み取りをサポートしています。

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

  • 単一の圧縮オブジェクトに対するマルチスレッド同時読み取りはサポートしていません。

重要
  • OSS に CSV ファイルとしてデータを準備する場合、ファイルは標準的な CSV フォーマットである必要があります。たとえば、カラム内に二重引用符(")が含まれる場合は、それを二つの二重引用符("")に置き換える必要があります。そうしないと、ファイルが誤って分割されます。ファイルに複数のデリミタが含まれる場合は、テキストファイルタイプを使用することを推奨します。

  • OSS はファイル型データを格納する非構造化データソースです。データを同期する前に、フィールド構造が期待通りであることを確認してください。同様に、非構造化データソース内のデータ構造が変更された場合は、タスク設定で再度フィールド構造を確認する必要があります。確認を行わないと、同期中にデータが文字化けする可能性があります。

オフライン書き込み

OSS Writer は、データ同期プロトコルから OSS 内のテキストファイルにデータを変換します。OSS は非構造化データ向けのストレージサービスです。OSS Writer は以下の機能をサポートしています。

サポート

非サポート

  • テキストファイル(動画や画像などの BLOB ではない)のみを書き込むことをサポートしています。テキストファイル内のスキーマは 2次元テーブルである必要があります。

  • カスタム区切り文字を持つ CSV 形式のファイルをサポートしています。

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

    説明

    コードエディタでは SNAPPY 圧縮フォーマットがサポートされています。

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

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

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

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

  • OSS バケットのストレージクラスが Cold Archive の場合、データの書き込みはサポートしていません。

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

型分類

Data Integration カラム設定タイプ

整数型

LONG

文字列型

STRING

浮動小数点型

DOUBLE

ブール値型

BOOLEAN

日付・時刻型

DATE

リアルタイム書き込み

  • リアルタイム書き込みをサポートしています。

  • Hudi (0.12.x)、Paimon、Iceberg などのデータレイクへの単一テーブルからのリアルタイム書き込みをサポートしています。

データソースの作成

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

説明

データ同期タスクの開発

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

単一テーブルのオフライン同期タスクの設定ガイド

単一テーブルのリアルタイム同期タスクの設定ガイド

構成プロセスの詳細については、Data Integration でリアルタイム同期タスクを設定するおよびDataStudio でリアルタイム同期タスクを設定するをご参照ください。

データベース全体の同期の設定ガイド

構成プロセスの詳細については、「データベース全体のオフライン同期タスク」および「データベース全体のリアルタイム同期タスク」をご参照ください。

よくある質問

OSS ファイルの読み取り数に制限はありますか?

複数のデリミタを持つ CSV ファイルを読み込む際、ダーティデータはどのように処理しますか?

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

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

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

Reader スクリプトデモ:一般的な例

{
    "type":"job",
    "version":"2.0",// バージョン番号。
    "steps":[
        {
            "stepType":"oss",// プラグイン名。
            "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,// throttle が false の場合、mbps パラメーターは無効になり、レートは制限されません。throttle が true の場合、レートは制限されます。
            "concurrent":1, // 同時実行ジョブ数。
            "mbps":"12"// レート制限。1 mbps は 1 MB/s に相当します。
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Reader スクリプトデモ:OSS から ORC または Parquet ファイルを読み取る

OSS から ORC または Parquet 形式のファイルを読み取るには、HDFS Reader を再利用できます。既存の OSS Reader パラメーターに加えて、Path(ORC 用)およびFileFormat(ORC および Parquet 用)などの拡張設定パラメーターも使用されます。

  • 以下は、OSS から ORC ファイルを読み取る例です。

    {
    "stepType": "oss",
    "parameter": {
    "datasource": "",
    "fileFormat": "orc",
    "path": "/tests/case61/orc__691b6815_9260_4037_9899_****",
    "column": [
    {
    "index": 0,
    "type": "long"
    },
    {
    "index": "1",
    "type": "string"
    },
    {
    "index": "2",
    "type": "string"
    }
    ]
    }
    }
  • 以下は、OSS から Parquet ファイルを読み取る例です。

    {
      "type":"job",
        "version":"2.0",
        "steps":[
        {
          "stepType":"oss",
          "parameter":{
            "nullFormat":"",
            "compress":"",
            "fileFormat":"parquet",
            "path":"/*",
            "parquetSchema":"message m { optional BINARY registration_dttm (UTF8); optional Int64 id; optional BINARY first_name (UTF8); optional BINARY last_name (UTF8); optional BINARY email (UTF8); optional BINARY gender (UTF8); optional BINARY ip_address (UTF8); optional BINARY cc (UTF8); optional BINARY country (UTF8); optional BINARY birthdate (UTF8); optional DOUBLE salary; optional BINARY title (UTF8); optional BINARY comments (UTF8); }",
            "column":[
              {
                "index":"0",
                "type":"string"
              },
              {
                "index":"1",
                "type":"long"
              },
              {
                "index":"2",
                "type":"string"
              },
              {
                "index":"3",
                "type":"string"
              },
              {
                "index":"4",
                "type":"string"
              },
              {
                "index":"5",
                "type":"string"
              },
              {
                "index":"6",
                "type":"string"
              },
              {
                "index":"7",
                "type":"string"
              },
              {
                "index":"8",
                "type":"string"
              },
              {
                "index":"9",
                "type":"string"
              },
              {
                "index":"10",
                "type":"double"
              },
              {
                "index":"11",
                "type":"string"
              },
              {
                "index":"12",
                "type":"string"
              }
            ],
            "skipHeader":"false",
            "encoding":"UTF-8",
            "fieldDelimiter":",",
            "fieldDelimiterOrigin":",",
            "datasource":"wpw_demotest_oss",
            "envType":0,
            "object":[
              "wpw_demo/userdata1.parquet"
            ]
          },
          "name":"Reader",
          "category":"reader"
        },
        {
          "stepType":"odps",
          "parameter":{
            "partition":"dt=${bizdate}",
            "truncate":true,
            "datasource":"0_odps_wpw_demotest",
            "envType":0,
            "column":[
              "id"
            ],
            "emptyAsNull":false,
            "table":"wpw_0827"
          },
          "name":"Writer",
          "category":"writer"
        }
      ],
        "setting":{
        "errorLimit":{
          "record":""
        },
        "locale":"zh_CN",
          "speed":{
          "throttle":false,
            "concurrent":2
        }
      },
      "order":{
        "hops":[
          {
            "from":"Reader",
            "to":"Writer"
          }
        ]
      }
    }

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

パラメーター

説明

必須

デフォルト値

datasource

データソースの名前。このパラメーターの値は、コードエディタで追加したデータソースの名前と同じである必要があります。

はい

なし

Object

OSS から同期する 1つまたは複数のオブジェクトを指定します。完全なパス、ワイルドカード文字を含むパス、または動的パラメーターを含むパスを使用してオブジェクトを指定できます。

1. 設定方法

  • パスを指定する

    • 基本ルール:パスはバケットのルートディレクトリから始まり、バケット名を含める必要はありません。

    • 単一ファイルを指定するには、その完全なパスを入力します。例:my_folder/my_file.txt

    • 複数のオブジェクトを指定するには、パスをカンマ(,)で区切ります。例:folder_a/file1.txtfolder_a/file2.txt

  • ワイルドカード文字を含むパス

    • 特定のパターンに一致する複数のファイルをマッチさせるためにワイルドカード文字を使用します。

    • *:ゼロ個以上の文字に一致します。

    • ?:1文字に一致します。

    • 例:

      • abc*[0-9].txtabc0.txtabc10,txtabc_test_9.txt などに一致します。

      • abc?.txtabc1.txtabcX.txt などに一致します。

  • 動的パラメーターを含むパス

    • パスにスケジューリングパラメーターを埋め込んで、同期を自動化します。タスク実行時に、パラメーターは実際の値に置き換えられます。

    • 例:パスを raw_data/${bizdate}/abc.txt に設定すると、タスクは毎日対応するデータタイムスタンプのフォルダを動的に同期します。

    • スケジューリングパラメーターの詳細については、「スケジューリングパラメーターのソースと式」をご参照ください。

重要
  • ワイルドカード文字は慎重に使用してください。特に * を使用すると、OSS パスのスキャンがトリガーされます。ファイル数が多い場合、このスキャンにより大量のメモリと時間が消費され、メモリオーバーフローによりタスクが失敗する可能性があります。本番環境では広範なワイルドカード文字の使用を避けることを推奨します。この問題が発生した場合は、ファイルを異なるフォルダに分割して再度同期を試行してください。

  • データ同期システムは、1つの同期ジョブ内のすべてのオブジェクトを 1つのデータテーブルとして扱います。すべてのオブジェクトが同じスキーマを使用していることを確認してください。

2. 同時読み取りメカニズムとパフォーマンス

パスの設定方法によって、データ抽出の並列性とパフォーマンスが決まります。

  • シングルスレッドモード:単一の非圧縮ファイルを指定した場合、タスクはシングルスレッドモードで実行されます。

  • マルチスレッドモード:複数のファイルを指定するか、複数のファイルに一致するワイルドカード文字を使用した場合、タスクは自動的にマルチスレッド同時読み取りを有効にします。これにより、抽出効率が大幅に向上します。チャンネル制御セクションで同時スレッド数を設定できます。

はい

なし

parquetSchema

このパラメーターは、OSS から Parquet ファイルを読み取る場合にのみ必要です。fileFormatparquet に設定されている場合にのみ有効です。このパラメーターは Parquet ファイル内のデータ型を記述します。設定が有効な JSON 形式であることを確認してください。

message MessageTypeName {
Required/Optional, Data type, Column name;
......................;
}

`parquetSchema` の形式は以下のとおりです。

  • MessageTypeName:名前を入力します。

  • Required/Optional:`required` はフィールドが null にならないことを示します。`optional` はフィールドが null になる可能性があることを示します。すべてのフィールドを `optional` に設定することを推奨します。

  • データ型:Parquet ファイルは BOOLEAN、Int32、Int64、Int96、FLOAT、DOUBLE、BINARY(文字列型には BINARY を使用)、fixed_len_byte_array 型をサポートしています。

  • 各行の設定は、最後の行を含めてセミコロンで終了する必要があります。

以下は設定例です。

"parquetSchema": "message m { optional int32 minute_id; optional int32 dsp_id; optional int32 adx_pid; optional int64 req; optional int64 res; optional int64 suc; optional int64 imp; optional double revenue; }"

いいえ

なし

column

読み取るフィールドのリスト。`type` はソースデータのデータ型を指定します。`index` はテキストファイル内のカラム番号(0 から開始)を指定します。`value` は現在の型が定数であることを指定します。このカラムのデータはソースファイルから読み取られず、`value` に基づいて自動的に生成されます。

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

"column": ["*"]

カラムフィールド情報を指定することもできます。設定は以下のとおりです。

"column":
    {
       "type": "long",
       "index": 0    // OSS テキストファイルの最初のカラムから int フィールドを取得します。
    },
    {
       "type": "string",
       "value": "alibaba"  // OSS Reader 内で文字列フィールド "alibaba" を生成し、現在のフィールドとして使用します。
    }
説明

指定するカラム情報において、`type` は必須です。`index` または `value` のいずれかを指定する必要があります。

はい

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

fileFormat

OSS 内のソースオブジェクトのファイル形式。有効な値は `csv` および `text` です。どちらの形式もカスタムデリミタをサポートしています。

はい

csv

fieldDelimiter

ファイルを読み取る際に使用される列区切り文字。

説明

OSS Reader がデータを読み取る際には、列区切り文字を指定する必要があります。指定しない場合、デフォルトはカンマ(,)になります。これは設定ページのデフォルト値でもあります。

デリミタが可視文字でない場合は、その Unicode エンコーディングを入力してください。例:\u001b または \u007c

はい

,

lineDelimiter

行区切り文字。

説明

このパラメーターは `fileFormat` が `text` に設定されている場合にのみ有効です。

いいえ

なし

compress

テキストファイルの圧縮形式。デフォルト値は空で、圧縮なしを意味します。サポートされている形式は gzipbzip2zip です。

いいえ

圧縮なし

encoding

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

いいえ

utf-8

nullFormat

テキストファイルでは、ヌルポインタを標準的な文字列で定義できません。`nullFormat` を使用して、どの文字列が null を表すかを定義します。例:

  • nullFormat:"null" を設定すると、データ同期はソース内の文字列 `null` を null フィールドとして扱います。

  • nullFormat:"\u0001"(不可視文字)を設定し、ソースデータが文字列 "\u0001" の場合、そのデータは null フィールドとして扱われます。

  • "nullFormat" パラメーターを設定しない場合、ソースデータは変換せずにそのまま宛先に書き込まれます。

いいえ

なし

skipHeader

CSV 形式のファイルのヘッダー行をスキップします。デフォルト値は false です。skipHeader パラメーターは圧縮ファイルではサポートされていません。

いいえ

false

csvReaderConfig

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

いいえ

なし

Writer スクリプトデモ:一般的な例

{
    "type":"job",
    "version":"2.0",
    "steps":[
        {
            "stepType":"stream",
            "parameter":{},
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"oss",// プラグイン名。
            "parameter":{
                "nullFormat":"",// null を表す文字列を定義します。
                "dateFormat":"",// 日付フォーマット。
                "datasource":"",// データソース。
                "writeMode":"",// 書き込みモード。
                "writeSingleObject":"false", // 同期されたデータを単一の OSS ファイルに書き込むかどうかを指定します。
                "encoding":"",// エンコード形式。
                "fieldDelimiter":",",// 列区切り文字。
                "fileFormat":"",// テキストファイル形式。
                "object":""// オブジェクトプレフィックス。
            },
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":"0"// エラーレコード数。
        },
        "speed":{
            "throttle":true,// throttle が false の場合、mbps パラメーターは無効になり、レートは制限されません。throttle が true の場合、レートは制限されます。
            "concurrent":1, // 同時実行ジョブ数。
            "mbps":"12"// レート制限。1 mbps は 1 MB/s に相当します。
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Writer スクリプトデモ:OSS への ORC または Parquet ファイルの書き込み

OSS への ORC または Parquet ファイルの書き込みには、HDFS Writer を再利用できます。既存の OSS Writer パラメーターに加えて、Path および FileFormat などの拡張パラメーターを使用できます。これらのパラメーターの詳細については、「HDFS Writer」をご参照ください。

以下は、OSS への ORC または Parquet ファイルの書き込み例です。

重要

以下のコードは参考用です。カラム名およびデータ型に応じてパラメーターを修正してください。コードをそのままコピーしないでください。

  • OSS への ORC ファイルの書き込み

    ORC ファイルを書き込むには、コードエディタを使用する必要があります。fileFormatorc に設定し、path を書き込むファイルのパスに設定し、column{"name": "your column name", "type": "your column type"} の形式で設定します。

    書き込みをサポートしている ORC 型は以下のとおりです。

    フィールド型

    OSS へのオフライン書き込み(ORC 形式)

    TINYINT

    サポート

    SMALLINT

    サポート

    INT

    サポート

    BIGINT

    サポート

    FLOAT

    サポート

    DOUBLE

    サポート

    TIMESTAMP

    サポート

    DATE

    サポート

    VARCHAR

    サポート

    STRING

    サポート

    CHAR

    サポート

    BOOLEAN

    サポート

    DECIMAL

    サポート

    BINARY

    サポート

    {
    "stepType": "oss",
    "parameter": {
    "datasource": "",
    "fileFormat": "orc",
    "path": "/tests/case61",
    "fileName": "orc",
    "writeMode": "append",
    "column": [
    {
    "name": "col1",
    "type": "BIGINT"
    },
    {
    "name": "col2",
    "type": "DOUBLE"
    },
    {
    "name": "col3",
    "type": "STRING"
    }
    ],
    "writeMode": "append",
    "fieldDelimiter": "\t",
    "compress": "NONE",
    "encoding": "UTF-8"
    }
    }
  • OSS への Parquet ファイルの書き込み

    {
    "stepType": "oss",
    "parameter": {
    "datasource": "",
    "fileFormat": "parquet",
    "path": "/tests/case61",
    "fileName": "test",
    "writeMode": "append",
    "fieldDelimiter": "\t",
    "compress": "SNAPPY",
    "encoding": "UTF-8",
    "parquetSchema": "message test { required int64 int64_col;\n required binary str_col (UTF8);\nrequired group params (MAP) {\nrepeated group key_value {\nrequired binary key (UTF8);\nrequired binary value (UTF8);\n}\n}\nrequired group params_arr (LIST) {\nrepeated group list {\nrequired binary element (UTF8);\n}\n}\nrequired group params_struct {\nrequired int64 id;\n required binary name (UTF8);\n }\nrequired group params_arr_complex (LIST) {\nrepeated group list {\nrequired group element {\n required int64 id;\n required binary name (UTF8);\n}\n}\n}\nrequired group params_complex (MAP) {\nrepeated group key_value {\nrequired binary key (UTF8);\nrequired group value {\nrequired int64 id;\n required binary name (UTF8);\n}\n}\n}\nrequired group params_struct_complex {\nrequired int64 id;\n required group detail {\nrequired int64 id;\n required binary name (UTF8);\n}\n}\n}",
    "dataxParquetMode": "fields"
    }
    }

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

パラメーター

説明

必須

デフォルト値

datasource

データソースの名前。このパラメーターの値は、コードエディタで追加したデータソースの名前と同じである必要があります。

はい

なし

object

OSS に書き込むファイルの名前。OSS はファイル名を使用してディレクトリ構造をシミュレートします。OSS におけるオブジェクト名の制限は以下のとおりです。

  • "object": "datax" を設定した場合、書き込まれるオブジェクト名は `datax` で始まり、ランダムな文字列が付加されます。

  • "object": "cdo/datax" を設定した場合、書き込まれるオブジェクト名は /cdo/datax で始まり、ランダムな文字列が付加されます。OSS ではフォワードスラッシュ (/) がディレクトリ区切り文字として使用されます。

ランダムな UUID の付加を避けたい場合は、"writeSingleObject" : "true" を設定してください。writeSingleObject の詳細については、その説明をご参照ください。

はい

なし

ossBlockSize

各データブロックのサイズ(MB 単位)。デフォルト値は 16 です。このパラメーターは `fileFormat` が parquet または ORC の場合にのみサポートされています。object パラメーターと同じレベルでこのパラメーターを設定できます。

OSS のフラグメントアップロードは最大 10,000 ブロックをサポートしているため、デフォルトの単一ファイルサイズは 160 GB に制限されています。ブロック数が制限を超える場合は、ブロックサイズを増やすことでより大きなファイルのアップロードをサポートできます。

いいえ

16

writeMode

書き込み前に既存データをどのように処理するかを指定します。

  • truncate:書き込み前にオブジェクト名プレフィックスに一致するすべてのオブジェクトをクリアします。例: "object":"abc" を設定した場合、`abc` で始まるすべてのオブジェクトがクリアされます。

  • append:書き込み前に処理を行いません。OSS Writer はオブジェクト名を使用して直接データを書き込み、ファイル名の競合を回避するためにランダムな UUID を付加します。例:オブジェクト名を `DataIntegration` と指定した場合、実際に書き込まれる名前は DI_****_****_**** になります。

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

はい

なし

writeSingleObject

データを単一ファイルに書き込むかどうかを指定します。

  • true:データを単一ファイルに書き込みます。データが読み取られなかった場合、空のファイルは作成されません。

  • false:データを複数のファイルに書き込みます。データが読み取られず、ファイルヘッダーが設定されている場合、ヘッダーのみを含む空のファイルが作成されます。それ以外の場合、空のファイルのみが作成されます。

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

  • 一部のシナリオ(例:ソースが Hologres の場合)では、データはシャード単位で読み取られます。同時実行数が 1 であっても、複数のファイルが生成される場合があります。

いいえ

false

fileFormat

オブジェクトファイルの形式。以下の形式がサポートされています。

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

  • text:書き込むデータを単純に列区切り文字で分割します。データに列区切り文字が含まれている場合でも、エスケープは行われません。

  • parquet:このファイルタイプを使用する場合、データ型を定義するために `parquetSchema` パラメーターを追加する必要があります。

    重要
    • Parquet 形式でデータを書き込むには、コードエディタに切り替えて `parquetSchema` を設定する必要があります。設定例については、「付録:スクリプトデモとパラメーター説明」をご参照ください。

    • `parquetSchema` を設定しない場合、DataWorks は特定のポリシーに従ってソースフィールドのデータ型に基づいてデータ型を変換します。変換ポリシーの詳細については、「付録:Parquet データ型の変換ポリシー」をご参照ください。

  • ORC:この形式を使用する場合、コードエディタに切り替える必要があります。

いいえ

text

compress

OSS に書き込まれるオブジェクトファイルの圧縮形式。このパラメーターはコードエディタで設定する必要があります。

重要

CSV および TEXT ファイルタイプは圧縮をサポートしていません。Parquet および ORC ファイルは SNAPPY 圧縮のみをサポートしています。

いいえ

なし

fieldDelimiter

列区切り文字。

いいえ

,

encoding

ファイルエンコーディングを設定します。

いいえ

utf-8

parquetSchema

このパラメーターは、OSS に Parquet ファイルを書き込む場合に必要です。オブジェクトファイルの構造を記述します。このパラメーターは fileFormatparquet に設定されている場合にのみ有効です。形式は以下のとおりです。

message MessageTypeName {
Required/Optional, Data type, Column name;
......................;
}

設定項目は以下のとおりです。

  • MessageTypeName:名前を入力します。

  • Required/Optional:`required` はフィールドが null にならないことを示します。`optional` はフィールドが null になる可能性があることを示します。すべてのフィールドを `optional` に設定することを推奨します。

  • データ型:Parquet ファイルは BOOLEAN、INT32、INT64、INT96、FLOAT、DOUBLE、BINARY(文字列型には BINARY を使用)、FIXED_LEN_BYTE_ARRAY 型をサポートしています。

説明

各行の設定は、最後の行を含めてセミコロンで終了する必要があります。

以下は例です。

message m {
optional int64 id;
optional int64 date_id;
optional binary datetimestring;
optional int32 dspId;
optional int32 advertiserId;
optional int32 status;
optional int64 bidding_req_num;
optional int64 imp;
optional int64 click_num;
}

いいえ

なし

nullFormat

テキストファイルでは、ヌルポインタを標準的な文字列で定義できません。nullFormat を使用して null を表す文字列を定義します。例: nullFormat="null" を設定し、ソースデータが null の場合、そのデータは null フィールドとして扱われます。

いいえ

なし

header

オブジェクトファイルのヘッダー。例: ["id", "name", "age"]

いいえ

なし

maxFileSize (高度な設定。コードレス UI ではサポートされていません。)

単一オブジェクトファイルの最大サイズ(MB 単位)。デフォルト値は 10,000 × 10 MB です。これは log4j でのログファイルサイズの制御に似ています。OSS のフラグメントアップロードを使用する場合、各ブロックは 10 MB です(これはログファイルローテーションの最小粒度でもあり、`maxFileSize` が 10 MB 未満の場合、10 MB として扱われます)。各 OSS InitiateMultipartUploadRequest は最大 10,000 ブロックをサポートしています。

ローテーションが発生すると、オブジェクト名は元のオブジェクトプレフィックスに _1, _2, _3 などのサフィックスとランダムな UUID を付加して形成されます。

説明
  • デフォルトの単位は MB です。

  • 設定例: "maxFileSize":300 は単一ファイルサイズを 300 MB に設定します。

  • maxFileSize は `csv` および `text` 形式に対してのみ有効です。これは同期タスクプロセスのメモリレベルで計算され、宛先ファイルの実際のサイズを正確に制御することはできません。データの膨張により、宛先の実際のファイルサイズが予想サイズを超える可能性があります。

いいえ

100,000

suffix (高度な設定。コードレス UI ではサポートされていません。)

生成されるファイル名のサフィックス。例: suffix.csv に設定した場合、最終的なファイル名は fileName****.csv になります。

いいえ

なし

付録:Parquet データ型の変換ポリシー

`parquetSchema` パラメーターを設定しない場合、DataWorks は以下のポリシーに従ってソースフィールドのデータ型を変換します。

変換後のデータ型

Parquet 型

Parquet 論理型

CHAR / VARCHAR / STRING

BINARY

UTF8

BOOLEAN

BOOLEAN

該当なし

BINARY / VARBINARY

BINARY

該当なし

DECIMAL

FIXED_LEN_BYTE_ARRAY

DECIMAL

TINYINT

INT32

INT_8

SMALLINT

INT32

INT_16

INT/INTEGER

INT32

該当なし

BIGINT

INT64

該当なし

FLOAT

FLOAT

該当なし

DOUBLE

DOUBLE

該当なし

DATE

INT32

DATE

TIME

INT32

TIME_MILLIS

TIMESTAMP/DATETIME

INT96

該当なし