DataWorks Data Integration, HTTP protokolünü kullanarak uzak HTTP uç noktalarından dosyaları indirir ve bunları hedef bir veri kaynağıyla senkronize eder.
Desteklenen kaynak grupları
HttpFile aşağıdaki kaynak gruplarını destekler:
Desteklenen alan türleri
| Veri türü | Açıklama |
|---|---|
| STRING | Metin. |
| LONG | Tamsayı. |
| BYTES | Bayt dizisi. Metin içeriği UTF-8 kodlamalı bir bayt dizisine dönüştürülür. |
| BOOL | Boolean. |
| DOUBLE | Ondalık sayı. |
| DATE | Tarih ve saat. Desteklenen biçimler: yyyy-MM-dd HH:mm:ss, yyyy-MM-dd, HH:mm:ss. |
Desteklenen dosya biçimleri ve sıkıştırma
| Dosya biçimi | Destekleniyor mu? |
|---|---|
| CSV | Evet |
| TEXT (sınırlandırılmış) | Evet |
| JSON | Evet |
| JSONL | Evet |
| Sıkıştırma | Destekleniyor mu? |
|---|---|
| gzip | Evet |
| bzip2 | Evet |
| zip | Evet |
Sıkıştırılmış dosyalar için skipHeader parametresi desteklenmez.
Veri kaynağı ekleyin
Bir senkronizasyon görevi oluşturmadan önce Data Source Management sayfasında HttpFile veri kaynağını ekleyin. Talimatlar için bkz. Data source management.
Senkronizasyon görevini yapılandırın
Çevrimdışı senkronizasyon görevini yapılandırın
Görevinizi kod içermeyen kullanıcı arayüzünü veya kod düzenleyiciyi kullanarak yapılandırın:
Tam komut dosyası referansı ve parametre açıklamaları için bkz. Komut dosyası referansı.
Komut dosyası referansı
Okuyucu komut dosyası örneği
Aşağıdaki komut dosyası, GET yöntemini kullanarak HTTP üzerinden bir CSV dosyasından okur, üstbilgi satırını atlar ve beş sütunu farklı veri türlerine eşler.
{
"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"
}
]
}
}
Yer tutucuları gerçek değerlerinizle değiştirin:
| Yer tutucu | Açıklama | Örnek |
|---|---|---|
<data-source-name> |
Data Source Management sayfasındaki HttpFile veri kaynağının adı. | my-http-source |
<token> |
API kimlik doğrulama belirteciniz. | eyJhbGc... |
Okuyucu parametreleri
Parametreler işlevlerine göre gruplanır. Bağlantı parametreleri uç noktaya nasıl ulaşılacağını tanımlar; okuma davranışı parametreleri dosyanın nasıl ayrıştırılacağını kontrol eder.
Bağlantı parametreleri
| Parametre | Açıklama | Gerekli | Varsayılan |
|---|---|---|---|
datasource |
HttpFile veri kaynağının adı. Data Source Management sayfasındaki adla tam olarak eşleşmelidir. | Evet | Yok |
fileName |
HTTP sunucusundaki dosya yolu. Özel karakterleri veya ASCII olmayan karakterleri URL kodlamasına tabi tutun. Örneğin, /file/test abc.csv içindeki boşluk /file/test%20abc.csv haline gelir. Son istek URL'si, veri kaynağı temel URL'si ile bu yolun birleştirilmesiyle oluşur. Kodlama kuralları için bkz. HTML URL Encoding Reference. |
Evet | Yok |
requestMethod |
HTTP yöntemi. Geçerli değerler: GET, POST, PUT. |
Hayır | GET |
requestParam |
URL'ye eklenen sorgu parametreleri. Yalnızca requestMethod değeri GET olduğunda etkili olur. Özel karakterleri URL kodlamasına tabi tutun. Örneğin, start=2024-03-25 17:06:54 ifadesi start=2024-03-25%2017:06:54 haline gelir. |
Hayır | Yok |
requestBody |
İstek gövdesi. Yalnızca requestMethod değeri POST veya PUT olduğunda etkili olur. requestHeaders içindeki Content-Type ile birlikte kullanın. Örnek: {"requestBody": "{\"a\":\"b\"}", "requestHeaders": {"Content-Type": "application/json"}} |
Hayır | Yok |
requestHeaders |
Anahtar-değer çiftleri olarak HTTP istek üstbilgileri. Örnek: {"Content-Type": "application/json"} |
Hayır | {"User-Agent": "DataX Http File Reader"} |
connectTimeoutSeconds |
HTTP bağlantısı kurulurken beklenecek süre (saniye). Aşıldığında görev başarısız olur. Yalnızca Gelişmiş modda kullanılabilir; kod içermeyen kullanıcı arayüzünde yapılandırılamaz. | Hayır | 60 |
socketTimeoutSeconds |
Ardışık veri paketleri arasında beklenecek süre (saniye). Aşıldığında görev başarısız olur. Yalnızca Gelişmiş modda kullanılabilir; kod içermeyen kullanıcı arayüzünde yapılandırılamaz. | Hayır | 3600 |
bufferByteSizeInKB |
İndirme arabelleği boyutu (KB). | Hayır | 1024 |
Okuma davranışı parametreleri
| Parametre | Açıklama | Gerekli | Varsayılan |
|---|---|---|---|
fileFormat |
Kaynak dosya biçimi. Geçerli değerler: csv, text, json, jsonl. Dört biçimin tümü özel alan sınırlayıcılarını destekler. |
Hayır | Yok |
encoding |
Dosya karakter kodlaması. | Hayır | utf-8 |
fieldDelimiter |
Alan sınırlayıcısı. Yazdırılamayan karakterler için Unicode gösterimini kullanın, örneğin \u001b. |
Evet | , |
useMultiCharDelimiter |
Alan sınırlayıcısının çok karakterli bir dize olup olmadığını belirtir. | Hayır | false |
lineDelimiter |
Satır sınırlayıcısı. Yalnızca fileFormat değeri text olduğunda etkili olur. |
Hayır | Yok |
skipHeader |
İlk satırın atlanıp atlanmayacağını belirtir. Üstbilgi satırı olan dosyalar için true olarak ayarlayın. Sıkıştırılmış dosyalar için desteklenmez. |
Hayır | false |
compress |
Kaynak dosyanın sıkıştırma biçimi. Dosya sıkıştırılmamışsa boş bırakın. Geçerli değerler: gzip, bzip2, zip. |
Hayır | Yok (sıkıştırılmamış) |
column |
Okunacak sütunların listesi. Her giriş için type gereklidir. CSV/TEXT biçimi için index veya value belirtin. JSON/JSONL biçimi için jsonPath veya value belirtin. Bkz. Sütun yapılandırması. |
Evet | Tüm sütunlar STRING olarak okunur |
nullFormat |
Kaynak dosyada null değerini temsil eden dize. Örneğin, "nullFormat": "null" ifadesi null dizesini null olarak kabul eder; "nullFormat": "\u0001" ifadesi yazdırılamayan karakteri null olarak kabul eder. Ayarlanmazsa, kaynak veriler olduğu gibi hedefe yazılır. |
Hayır | Yok |
Sütun yapılandırması
column dizisindeki her giriş aşağıdaki alanları kullanır:
| Alan | Açıklama |
|---|---|
type |
Sütunun veri türü. Gereklidir. Geçerli değerler: long, boolean, double, string, date. |
index |
Kaynak dosyadaki sütun konumu, 0'dan başlar. CSV/TEXT biçimi için kullanılabilir. index veya value belirtin, ikisini birden değil. |
jsonPath |
Kaynak verilerden alanları çıkarmak için kullanılan bir JSONPath ifadesi. JSON/JSONL biçimi için kullanılabilir. jsonPath veya value belirtin, ikisini birden değil. |
value |
Kaynak dosyadan okumak yerine sütunu doldurmak için kullanılan sabit bir değer. |
Tek tek türleri belirtmeden tüm sütunları STRING olarak okumak için:
"column": ["*"]
Belirli sütunları türleriyle eşlemek ve bir sabit değer eklemek için (CSV/TEXT biçimi):
// CSV/TEXT format
"column": [
{ "type": "long", "index": 0 },
{ "type": "string", "value": "alibaba" }
]
JSONPath ifadelerini kullanarak alanları çıkarmak için (JSON/JSONL biçimi):
// JSON/JSONL format
"column": [
{ "name": "id", "jsonPath": "$.id", "type": "LONG" },
{ "name": "name", "jsonPath": "$.user.name", "type": "STRING" },
{ "name": "source", "value": "httpfile", "type": "STRING" }
]