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

DataWorks:OSS

最終更新日:Apr 21, 2026

OSS データソースは、OSS への読み取りおよび書き込みアクセスを提供します。このトピックでは、DataWorks が OSS のデータ同期をどのようにサポートするかについて説明します。

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

バッチデータの読み取り

OSS Reader は OSS からデータを読み取り、Data Integration が処理できる形式に変換します。OSS は非構造化データストレージサービスであるため、Reader は以下の特徴をサポートします。

サポート対象

サポート対象外

  • 二次元テーブルスキーマを持つ必要がある TXT ファイルをサポートします。

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

    説明

    テキスト形式 (TXT および CSV) は、gzipbzip2zip 圧縮をサポートします。

    複数のファイルを単一の圧縮アーカイブにパッケージ化することはできません。

  • ORC および Parquet 形式のファイルをサポートします。

  • さまざまなデータ型 (STRING として表現) の読み取り、列のプルーニング、および列定数をサポートします。

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

  • 複数オブジェクトからの同時読み取りをサポートします。

  • Reader は、単一のオブジェクト (ファイル) を複数のスレッドで同時に読み取ることはできません。

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

重要
  • OSS でデータを準備する際、CSV ファイルは標準の CSV 形式に準拠する必要があります。例えば、列内の二重引用符 (") は、二重引用符二つ ("") に置き換えてエスケープする必要があります。そうしないと、解析エラーが発生する可能性があります。ファイルに複数のデリミタが含まれている場合は、TXT ファイルタイプを使用することを推奨します。

  • OSS は、データをファイルとして保存する非構造化データソースです。同期タスクを実行する前に、フィールド構造が正しく設定されていることを確認してください。ソースデータの構造が変更された場合は、データ化けを防ぐためにタスク設定を更新する必要があります。

バッチデータの書き込み

OSS Writer は Data Integration 準拠のデータを変換し、テキストファイルとして OSS に書き込みます。OSS は非構造化データストレージサービスであるため、Writer は以下の特徴をサポートします。

サポート対象

サポート対象外

  • 二次元テーブルスキーマを持つテキストファイルへのデータ書き込みをサポートします。動画や画像などのバイナリラージオブジェクト (BLOB) を含むファイルの書き込みはサポートされていません。

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

  • ORC および Parquet 形式のファイルをサポートします。

    説明

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

  • 各スレッドが個別の part ファイルに書き込むマルチスレッド書き込みをサポートします。

  • 現在のファイルが指定されたサイズを超えた後、後続の書き込みのために新しいファイルが作成されるファイルローテーションをサポートします。

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

  • OSS はネイティブなデータ型を提供しないため、OSS Writer はすべてのデータを STRING 型として OSS オブジェクトに書き込みます。

  • ストレージクラスが [コールドアーカイブ] の OSS バケットにデータを書き込むことはできません。

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

カテゴリ

列の型

整数

LONG

文字列

STRING

浮動小数点

DOUBLE

ブール値

BOOLEAN

日時

DATE

リアルタイムデータの書き込み

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

  • 単一テーブルから、Hudi (0.12.x)、Paimon、Iceberg などのデータレイク形式へのリアルタイム書き込みを実行できます。

データソースの追加

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

説明

データ同期タスクの設定

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

単一テーブルのバッチ同期

単一テーブルのリアルタイム同期

単一テーブルのリアルタイム同期タスクの設定」をご参照ください。

データベース全体の同期

データベース全体のバッチ同期タスクの設定」および「データベース全体のリアルタイム同期タスクの設定」をご参照ください。

よくある質問

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

複数デリミタを持つ CSV ファイルを読み取る際のダーティデータの処理方法は?

付録:スクリプトのサンプルとパラメーター

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

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

一般的な Reader スクリプトの例

{
    "type":"job",
    "version":"2.0",// バージョン番号。
    "steps":[
        {
            "stepType":"oss",// プラグイン名。
            "parameter":{
                "nullFormat":"",// null 値を表す文字列。
                "compress":"",// 圧縮タイプ。
                "datasource":"",// データソース。
                "column":[// 列の定義。
                    {
                        "index":0,// 列インデックス。0 から始まります。
                        "type":"string"// データの型。
                    },
                    {
                        "index":1,
                        "type":"long"
                    },
                    {
                        "index":2,
                        "type":"double"
                    },
                    {
                        "index":3,
                        "type":"boolean"
                    },
                    {
                        "format":"yyyy-MM-dd HH:mm:ss", // 時刻フォーマット。「type」が「date」の場合に必須です。
                        "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,// true の場合、速度制限を有効にします。false の場合、「mbps」パラメーターは無視されます。
            "concurrent":1, // ジョブの同時実行数。
            "mbps":"12"// 速度制限の上限 (MB/s)。(1 mbps = 1 MB/s)。
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

OSS からの ORC または Parquet ファイルの読み取り

HDFS Reader を再利用することで、OSS から ORC または Parquet ファイルを読み取ることができます。そのためには、標準の 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.txt, folder_a/file2.txt

  • ワイルドカードパス

    • ワイルドカードを使用して、特定のパターンに一致する複数のファイルを指定できます。

    • *:0 文字以上の文字に一致します。

    • ?:ちょうど 1 文字に一致します。

    • 例:

      • abc*[0-9].txtabc0.txtabc10.txtabc_test_9.txt などのファイルに一致します。

      • abc?.txtabc1.txtabcX.txt などのファイルに一致します。

  • 動的パラメーターパス

    • パスにスケジューリングパラメーターを埋め込むことで、データ同期を自動化します。ジョブの実行時に、システムはこれらのパラメーターを実際の値に置き換えます。

    • 例えば、パスを raw_data/${bizdate}/abc.txt と設定すると、ジョブは毎日対応するビジネス日付のフォルダを動的に同期できます。

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

重要
  • ワイルドカードの使用には注意が必要です。特に * を使用すると、OSS パスの再帰的なスキャンがトリガーされます。ファイル数が多い場合、これにより大量のメモリと時間が消費され、メモリ不足エラーが発生する可能性があります。本番環境では、広範なワイルドカードの使用を避けてください。この問題が発生した場合は、同期する前にファイルを異なるディレクトリに分割してください。

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

2. 同時実行数とパフォーマンス

設定方法は、データ抽出の同時実行数を直接決定します:

  • シングルスレッドモード:単一の非圧縮ファイルを明示的なパスで指定すると、ジョブはシングルスレッドモードでデータを抽出します。

  • マルチスレッドモード:複数の明示的なファイルを指定するか、ワイルドカードで複数のファイルを一致させると、ジョブは同時読み取りを使用して抽出スループットを大幅に向上させます。同時実行数は Channel 設定で構成できます。

はい

なし

parquetSchema

このパラメーターを使用して、Parquet ファイル形式のスキーマを定義します。fileFormatparquet に設定されている場合にのみ適用されます。parquetSchema を指定した後、全体の設定が有効な JSON であることを確認してください。

message MessageTypeName {
required/optional, data_type, column_name;
......................;
}

parquetSchema の形式は次のとおりです:

  • MessageTypeName:メッセージタイプの名前。

  • Required/Optional:「required」はフィールドが null にできないことを意味し、「optional」は null にできることを意味します。すべてのフィールドを「optional」に設定することを推奨します。

  • Data type: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」は列の定数値を指定し、システムにソースファイルから読み取る代わりに値を生成するよう指示します。

デフォルトでは、次の例に示すように、すべての列を STRING データ型として読み取ることができます。

"column": ["*"]

次の例に示すように、各列の詳細を指定することもできます。

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

指定する各列について、「type」は必須であり、「index」または「value」のいずれかを指定する必要があります。

はい

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

fileFormat

OSS 内のソースオブジェクトのファイル形式。有効な値は「csv」と「text」です。両方の形式でカスタムデリミタがサポートされています。

はい

csv

fieldDelimiter

フィールドデリミタ。

説明

フィールドデリミタは必須です。指定しない場合、パラメーターはデフォルトでカンマ (,) になり、これは UI のデフォルトでもあります。

非表示文字は Unicode 表現で指定します (例:\u001b)。表示可能な文字にもこの形式を使用できます (例:パイプ記号の場合は \u007c)。

はい

,

lineDelimiter

行デリミタ。

説明

このパラメーターは、「fileFormat」が「text」に設定されている場合にのみ適用されます。

いいえ

なし

compress

ソースファイルの圧縮タイプ。このパラメーターが設定されていない場合、ファイルは非圧縮と見なされます。サポートされているタイプ:gzipbzip2zip

いいえ

圧縮なし

encoding

ソースファイルの文字エンコーディング。

いいえ

utf-8

nullFormat

ソースデータ内で null 値を表す文字列を指定します。これは、テキストファイルには null 値の標準的な表現がないために必要です。例:

  • nullFormat:"null" を設定すると、ソースデータ内のリテラル文字列「null」が null 値として扱われます。

  • nullFormat:"\u0001" を設定すると、ソースデータ内の文字列「\u0001」(非表示文字) が null 値として扱われます。

  • "nullFormat" パラメーターを省略すると、システムはソースデータをそのまま宛先に書き込み、値の変換は行いません。

いいえ

なし

skipHeader

CSV 形式のファイルには、タイトルとして機能するヘッダー行が含まれている場合があり、これをスキップする必要があります。デフォルトでは、この行はスキップされません。skipHeader パラメーターは、圧縮ファイルモードではサポートされていません。

いいえ

false

csvReaderConfig

CSV ファイルを解析するために使用される CsvReader の追加設定のマップ。このパラメーターが省略された場合、CsvReader はデフォルト設定を使用します。

いいえ

なし

Writer スクリプトの例

{
    "type":"job",
    "version":"2.0",
    "steps":[
        {
            "stepType":"stream",
            "parameter":{},
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"oss",// プラグイン名。
            "parameter":{
                "nullFormat":"",// どの文字列を null 値として解釈するかを定義します。
                "dateFormat":"",// 日付フォーマット。
                "datasource":"",// データソース。
                "writeMode":"",// 書き込みモード。
                "writeSingleObject":"false", // true の場合、すべてのデータを単一の OSS ファイルに書き込みます。
                "encoding":"",// ファイルエンコーディング。
                "fieldDelimiter":",",// フィールドデリミタ。
                "fileFormat":"",// ファイル形式。
                "object":""// オブジェクトプレフィックス。
            },
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":"0"// エラー上限。
        },
        "speed":{
            "throttle":true,// 速度制限を有効にします。false の場合、「mbps」パラメーターは無視されます。
            "concurrent":1, // ジョブの同時実行数。
            "mbps":"12"// 速度制限の上限 (MB/s)。(1 mbps = 1 MB/s)。
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

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

HDFS Writer を使用して、ORC または Parquet ファイルを OSS に書き込むことができます。このメソッドは、既存の OSS Writer パラメーターに加えて、pathfileFormat などの拡張設定パラメーターを追加します。これらのパラメーターの説明については、「HDFS Writer」をご参照ください。

以下の例は、ORC または Parquet ファイルを OSS に書き込む方法を示しています:

重要

以下のコードはデモンストレーションのみを目的としています。特定の列名と列の型に合わせてパラメーターを変更する必要があります。本番環境でこのコードをコピーして使用しないでください。

  • ORC ファイルを OSS に書き込む

    現在、ORC ファイルはコードエディタでのみ書き込み可能です。タスクを設定するには、コードエディタに切り替える必要があります。fileFormat パラメーターを orc に設定し、ファイルの path を指定し、各 column{"name":"your column name","type": "your column type"} の形式で定義します。

    オフライン書き込みでサポートされている 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"
    }
    ],
    "fieldDelimiter": "\t",
    "compress": "NONE",
    "encoding": "UTF-8"
    }
    }
  • Parquet ファイルを OSS に書き込む

    {
    "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 はオブジェクト名を使用してディレクトリ構造をシミュレートします。オブジェクト名には以下の規則があります:

  • "object": "datax" と設定すると、書き込まれるオブジェクト名は datax で始まり、サフィックスとしてランダムな文字列が追加されます。

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

ランダムな UUID サフィックスを付けたくない場合は、"writeSingleObject": "true" を設定します。詳細については、writeSingleObject パラメーターの説明をご参照ください。

はい

なし

ossBlockSize

OSS パートのサイズ。デフォルト値は 16 MB です。ファイルの出力形式が parquet または ORC の場合、このパラメーターを object パラメーターと同じレベルで設定できます。

OSS のマルチパートアップロードは 10,000 パートに制限されているため、デフォルトのパートサイズでは最大ファイルサイズが 160 GB に制限されます。より大きなファイルをアップロードするには、パートサイズを増やす必要があります。

いいえ

16

writeMode

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

  • truncate:新しいデータを書き込む前に、object パラメーターで指定されたプレフィックスに一致するすべてのオブジェクトを削除します。例えば、"object":"abc" と設定すると、abc プレフィックスを持つすべてのオブジェクトが削除されます。

  • append:クリーンアップを実行しません。OSS Writer は新しいデータを書き込み、指定されたオブジェクト名をプレフィックスとして使用し、一意の名前を保証するためにランダムな UUID を追加します。例えば、オブジェクト名を DataIntegration と指定すると、実際のオブジェクト名は DataIntegration_****_****_**** のようになります。

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

はい

なし

writeSingleObject

すべてのデータを単一のオブジェクトに書き込むかどうかを決定します。

  • true:すべてのデータを単一のオブジェクトに書き込みます。ソースからデータが読み取られない場合、空のファイルは作成されません。

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

説明
  • このパラメーターは ORC および Parquet 形式には適用されません。同時実行数が 1 より大きい場合、これらの形式でデータを単一ファイルに書き込むために使用することはできません。単一ファイルに書き込むには、同時実行数を 1 に設定する必要があります。ただし、これでもオブジェクト名にランダムなサフィックスが追加され、同期ジョブのパフォーマンスが低下する可能性があります。

  • Hologres ソースなど、場合によってはデータがシャードごとに読み取られます。これにより、同時実行数が 1 に設定されていても、複数の出力ファイルが生成されることがあります。

いいえ

false

fileFormat

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

  • csv:厳密な CSV 形式でデータを書き込みます。データにフィールドデリミタが含まれている場合、標準の CSV エスケープ規則に従って二重引用符 (") で囲んでエスケープされます。

  • text:指定されたフィールドデリミタを使用して、データをプレーンテキストとして書き込みます。csv とは異なり、この形式ではデータ内に現れるデリミタはエスケープされません。

  • parquet:このファイル形式を使用する場合、データスキーマを定義するために parquetSchema パラメーターを指定する必要があります。

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

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

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

いいえ

text

compress

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

重要

このパラメーターは Parquet および ORC ファイル形式にのみ適用され、SNAPPY 圧縮のみがサポートされています。csv および text 形式は圧縮をサポートしていません。

いいえ

なし

fieldDelimiter

出力データのフィールドデリミタ。

いいえ

,

encoding

出力ファイルの文字エンコーディングを指定します。

いいえ

utf-8

parquetSchema

fileFormatparquet に設定されている場合に必須です。このパラメーターは、出力 Parquet ファイルのスキーマを定義します。次の形式を使用します:

message MessageTypeName {
modifier, data_type, column_name;
......................;
}

設定項目は次のように説明されます:

  • MessageTypeName:メッセージタイプの名前。

  • modifier:required はフィールドが null 値を含めないことを示します。optional はフィールドが null 値を含めることができることを示します。すべてのフィールドを optional に設定することを推奨します。

  • data_type:サポートされている Parquet データ型には、BOOLEANINT32INT64INT96FLOATDOUBLEBINARY (文字列型用)、および 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

テキストファイルでは、標準の文字列を使用して null 値を定義することはできません。データ同期システムは、null 値を表す文字列を指定するために nullFormat パラメーターを提供します。例えば、nullFormat="null" を設定し、ソースデータが null の場合、データ同期システムはそれを null フィールドとして扱います。

いいえ

なし

header

出力ファイルに書き込むヘッダーを指定します。値は、["id", "name", "age"] のような文字列の JSON 配列である必要があります。

いいえ

なし

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

ログファイルのローテーションと同様に、ファイルがローテーションされる前の単一出力オブジェクトの最大サイズを制御します。マルチパートアップロードの場合、パートサイズは 10 MB であり、これが最小のローテーション粒度としても機能します。maxFileSize の値が 10 MB 未満の場合は 10 MB として扱われます。OSS の InitiateMultipartUploadRequest は最大 10,000 パートをサポートします。

ファイルがローテーションされると、新しいオブジェクト名は、プレフィックスとランダムな UUID を既に含むベースオブジェクト名にシーケンス番号 (例:_1, _2, _3) を追加して作成されます。

説明
  • 単位はメガバイト (MB) です。

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

  • maxFileSize パラメーターは csv および text 形式にのみ適用されます。サイズはメモリ内データに基づいて計算されるため、OSS 内のオブジェクトの実際のサイズは不正確になる場合があります。

いいえ

100,000

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

出力オブジェクト名に追加するサフィックスを指定します。例えば、suffix.csv に設定すると、最終的なオブジェクト名は object-prefix_random-uuid.csv のようになります。

いいえ

なし

付録:Parquet データ型の変換

parquetSchema を設定しない場合、DataWorks は以下に示すようにソースデータ型を自動的に変換します。

ソースの型

Parquet の型

Parquet の論理型

CHAR / VARCHAR / STRING

BINARY

UTF8

BOOLEAN

BOOLEAN

N/A

BINARY / VARBINARY

BINARY

N/A

DECIMAL

FIXED_LEN_BYTE_ARRAY

DECIMAL

TINYINT

INT32

INT_8

SMALLINT

INT32

INT_16

INT/INTEGER

INT32

N/A

BIGINT

INT64

N/A

FLOAT

FLOAT

N/A

DOUBLE

DOUBLE

N/A

DATE

INT32

DATE

TIME

INT32

TIME_MILLIS

TIMESTAMP/DATETIME

INT96

N/A