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

DataWorks:FTP データソース

最終更新日:Jul 18, 2026

DataWorks は、FTP サーバーとの間でデータの読み取りおよび書き込みを行うためのデータソースとして FTP をサポートしています。

制限事項

FTP Reader は、リモート FTP ファイルからデータを読み取り、Data Integration プロトコルに変換します。リモート FTP ファイルは非構造化データとして保存されます。

サポート対象

サポート対象外

  • テキストファイルからのみデータを読み取ります。テキストファイル内のデータスキーマは二次元テーブルである必要があります。

  • カスタムデリミタを使用した CSV 形式のファイルからデータを読み取ります。

  • さまざまなデータの型を文字列として読み取ります。カラムプルーニングおよび定数カラムがサポートされています。

  • 再帰的な読み取りおよびファイル名フィルターがサポートされています。

  • ファイル圧縮がサポートされています。サポートされる圧縮形式は、gzip、bzip2、zip、lzo、および lzo_deflate です。

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

  • 並行スレッドによる単一ファイルの同時読み取り。これは内部のファイル分割アルゴリズムを必要とします。

  • 技術的な制約により、並行スレッドによる単一の圧縮ファイルの同時読み取りはサポートされていません。

FTP Writer は、Data Integration プロトコルに基づいてデータを変換し、FTP サーバー上のファイルに書き込みます。

サポート対象

サポート対象外

  • テキストファイルへのみデータを書き込みます。動画などの BLOB データはサポートされていません。テキストファイル内のデータスキーマは二次元テーブルである必要があります。

  • カスタムデリミタを使用した CSV 形式および TEXT 形式のファイルにデータを書き込みます。

  • 並行スレッドを使用してデータを書き込みます。各スレッドは異なるサブファイルにデータを書き込みます。

  • 単一ファイルへの同時書き込み。

  • ネイティブデータの型。FTP Writer はすべてのデータを STRING 型として書き込みます。

  • データ書き込み時のファイル圧縮。

サポートされるデータの型

リモート FTP ファイルにはネイティブなデータの型がありません。代わりに、Data Integration 内の FTP Reader によってデータの型が定義されます。

Data Integration の型

FTP の型

LONG

LONG

DOUBLE

DOUBLE

STRING

STRING

BOOLEAN

BOOLEAN

DATE

DATE

データソースの追加

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

データ同期タスクの開発

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

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

付録:スクリプトサンプルおよびパラメーター

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

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

Reader スクリプトサンプル

{
    "type":"job",
    "version":"2.0",// バージョン番号。
    "steps":[
        {
            "stepType":"ftp",// プラグイン名。
            "parameter":{
                "path":[],// ファイルパス。
                "nullFormat":"",// NULL 値。
                "compress":"",// 圧縮形式。
                "datasource":"",// データソース。
                "column":[// カラム。
                    {
                        "index":0,// ID。
                        "type":""// データの型。
                    }
                ],
                "skipHeader":"",// ヘッダーを含めるかどうかを指定します。
                "fieldDelimiter":",",// 列区切り文字。
                "encoding":"UTF-8",// エンコーディング形式。
                "fileFormat":"csv"// ファイル形式。
            },
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"stream",
            "parameter":{},
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":"0"// 許容されるダーティデータレコードの最大数。
        },
        "speed":{
        "throttle":true,// false の場合、mbps パラメーターは無視され、速度制限は適用されません。true の場合、mbps 値に基づいて速度制限が適用されます。
            "concurrent":1, // ジョブの同時実行数。
            "mbps":"12"// 速度制限レート。1 mbps = 1 MB/s。
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

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

パラメーター

説明

必須

デフォルト

datasource

データソースの名前。DataWorks で設定したデータソース名と一致している必要があります。

はい

なし

path

リモート FTP ファイルシステム上のソースファイルのパス。ファイル名拡張子を含むソースファイルの完全なパスを指定する必要があります。複数のパスを指定できます。

  • 単一のリモート FTP ファイルを指定した場合、FTP Reader はデータ抽出に単一スレッドのみを使用できます。今後の FTP Reader のバージョンでは、並行スレッドを使用した単一の非圧縮ファイルからの同時読み取りがサポートされる予定です。

  • 複数のリモート FTP ファイルを指定した場合、FTP Reader は並行スレッドを使用してデータを抽出できます。同時スレッド数はチャンネル数で指定されます。

  • ワイルドカードを指定した場合、FTP Reader は複数のファイルを走査して検出しようと試みます。たとえば、/ を指定すると、FTP Reader は / ディレクトリ内のすべてのファイルを読み取ります。/bazhen/ を指定すると、FTP Reader は /bazhen/ ディレクトリ内のすべてのファイルを読み取ります。FTP Reader はアスタリスク (*) のみをファイルワイルドカードとしてサポートしています。また、ファイル名およびファイルパスを柔軟に構成するためにスケジューリングパラメーターを使用することもできます。

説明
  • アスタリスク (*) ワイルドカードの使用は避けてください。このワイルドカードは Java 仮想マシン (JVM) のメモリ不足 (OOM) エラーを引き起こす可能性があります。

  • Data Integration は、ジョブ内で同期されるすべてのテキストファイルを単一のデータテーブルと見なします。すべてのファイルが同じスキーマで処理できることを保証する必要があります。

  • ファイルが CSV 形式であること、および Data Integration システムがそれらに対する読み取り権限を持っていることを保証する必要があります。

  • 指定されたパスに一致するファイルが見つからない場合、データ同期タスクは失敗します。

はい

なし

column

読み取るカラムのリスト。type はソースデータのデータの型を指定します。index はデータを読み取るカラムを指定します。値は 0 から始まります。value は定数カラムを指定します。この場合、ソースファイルからデータは読み取られず、指定された値に基づいてシステムがカラムを生成します。

デフォルトでは、"column":["*"] 構成を使用して、すべてのデータを STRING 型として読み取ることができます。column フィールドは次のように指定できます。

{
    "type": "long",
    "index": 0    // リモート FTP テキストファイルの最初のカラムからデータを INT フィールドとして読み取ります。
  },
  {
    "type": "string",
    "value": "alibaba"  // FTP Reader で値が alibaba の文字列フィールドを生成します。
  }

指定された column に対しては、type を指定し、index または value のいずれかを選択する必要があります。

はい

なし

fieldDelimiter

ソースファイル内のカラムを区切るために使用されるデリミタ。

説明

FTP Reader がデータを読み取るには、デリミタを指定する必要があります。デリミタを指定しない場合、デフォルトのカンマ (,) が使用されます。UI 上でもデフォルトでカンマ (,) が指定されています。

はい

,

skipHeader

CSV 形式のファイルにはヘッダーが含まれている場合があります。ヘッダーをスキップできます。デフォルトではヘッダーはスキップされません。このパラメーターは圧縮ファイルではサポートされていません。

いいえ

false

encoding

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

いいえ

utf-8

nullFormat

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

  • このパラメーターを nullFormat:"null" に設定し、ソースデータが文字列 "null" の場合、Data Integration はソースデータを NULL 値として処理します。

  • このパラメーターを nullFormat:"\u0001" に設定し、ソースデータが \u0001 文字列の場合、Data Integration はソースデータを NULL 値として処理します。

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

いいえ

なし

markDoneFileName

マーク完了ファイル名。データ同期タスク開始前に、システムはマーク完了ファイルの存在を確認します。ファイルが存在しない場合、システムは特定の時間待機した後、再度確認します。ファイルが検出された後にのみタスクが開始されます。

いいえ

なし

maxRetryTime

マーク完了ファイル確認の再試行回数。デフォルト値は 60 です。再試行間隔は 1 分で、合計待ち時間は 60 分になります。

いいえ

60

csvReaderConfig

CSV ファイルを読み取るために使用されるパラメーター。値は Map 型である必要があります。CSV ファイルは CsvReader によって読み取られます。複数の構成が利用可能です。このパラメーターを設定しない場合、デフォルト値が使用されます。

いいえ

なし

fileFormat

ソースファイルの形式。デフォルトでは、ファイルは CSV ファイルとして読み取られ、論理的な二次元テーブルとして処理されます。このパラメーターを binary に設定すると、ファイルはバイナリ形式でコピーされます。

このパラメーターは通常、FTP や OSS などのストレージシステム間でディレクトリ構造をミラーリングする際に使用されます。ほとんどの場合、このパラメーターを設定する必要はありません。

いいえ

なし

Writer スクリプトサンプル

{
    "type":"job",
    "version":"2.0",// バージョン番号。
    "steps":[
        { 
            "stepType":"stream",
            "parameter":{},
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"ftp",// プラグイン名。
            "parameter":{
                "path":"",// ファイルパス。
                "fileName":"",// ファイル名。
                "nullFormat":"null",// NULL 値。
                "dateFormat":"yyyy-MM-dd HH:mm:ss",// 日付形式。
                "datasource":"",// データソース。
                "writeMode":"",// 書き込みモード。
                "fieldDelimiter":",",// 列区切り文字。
                "encoding":"",// エンコーディング形式。
                "fileFormat":""// ファイル形式。
            },
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":"0"// 許容されるダーティデータレコードの最大数。
        },
        "speed":{
            "throttle":true,// false の場合、mbps パラメーターは無視され、速度制限は適用されません。true の場合、mbps 値に基づいて速度制限が適用されます。
            "concurrent":1, // ジョブの同時実行数。
            "mbps":"12"// 速度制限レート。1 mbps = 1 MB/s。
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

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

パラメーター

説明

必須

デフォルト

datasource

データソースの名前。DataWorks で設定したデータソース名と一致している必要があります。

はい

なし

timeout

FTP サーバーへの接続タイムアウト期間。単位:ミリ秒。

いいえ

60,000 (1 分)

path

FTP ファイルシステム上の宛先パス。FTP Writer は、このパラメーターで指定されたディレクトリに複数のファイルを書き込みます。

はい

なし

fileName

FTP Writer がデータを書き込むファイル名。各スレッドの実際のファイル名を作成するために、このファイル名にランダムなサフィックスが付加されます。

はい

なし

singleFileOutput

デフォルトでは、FTP Writer は指定された fileName にランダムなサフィックスを付加して、各スレッド用の固有のファイル名を作成します。ランダムなサフィックスを追加したくない場合は、このパラメーターを true に設定します。その場合、出力ファイル名は指定した内容そのものになります。

いいえ

false

writeMode

書き込み前のデータクリアモード。

  • truncate:singleFileOutputtrue の場合、宛先ディレクトリ内に同名のファイルが存在する場合、データ書き込み前に削除されます。singleFileOutputfalse の場合、宛先ディレクトリ内に指定された fileName プレフィックスを持つすべてのファイルがデータ書き込み前に削除されます。

  • append:データはクリアされません。FTP Writer は指定された fileName を使用して直接ファイルを書き込み、ファイル名の競合を回避します。

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

はい

なし

fieldDelimiter

宛先ファイル内のカラムを区切るために使用されるデリミタ。

はい (単一文字のみ)

なし

skipHeader

CSV 形式のファイルにはスキップが必要なヘッダーが含まれている場合があります。デフォルトではヘッダーはスキップされません。圧縮ファイルでは skipHeader はサポートされていません。

いいえ

false

compress

サポートされる圧縮形式:gzip および bzip2

いいえ

圧縮なし

encoding

宛先ファイルのエンコーディング。

いいえ

utf-8

nullFormat

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

たとえば、nullFormat="null" を設定すると、ソースデータがヌルポインタの場合、Data Integration はそれをリテラル文字列 'null' (4 文字) にシリアル化します。

いいえ

なし

dateFormat

DATE 型のデータをファイルにシリアル化する際の形式。例:"dateFormat":"yyyy-MM-dd"

いいえ

なし

fileFormat

宛先ファイルの形式。有効な値:CSV および TEXT。CSV は厳密な形式です。書き込むデータに列区切り文字が含まれている場合、CSV エスケープルールに基づいて二重引用符 (") でエスケープされます。TEXT はシンプルな形式で、データを列区切り文字で区切ります。データ内のデリミタはエスケープされません。

いいえ

TEXT

header

テキストファイルに書き込むヘッダー。スクリプトモードでは、ヘッダー情報を構成できます。たとえば、このパラメーターを "header":["id","name","age"] に設定すると、idname、および age が FTP ファイルの最初の行にヘッダーとして書き込まれます。

いいえ

なし

markDoneFileName

  • マーク完了ファイル名。データ同期タスクが完了すると、システムはマーク完了ファイルを生成します。このファイルを確認することで、タスクが成功したかどうかを判断できます。このファイルには絶対パスを指定する必要があります。

  • 定期的なバッチタスクの場合、ファイル名にスケジューリングパラメーターを含めてください。たとえば、ファイル名を /user/ftp/markDone_${bizdate}.txt に設定できます。ここで、${bizdate} はスケジューリングパラメーターです。

いいえ

なし