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

DataWorks:OSS-HDFS

最終更新日:Mar 01, 2026

OSS-HDFS サービス (JindoFS サービス) は、クラウドネイティブのデータレイクストレージプロダクトです。OSS-HDFS データソースは、OSS-HDFS との間でデータの読み書きを行うための双方向チャネルを提供します。このトピックでは、DataWorks が OSS-HDFS に対して提供するデータ同期機能について説明します。

制限事項

オフライン読み取り

  • OSS-HDFS Reader を使用する際の注意事項は次のとおりです。

    リソースグループから OSS-HDFS へのネットワーク接続は複雑になる場合があります。データ同期タスクを実行するには、サーバーレスリソースグループ (推奨) またはデータ統合専用リソースグループを使用してください。ご利用のリソースグループがネットワーク経由で OSS-HDFS にアクセスできることを確認してください。

  • OSS-HDFS Reader は、次の機能をサポートしています。

    • text、csv、orc、parquet 形式のファイルをサポートしています。ファイルの内容は、論理的な二次元テーブルである必要があります。

    • 複数のデータ型と列定数の読み取りをサポートしています。

    • 再帰的な読み取りと、ワイルドカードの* および ? をサポートしています。

    • 複数ファイルからの同時読み取りをサポートしています。

重要

OSS-HDFS Reader は、単一ファイルからのマルチスレッドによる同時読み取りをサポートしていません。これは、単一ファイルに対する内部的なチャンク分割アルゴリズムによるものです。

オフライン書き込み

OSS-HDFS Writer を使用する際の注意事項は次のとおりです。

  • OSS-HDFS Writer は、text、orc、parquet 形式のファイルのみをサポートしています。ファイルの内容は、論理的な二次元テーブルである必要があります。

  • テキストファイルの場合、OSS-HDFS ファイルへの書き込みに使用する区切り文字が、Hive でテーブルを作成する際に使用した区切り文字と同じであることを確認してください。これにより、OSS-HDFS に書き込まれたデータが Hive テーブルのフィールドと正しく関連付けられます。

リアルタイム書き込み

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

  • Hudi 形式バージョン 0.14.x のリアルタイム書き込みをサポートしています。

実装プロセス

OSS-HDFS Writer の実装プロセスは次のとおりです。

  1. 指定されたパスに基づいて、OSS-HDFS ファイルシステムに一時フォルダが作成されます。

    フォルダ名は path_random ルールに従って命名されます。

  2. 読み取ったファイルは、この一時フォルダに書き込まれます。

  3. すべてのデータが書き込まれた後、ファイルは一時フォルダから指定の宛先フォルダに移動されます。システムはファイル名が一意であることを保証します。

  4. 一時フォルダは削除されます。OSS-HDFS への接続が中断された場合は、手動で一時フォルダと書き込まれたファイルを削除する必要があります。

サポートされるフィールドタイプ

オフライン読み取り

ParquetFile、ORCFile、TextFile、CsvFile のデータ型は、次の表に示すように、Data Integration がサポートする内部データ型に変換されます。

型カテゴリ

OSS-HDFS データ型

整数

TINYINT、SMALLINT、INT、BIGINT

浮動小数点

FLOAT、DOUBLE、DECIMAL

文字列

STRING、CHAR、VARCHAR

日付と時刻

DATE、TIMESTAMP

ブール値

BOOLEAN

説明
  • LONG:OSS-HDFS ファイル内の整数データ (例:123456789)。

  • DOUBLE:OSS-HDFS ファイル内の浮動小数点データ (例:3.1415)。

  • BOOLEAN:OSS-HDFS ファイル内のブール値データ (例:true または false)。値は大文字と小文字を区別しません。

  • DATE:OSS-HDFS ファイル内の日付と時刻のデータ (例:2014-12-31 00:00:00)。

オフライン書き込み

OSS-HDFS Writer は、TextFile、ORCFile、ParquetFile 形式のファイルを OSS-HDFS ファイルシステム内の指定されたパスに書き込みます。

サポートされているデータ型を次の表に示します。

型カテゴリ

OSS-HDFS データ型

整数

TINYINT、SMALLINT、INT、BIGINT

浮動小数点

FLOAT、DOUBLE

文字列

CHAR、VARCHAR、STRING

ブール値

BOOLEAN

日付と時刻

DATE、TIMESTAMP

データソースの追加

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

データ同期タスクの開発

同期タスクを構成するためのエントリポイントと手順については、次の構成ガイドをご参照ください。

単一テーブルのオフライン同期タスクの構成

単一テーブルのリアルタイム同期タスクの構成

詳細については、「単一テーブルのリアルタイム増分同期の構成」および「DataStudio でリアルタイム同期タスクを構成」をご参照ください。

データベース全体のリアルタイムでの完全同期および増分同期タスクの構成

詳細については、「データベース全体のリアルタイム同期タスクの構成」をご参照ください。

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

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

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

Reader スクリプトデモ

{
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "oss_hdfs",// プラグイン名
            "parameter": {
                "path": "",// 読み取るファイルのパス。
                "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", // 日付形式
                        "index": 4,
                        "type": "date"
                    }
                ],
                "fieldDelimiter": ",",// 列区切り文字
                "encoding": "UTF-8",// エンコード形式
                "fileFormat": ""// テキストタイプ
            },
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "stream",
            "parameter": {},
            "name": "Writer",
            "category": "writer"
        }
    ],
    "setting": {
        "errorLimit": {
            "record": ""// エラーレコード数
        },
        "speed": {
            "concurrent": 3,// ジョブの同時実行数
            "throttle": true, // throttle が false に設定されている場合、mbps パラメーターは有効にならず、レート制限は適用されません。throttle が true に設定されている場合、レート制限が適用されます。
            "mbps":"12"// レート制限。1 mbps = 1 MB/s。
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

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

パラメーター

説明

必須

デフォルト値

path

読み取るファイルのパス。

  • 単一の OSS-HDFS ファイルを指定した場合、OSS-HDFS Reader は単一のスレッドでのみデータを抽出できます。

  • 複数の OSS-HDFS ファイルを指定した場合、OSS-HDFS Reader は複数のスレッドを使用してデータを抽出できます。同時実行スレッド数は `concurrent` パラメーターで指定します。複数のファイルを読み取るには、/hadoop/data_201704* のような単純な正規表現をマッチングに使用できます。ファイル名が規則的なパターンで時間によって付けられている場合は、スケジューリングパラメーターを使用できます。スケジューリングパラメーターは、業務時間に基づいて動的に置き換えられます。詳細については、「スケジューリングパラメーターでサポートされる形式」をご参照ください。

    説明

    実際の同時実行スレッド数は、読み取る OSS-HDFS ファイルの数とジョブの同時実行数に設定した値のうち、小さい方の値になります。

  • ワイルドカードを指定した場合、OSS-HDFS Reader は複数のファイルを走査して識別します。たとえば、/ を指定するとルートディレクトリ内のすべてのファイルが読み取られ、/oss-hdfs/ を指定すると下流の oss-hdfs ディレクトリ内のすべてのファイルが読み取られます。OSS-HDFS Reader は、ファイルのワイルドカードとして *? のみをサポートします。構文は、一般的な Linux コマンドラインのファイルのワイルドカードに似ています。

重要
  • Data Integration は、同期ジョブで読み取るすべてのファイルを単一のデータテーブルとして扱います。すべてのファイルが同じスキーマに適応できることを確認する必要があります。

  • OSS-HDFS データソースを構成する際に提供する AccessKey ペアは、対応する OSS-HDFS からの読み取り権限を持っている必要があります。

はい

なし

fileFormat

ファイルタイプ。このパラメーターは textorc、または parquet にのみ設定できます。

OSS-HDFS Reader はファイルタイプを自動的に検出し、対応する読み取りポリシーを使用します。データ同期の前に、OSS-HDFS Reader は指定されたパス内の同期対象のすべてのファイルの形式が fileFormat の値と同じであるかを確認します。形式が異なる場合、タスクは失敗します。

fileFormat の有効な値を以下に示します。

  • text:TEXT ファイル形式を示します。

  • orc:ORC ファイル形式を示します。

  • csv:通常の OSS-HDFS ファイル形式 (論理的な二次元テーブル) を示します。

  • parquet:通常の Parquet ファイル形式を示します。

はい

なし

column

読み取るフィールドのリスト。デフォルトでは、パラメーターを "column": ["*"] に設定することで、すべてのデータを STRING 型として読み取ることができます。

次のように列フィールド情報を指定することもできます。パラメーターは次のように説明されます。

  • type:ソースデータの型を指定します。

  • index:現在の列のソースとなるテキストファイル内の列番号 (0 から始まる) を指定します。

  • value:現在の型が定数であることを指定します。データはソースファイルから読み取られず、代わりに value に基づいて対応する列が自動的に生成されます。

説明

ファイルデータ列 (index) または定数列 (value) のいずれかを構成できます。

{
  "type": "long",
  "index": 0
  // ローカルテキストファイルの最初の列 (インデックスは 0 から始まる) から LONG フィールドを取得します。index は、列データがデータファイルから取得されることを示します。
},
{
  "type": "string",
  "value": "alibaba"
  // HDFS Reader は、現在のフィールドとして alibaba という名前の文字列フィールドを内部的に生成します。value は定数列を示します。
}

はい

なし

fieldDelimiter

データの読み取りに使用するフィールド区切り文字。OSS-HDFS Reader が TextFile データを読み取る場合、フィールド区切り文字を指定する必要があります。このパラメーターを指定しない場合、デフォルト値のカンマ (,) が使用されます。OSS-HDFS Reader が ORC または PARQUET データを読み取る場合、フィールド区切り文字を指定する必要はありません。

いいえ

,

encoding

ファイルの読み取りに使用するエンコード形式。

いいえ

utf-8

nullFormat

テキストファイルでは、標準の文字列を使用してヌルポインタを定義することはできません。Data Integration は、どの文字列が null 値を表すかを定義するために nullFormat パラメーターを提供します。

たとえば、nullFormat:"null" と設定すると、Data Integration はソースデータの `null` を null フィールドとして扱います。

いいえ

なし

compress

gzip、bzip2、snappy 圧縮のみがサポートされています。

いいえ

なし

Writer スクリプトデモ

{
    "type": "job",
    "version": "2.0",// バージョン番号。
    "steps": [
        {
            "stepType": "stream",
            "parameter": {},
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "oss_hdfs",// プラグイン名。
            "parameter": {
                "path": "",// OSS-HDFS ファイルシステムにファイルを格納するパス。
                "fileName": "",// OSS-HDFS Writer によって書き込まれるファイルの名前。
                "compress": "",// OSS-HDFS ファイルの圧縮タイプ。
                "datasource": "",// データソース。
                "column": [
                    {
                        "name": "col1",// フィールド名。
                        "type": "string"// フィールドタイプ。
                    },
                    {
                        "name": "col2",
                        "type": "int"
                    },
                    {
                        "name": "col3",
                        "type": "double"
                    },
                    {
                        "name": "col4",
                        "type": "boolean"
                    },
                    {
                        "name": "col5",
                        "type": "date"
                    }
                ],
                "writeMode": "",// 書き込みモード。
                "fieldDelimiter": ",",// 列区切り文字。
                "encoding": "",// エンコード形式。
                "fileFormat": "text"// テキストタイプ。
            },
            "name": "Writer",
            "category": "writer"
        }
    ],
    "setting": {
        "errorLimit": {
            "record": ""// エラーレコード数。
        },
        "speed": {
            "concurrent": 3,// ジョブの同時実行数。
            "throttle": false // false はレート制限が適用されないことを示し、以下のレート制限速度は有効になりません。true はレート制限が適用されることを示します。
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

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

パラメーター

説明

必須

デフォルト値

fileFormat

ファイルタイプ。このパラメーターは textorc、または parquet にのみ設定できます。

  • text:ファイルがテキストファイル形式で書き込まれることを示します。

  • orc:ファイルが ORC ファイル形式で書き込まれることを示します。

  • parquet:ファイルが parquet ファイル形式で書き込まれることを示します。

はい

なし

path

データが格納される OSS-HDFS ファイルシステム内のパス。OSS-HDFS Writer は、同時実行数の構成に基づいて、`path` で指定されたディレクトリに複数のファイルを書き込みます。

Hive テーブルと関連付ける場合、OSS-HDFS 上の Hive テーブルのストレージパスを指定します。たとえば、Hive で設定されたデータウェアハウスのストレージパスを指定します。

はい

なし

fileName

OSS-HDFS Writer によって書き込まれるファイルの名前。実際の実行中、このファイル名にランダムなサフィックスが追加され、各スレッドの実際のファイル名が作成されます。

はい

なし

column

データが書き込まれるフィールド。列のサブセットへの書き込みはサポートされていません。

Hive のテーブルと関連付ける場合、テーブル内のすべてのフィールド名とフィールドタイプを指定する必要があります。`name` はフィールド名を指定し、`type` はフィールドタイプを指定します。

次のように列フィールド情報を指定できます。

{
    "column":
    [
        {
            "name": "userName",
            "type": "string"
        },
        {
            "name": "age",
            "type": "long"
        }
    ]
}

はい (fileFormat が parquet に設定されている場合、このパラメーターを指定する必要はありません。)

なし

writeMode

OSS-HDFS Writer がデータを書き込む前のデータクリーンアップモード:

  • append:書き込み前に処理は実行されません。Data Integration OSS-HDFS Writer はファイル名を直接使用してデータを書き込み、ファイル名の競合がないことを保証します。

  • nonConflict:ディレクトリ内に `fileName` プレフィックスを持つファイルが存在する場合、エラーが報告されます。

  • truncate:書き込み前に、`fileName` プレフィックスに一致するすべてのファイルがクリアされます。たとえば、"fileName": "abc" と設定すると、対応するディレクトリ内の `abc` で始まるすべてのファイルがクリアされます。

はい

なし

fieldDelimiter

OSS-HDFS Writer のフィールド区切り文字。

説明

単一文字の区切り文字のみがサポートされています。複数の文字を入力すると、実行時エラーが発生します。

はい (fileFormat が parquet に設定されている場合、このパラメーターを指定する必要はありません。)

なし

compress

OSS-HDFS ファイルの圧縮タイプ。このパラメーターを空のままにすると、圧縮は使用されません。

テキストファイルの場合、gzip および bzip2 圧縮タイプがサポートされています。

いいえ

なし

encoding

ファイルの書き込みに使用するエンコード形式。

いいえ

utf-8

parquetSchema

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

message MessageName {
RequiredOrOptional DataType FieldName;
.....................;
}

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

  • メッセージ名:名前を入力します。

  • Required:`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;
}

いいえ

なし