DataWorks の Data Integration は、HTTP プロトコルを使用してリモートの HTTP エンドポイントからファイルをダウンロードし、ターゲットデータソースに同期します。
サポートされるリソースグループ
HttpFile は、次のリソースグループをサポートしています:
サポートされるフィールドタイプ
| データ型 | 説明 |
|---|---|
| STRING | テキスト。 |
| LONG | 整数。 |
| BYTES | バイト配列。テキストコンテンツは UTF-8 エンコードのバイト配列に変換されます。 |
| BOOL | ブール値。 |
| DOUBLE | 小数。 |
| DATE | 日付と時刻。サポートされるフォーマット: yyyy-MM-dd HH:mm:ss、yyyy-MM-dd、HH:mm:ss。 |
サポートされるファイル形式と圧縮
| ファイル形式 | サポート対象 |
|---|---|
| CSV | はい |
| TEXT (区切り文字付き) | はい |
| JSON | はい |
| JSONL | はい |
| 圧縮 | サポート対象 |
|---|---|
| gzip | はい |
| bzip2 | はい |
| zip | はい |
skipHeader は圧縮ファイルではサポートされていません。
データソースの追加
同期タスクを作成する前に、[データソース管理] ページで HttpFile データソースを追加します。手順については、「データソース管理」をご参照ください。
同期タスクの設定
オフライン同期タスクの設定
コードレス UI またはコードエディタを使用してタスクを設定します:
完全なスクリプトリファレンスとパラメーターの説明については、「スクリプトリファレンス」をご参照ください。
スクリプトリファレンス
Reader スクリプトの例
次のスクリプトは、GET を使用して HTTP 経由で CSV ファイルから読み取り、ヘッダー行をスキップし、5 つの列を異なるデータ型にマップします。
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "httpfile",
"parameter": {
"datasource": "<data-source-name>",
"fileName": "/data/export.csv",
"requestMethod": "GET",
"requestHeaders": {
"Authorization": "Bearer <token>"
},
"socketTimeoutSeconds": 3600,
"connectTimeoutSeconds": 60,
"bufferByteSizeInKB": 1024,
"fileFormat": "csv",
"encoding": "utf-8",
"fieldDelimiter": ",",
"skipHeader": true,
"compress": "",
"column": [
{ "index": 0, "type": "long" },
{ "index": 1, "type": "boolean" },
{ "index": 2, "type": "double" },
{ "index": 3, "type": "string" },
{ "index": 4, "type": "date" }
]
},
"name": "Reader",
"category": "reader"
},
{
"stepType": "stream",
"parameter": {},
"name": "Writer",
"category": "writer"
}
],
"setting": {
"errorLimit": {
"record": "0"
},
"speed": {
"concurrent": 1
}
},
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
}
}
プレースホルダーを実際の値に置き換えてください:
| プレースホルダー | 説明 | 例 |
|---|---|---|
<data-source-name> |
[データソース管理] ページの HttpFile データソースの名前。 | my-http-source |
<token> |
ご利用の API 認証トークン。 | eyJhbGc... |
Reader パラメーター
パラメーターは機能ごとにグループ化されています。接続パラメーターはエンドポイントへの到達方法を定義し、読み取り動作パラメーターはファイルの解析方法を制御します。
接続パラメーター
| パラメーター | 説明 | 必須 | デフォルト |
|---|---|---|---|
datasource |
HttpFile データソースの名前。[データソース管理] ページの名前と完全に一致する必要があります。 | はい | なし |
fileName |
HTTP サーバー上のファイルパス。特殊文字や非 ASCII 文字は URL エンコードしてください。たとえば、/file/test abc.csv のスペースは /file/test%20abc.csv になります。最終的なリクエスト URL は、データソースのベース URL とこのパスを組み合わせたものになります。エンコーディングルールについては、「HTML URL エンコーディングリファレンス」をご参照ください。 |
はい | なし |
requestMethod |
HTTP メソッド。有効な値: GET、POST、PUT。 |
いいえ | GET |
requestParam |
URL に追加されるクエリパラメーター。requestMethod が GET の場合にのみ有効です。特殊文字は URL エンコードしてください。たとえば、start=2024-03-25 17:06:54 は start=2024-03-25%2017:06:54 になります。 |
いいえ | なし |
requestBody |
リクエストボディ。requestMethod が POST または PUT の場合にのみ有効です。requestHeaders の Content-Type と組み合わせて使用します。例: {"requestBody": "{\"a\":\"b\"}", "requestHeaders": {"Content-Type": "application/json"}} |
いいえ | なし |
requestHeaders |
キーと値のペアとしての HTTP リクエストヘッダー。例: {"Content-Type": "application/json"} |
いいえ | {"User-Agent": "DataX Http File Reader"} |
connectTimeoutSeconds |
HTTP 接続を確立する際の待機時間 (秒)。この時間を超えるとタスクは失敗します。詳細モードでのみ利用可能で、コードレス UI では設定できません。 | いいえ | 60 |
socketTimeoutSeconds |
連続するデータパケット間の待機時間 (秒)。この時間を超えるとタスクは失敗します。詳細モードでのみ利用可能で、コードレス UI では設定できません。 | いいえ | 3600 |
bufferByteSizeInKB |
ダウンロードバッファーサイズ (KB)。 | いいえ | 1024 |
読み取り動作パラメーター
| パラメーター | 説明 | 必須 | デフォルト |
|---|---|---|---|
fileFormat |
ソースファイルの形式。有効な値: csv、text、json、jsonl。4 つの形式すべてでカスタムフィールド区切り文字がサポートされています。 |
いいえ | なし |
encoding |
ファイルの文字エンコーディング。 | いいえ | utf-8 |
fieldDelimiter |
フィールド区切り文字。印刷不能文字の場合は、Unicode 表現 (例: \u001b) を使用します。 |
はい | , |
useMultiCharDelimiter |
フィールド区切り文字が複数文字の文字列であるかどうかを指定します。 | いいえ | false |
lineDelimiter |
行区切り文字。fileFormat が text の場合にのみ有効です。 |
いいえ | なし |
skipHeader |
最初の行をスキップするかどうかを指定します。ヘッダー行のあるファイルの場合は true に設定します。圧縮ファイルではサポートされていません。 |
いいえ | false |
compress |
ソースファイルの圧縮形式。ファイルが非圧縮の場合は空白のままにします。有効な値: gzip、bzip2、zip。 |
いいえ | なし (非圧縮) |
column |
読み取る列のリスト。各エントリには type が必要です。CSV/TEXT 形式の場合は、index または value のいずれかを指定します。JSON/JSONL 形式の場合は、jsonPath または value のいずれかを指定します。詳細については、「列の設定」をご参照ください。 |
はい | すべての列を STRING として読み取り |
nullFormat |
ソースファイル内で null 値を表す文字列。たとえば、"nullFormat": "null" は文字列 null を null として扱います。"nullFormat": "\u0001" は印刷不能文字を null として扱います。設定しない場合、ソースデータはそのまま送信先に書き込まれます。 |
いいえ | なし |
列の設定
column 配列の各エントリでは、次のフィールドを使用します:
| フィールド | 説明 |
|---|---|
type |
列のデータ型。必須。有効な値: long、boolean、double、string、date。 |
index |
ソースファイル内の列の位置 (0 から開始)。CSV/TEXT 形式で利用可能です。index または value のいずれかを指定し、両方は指定できません。 |
jsonPath |
ソースデータからフィールドを抽出するために使用される JSONPath 式。JSON/JSONL 形式で利用可能です。jsonPath または value のいずれかを指定し、両方は指定できません。 |
value |
ソースファイルから読み取る代わりに、列に設定する定数値。 |
個々の型を指定せずにすべての列を STRING として読み取るには:
"column": ["*"]
型を持つ特定の列をマップし、定数を挿入するには (CSV/TEXT 形式):
// CSV/TEXT 形式
"column": [
{ "type": "long", "index": 0 },
{ "type": "string", "value": "alibaba" }
]
JSONPath 式を使用してフィールドを抽出するには (JSON/JSONL 形式):
// JSON/JSONL 形式
"column": [
{ "name": "id", "jsonPath": "$.id", "type": "LONG" },
{ "name": "name", "jsonPath": "$.user.name", "type": "STRING" },
{ "name": "source", "value": "httpfile", "type": "STRING" }
]