FTP データソースは、FTP サーバーとの間でデータを読み書きするための双方向チャネルを提供します。このトピックでは、DataWorks における FTP データソースのデータ同期機能について説明します。
制限事項
FTP Reader は、リモートの FTP ファイルからデータを読み取り、データ同期プロトコルで要求される形式に変換します。リモートの FTP ファイルは本質的に非構造化であるため、FTP Reader はデータ同期に関して以下の特徴をサポートしています:
サポート | 非サポート |
|
|
FTP Writer は、Data Integration プロトコルで要求される形式からデータを変換し、FTP ファイルに書き込みます。FTP ファイルは本質的に非構造化であるため、FTP Writer は以下の特徴をサポートしています:
サポート | 非サポート |
|
|
サポートしているフィールドタイプ
リモートの FTP ファイルにはネイティブのデータ型がありません。したがって、このセクションに記載されているフィールドタイプは DataX FtpReader によって定義されています。
DataX 内部タイプ | リモート FTP ファイルのデータ型 |
LONG | LONG |
DOUBLE | DOUBLE |
STRING | STRING |
BOOLEAN | BOOLEAN |
DATE | DATE |
データソースの追加
DataWorks で同期タスクを開発する前に、「データソース管理」の指示に従って、必要なデータソースを DataWorks に追加する必要があります。データソースを追加する際に、DataWorks コンソールで パラメーターの説明 を表示して、各パラメーターの意味を理解できます。
データ同期タスクの開発
同期タスクを構成するためのエントリポイントと手順については、以下の構成ガイドをご参照ください。
単一テーブルのオフライン同期タスクの構成ガイド
詳細については、「コードレス UI で同期タスクを構成する」および「コードエディタで同期タスクを構成する」をご参照ください。
コードエディタでタスクを構成するためのスクリプトデモとパラメーターの説明については、「付録:スクリプトのデモとパラメーターの説明」をご参照ください。
付録:スクリプトのデモとパラメーターの説明
コードエディタを使用したバッチ同期タスクの構成
コードエディタを使用してバッチ同期タスクを構成する場合、統一されたスクリプト形式の要件に基づいて、スクリプト内の関連パラメーターを構成する必要があります。詳細については、「コードエディタでタスクを構成する」をご参照ください。以下では、コードエディタを使用してバッチ同期タスクを構成する際に、データソースに対して構成する必要があるパラメーターについて説明します。
Reader スクリプトのデモ
{
"type":"job",
"version":"2.0",// バージョン番号。
"steps":[
{
"stepType":"ftp",// プラグイン名。
"parameter":{
"path":[],// ファイルパス。
"nullFormat":"",// NULL 値。
"compress":"",// 圧縮形式。
"datasource":"",// データソース。
"column":[// フィールド。
{
"index":0,// シリアル番号。
"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,// throttle を false に設定すると、mbps パラメーターは有効にならず、レート制限は適用されません。throttle を true に設定すると、レート制限が適用されます。
"concurrent":1, // 同時実行ジョブ数。
"mbps":"12"// レート制限。1 mbps は 1 MB/s に相当します。
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}Reader スクリプトのパラメーター
パラメーター | 説明 | 必須 | デフォルト値 |
datasource | データソースの名前。コードエディタはデータソースの追加をサポートしています。このパラメーターの値は、追加されたデータソースの名前と同じである必要があります。 | はい | なし |
path | リモート FTP ファイルシステム内のファイルのパスと名前。ファイル名と拡張子を含む完全なパスを指定します。複数のパスを指定できます。
説明
| はい | なし |
column | 読み取るフィールドのリスト。type はソースデータの型を指定します。index はテキストファイル内のフィールドの列番号を指定します。index の値は 0 から始まります。value は、現在のフィールドが定数であることを指定します。データはソースファイルから読み取られず、代わりに value の値に基づいて対応する列が自動的に生成されます。 デフォルトでは、パラメーターを 指定する column 情報では、type は必須です。index または value のいずれかを指定する必要があります。 | はい | なし |
fieldDelimiter | データを読み取る際のフィールド区切り文字。 説明 FTP Reader がデータを読み取る際には、フィールド区切り文字を指定する必要があります。このパラメーターを指定しない場合、デフォルト値 (,) が使用されます。UI も (,) をデフォルト値として使用します。 | はい | , |
skipHeader | CSV 形式のファイルには、スキップする必要があるヘッダー行が含まれている場合があります。デフォルトでは、ヘッダー行はスキップされません。skipHeader は圧縮ファイルではサポートされていません。 | いいえ | false |
encoding | 読み取るファイルのエンコード形式。 | いいえ | utf-8 |
nullFormat | テキストファイルでは、標準の文字列を使用してヌルポインタを定義することはできません。データ同期は、どの文字列が NULL を表すことができるかを定義するために nullFormat パラメーターを提供します。例:
| いいえ | なし |
markDoneFileName | マークファイルの名前。データ同期の前に、システムはマークファイルの存在を確認します。マークファイルが存在しない場合、システムは一定期間待機してから再度確認します。マークファイルが見つかった場合、同期タスクが開始されます。 | いいえ | なし |
maxRetryTime | マークファイルの存在を確認するための再試行回数。デフォルト値は 60 です。再試行間隔は 1 分です。合計時間は 60 分です。 | いいえ | 60 |
csvReaderConfig | CSV ファイルを読み取るためのパラメーター設定。このパラメーターは Map 型です。CsvReader は CSV ファイルの読み取りに使用され、多くの構成オプションがあります。このパラメーターを構成しない場合、デフォルト値が使用されます。 | いいえ | なし |
fileFormat | 読み取るファイルのタイプ。デフォルトでは、ファイルは CSV ファイルとして読み取られ、内容は論理的な 2次元テーブル構造に解析されます。このパラメーターを 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,// throttle を false に設定すると、mbps パラメーターは有効にならず、レート制限は適用されません。throttle を true に設定すると、レート制限が適用されます。
"concurrent":1, // 同時実行ジョブ数。
"mbps":"12"// レート制限。1 mbps は 1 MB/s に相当します。
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}Writer スクリプトのパラメーター
パラメーター | 説明 | 必須 | デフォルト値 |
datasource | データソースの名前。コードエディタはデータソースの追加をサポートしています。このパラメーターの値は、追加されたデータソースの名前と同じである必要があります。 | はい | なし |
timeout | FTP サーバーへの接続タイムアウト期間。単位:ミリ秒。 | いいえ | 60,000 (1 分) |
path | FTP ファイルシステム内のパス。FTP Writer は、path で指定されたディレクトリに複数のファイルを書き込みます。 | はい | なし |
fileName | FTP Writer によって書き込まれるファイルの名前。このファイル名にランダムなサフィックスが追加され、各書き込みスレッドの実際のファイル名が作成されます。 | はい | なし |
singleFileOutput | FtpWriter によって書き込まれるファイル名は fileName によって制御されます。デフォルトでは、ランダムなサフィックスが追加され、各書き込みスレッドの実際のファイル名が作成されます。ランダムなサフィックスを追加したくない場合は、singleFileOutput を true に設定できます。出力ファイル名は、指定した完全なファイル名になります。 | いいえ | false |
writeMode | FTP Writer がデータを書き込む前のデータクリーンアップモード:
| はい | なし |
fieldDelimiter | データを書き込む際のフィールド区切り文字。 | はい、単一文字 | なし |
skipHeader | CSV 形式のファイルには、スキップする必要があるヘッダー行が含まれている場合があります。デフォルトでは、ヘッダー行はスキップされません。skipHeader は圧縮ファイルではサポートされていません。 | いいえ | false |
compress | gzip および bzip2 圧縮形式をサポートします。 | いいえ | 圧縮なし |
encoding | ファイルのエンコード構成を読み取ることができます。 | いいえ | utf-8 |
nullFormat | テキストファイルでは、標準の文字列を使用してヌルポインタを定義することはできません。Data Integration は、NULL 値がどのように表現されるかを定義するために nullFormat パラメーターを提供します。 たとえば、nullFormat="null" を設定し、ソースデータがヌルポインタである場合、Data Integration はそれをリテラル文字列 | いいえ | なし |
dateFormat | 日付型のデータをファイルにシリアル化するために使用される形式。例:"dateFormat":"yyyy-MM-dd"。 | いいえ | なし |
fileFormat | ファイルを書き込むための形式。有効な値は CSV と TEXT です。CSV は厳密な CSV 形式です。書き込むデータに列区切り文字が含まれている場合、CSV のエスケープ構文に従ってエスケープされます。エスケープ文字は二重引用符 (") です。TEXT 形式は、書き込むデータを列区切り文字で単純に区切り、データに区切り文字が含まれていてもエスケープは行いません。 | いいえ | TEXT |
header | header: 書き込むテキストファイル (CSV、TEXT などを含む) のヘッダー。コードエディタはヘッダー情報の構成をサポートしています。たとえば、"header":["id","name","age"] は、id、name、age が FTP ファイルの最初の行にヘッダーとして書き込まれることを指定します。 | いいえ | なし |
markDoneFileName |
| いいえ | なし |