Tüm Ürünler
Search
Belge Merkezi

DataWorks:OSS-HDFS

Son Güncelleme:Oct 05, 2026

OSS-HDFS Service (JindoFS Service), cloud-native bir veri gölü depolama ürünüdür. OSS-HDFS veri kaynağı, OSS-HDFS'den veri okumak ve yazmak için çift yönlü bir kanal sağlar. Bu konuda, DataWorks'ün OSS-HDFS için sunduğu veri senkronizasyonu yetenekleri açıklanmaktadır.

Desteklenen yetenekler


Yetenek


Destekleniyor mu?


Çevrimdışı okuma


Evet


Çevrimdışı yazma


Evet


Gerçek zamanlı yazma


Evet

Sınırlamalar

Çevrimdışı okuma

Bir kaynak grubundan OSS-HDFS'ye yapılan ağ bağlantısı karmaşık olabilir. Veri senkronizasyon görevlerini çalıştırmak için Serverless kaynak grubu (önerilen) veya Data Integration için özel kaynak grubu kullanın. Kaynak grubunuzun ağ üzerinden OSS-HDFS'ye erişebildiğinden emin olun.

OSS-HDFS Reader aşağıdakileri destekler:

  • Metin, CSV, ORC ve Parquet formatındaki dosyalar. Dosya içeriği mantıksal olarak iki boyutlu bir tablo olmalıdır.

  • Birden fazla veri türünün ve sütun sabitlerinin okunması.

  • Özyinelemeli okuma işlemleri ile * ve ? joker karakterlerinin kullanımı.

  • Birden fazla dosyadan eşzamanlı okuma. Gerçek eşzamanlı iş parçacığı sayısı, okunacak dosya sayısı ile concurrent ayarından küçük olan değerdir.

Önemli

Tek bir dosya için iç parçalama algoritması nedeniyle OSS-HDFS Reader, tek bir dosyadan çok iş parçacıklı eşzamanlı okumayı desteklemez.

Çevrimdışı yazma

  • OSS-HDFS Writer yalnızca metin, ORC ve Parquet formatlarını destekler. Dosya içeriği mantıksal olarak iki boyutlu bir tablo olmalıdır.

  • Metin dosyaları için, yazma sırasında kullanılan alan sınırlayıcısının Hive tablosu oluşturulurken kullanılan sınırlayıcıyla eşleştiğinden emin olun. Bu, OSS-HDFS'ye yazılan verilerin Hive tablosu alanlarıyla doğru şekilde eşleşmesini sağlar.

Gerçek zamanlı yazma

  • Gerçek zamanlı yazmayı destekler.

  • Hudi format sürüm 0,14.x için gerçek zamanlı yazmayı destekler.

Desteklenen alan türleri

Çevrimdışı okuma

OSS-HDFS Reader, ParquetFile, ORCFile, TextFile ve CsvFile veri türlerini Data Integration'ın desteklediği dahili türlere dönüştürür.


Tür kategorisi


OSS-HDFS veri türleri


Tamsayı


TINYINT, SMALLINT, INT, BIGINT


Kayan nokta


FLOAT, DOUBLE, DECIMAL


Dize


STRING, CHAR, VARCHAR


Tarih ve saat


DATE, TIMESTAMP


Boolean


BOOLEAN

Not

Aşağıdaki örnekler dahili tür temsillerini göstermektedir:

  • LONG: OSS-HDFS dosyasındaki tamsayı verileri, örneğin 123456789.

  • DOUBLE: OSS-HDFS dosyasındaki kayan nokta verileri, örneğin 3,1415.

  • BOOLEAN: OSS-HDFS dosyasındaki Boolean verileri, örneğin true veya false. Değerler büyük/küçük harfe duyarlı değildir.

  • DATE: OSS-HDFS dosyasındaki tarih ve saat verileri, örneğin 2014-12-31 00:00:00.

Çevrimdışı yazma

OSS-HDFS Writer, TextFile, ORCFile ve ParquetFile formatındaki dosyaları OSS-HDFS dosya sisteminde belirtilen yola yazar.


Tür kategorisi


OSS-HDFS veri türleri


Tamsayı


TINYINT, SMALLINT, INT, BIGINT


Kayan nokta


FLOAT, DOUBLE


Dize


CHAR, VARCHAR, STRING


Boolean


BOOLEAN


Tarih ve saat


DATE, TIMESTAMP

Veri kaynağı ekleme

DataWorks'te bir senkronizasyon görevi geliştirmeden önce, gerekli veri kaynağını Veri kaynağı yönetimi bölümündeki talimatları izleyerek ekleyin. Parametre açıklamaları, DataWorks konsolunda veri kaynağı eklerken mevcuttur.

Veri senkronizasyon görevi geliştirme

Tek bir tablo için çevrimdışı senkronizasyon görevini yapılandırma

Tek bir tablo için gerçek zamanlı senkronizasyon görevini yapılandırma

Bkz. Tek bir tablo için gerçek zamanlı artımlı senkronizasyon yapılandırma.

Tüm veritabanı için tam ve artımlı gerçek zamanlı senkronizasyon görevini yapılandırma

Bkz. Tüm veritabanı için gerçek zamanlı senkronizasyon görevi yapılandırma.

Ek: Betik demoları ve parametre açıklamaları

Reader betik demosu

Tüm parametreler, kod düzenleyici tarafından gereken birleştirilmiş betik formatını takip eder. Format ayrıntıları için bkz. Kod düzenleyicide görev yapılandırma.

{
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "oss_hdfs",
            "parameter": {
                "path": "",
                "datasource": "",
                "column": [
                    {
                        "index": 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,
            "mbps": "12"
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

Reader betik parametreleri


Parametre


Açıklama


Zorunlu


Varsayılan değer


path


Okunacak dosyanın veya dizinin yolu. Üç giriş stili desteklenir: SEÇENEK 1: Tek dosya — OSS-HDFS Reader dosyayı tek bir iş parçacığı ile okur. SEÇENEK 2: Birden fazla dosya — OSS-HDFS Reader dosyaları eşzamanlı olarak okur. Gerçek iş parçacığı sayısı, dosya sayısı ile concurrent ayarından küçük olan değerdir. /hadoop/data_201704* gibi basit regex kalıpları kullanın veya zamana dayalı dosya adları için zamanlama parametrelerini kullanın. SEÇENEK 3: Joker karakterli yol — OSS-HDFS Reader eşleşen dosyaları tarar. / belirtmek kök dizindeki tüm dosyaları okur. Joker karakter olarak yalnızca * ve ? desteklenir. Tek bir senkronizasyon işindeki tüm dosyalar tek bir veri tablosu olarak kabul edilir; tüm dosyaların aynı şemaya sahip olduğundan emin olun. Veri kaynağında yapılandırılan AccessKey çiftinin ilgili OSS-HDFS yolu üzerinde okuma izinlerine sahip olması gerekir.


Evet


Yok


fileFormat


Dosya türü. Geçerli değerler: text, orc, csv, parquet. OSS-HDFS Reader dosya türünü otomatik olarak algılar ve ilgili okuma ilkesini uygular. Senkronizasyon başlamadan önce, belirtilen yoldaki tüm dosyaların fileFormat değeriyle eşleştiğini doğrular. Uyuşmazlık varsa görev başarısız olur.


Evet


Yok


column


Okunacak alanların listesi. Tüm sütunları STRING olarak okumak için ["*"] olarak ayarlayın. Tek tek sütunları belirtmek için type ve index (verileri dosyadan okur, 0'dan başlar) ya da value (dosyadan okuma yapmadan sabit bir sütun oluşturur) sağlayın. Her sütun girişi için index veya value öğelerinden yalnızca biri ayarlanabilir.


Evet


Yok


fieldDelimiter


TextFile verilerini okumak için alan sınırlayıcısı. ORC veya Parquet dosyaları için gerekli değildir.


Hayır


,


encoding


Dosya kodlaması.


Hayır


utf-8


nullFormat


Null değeri olarak ele alınacak dize. Örneğin, nullFormat: "null" ayarlamak, Data Integration'ın kaynak dizesi null olarak null alan olarak değerlendirmesine neden olur.


Hayır


Yok


compress


Sıkıştırma formatı. Geçerli değerler: gzip, bzip2, snappy.


Hayır


Yok

Writer betik demosu

{
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "stream",
            "parameter": {},
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "oss_hdfs",
            "parameter": {
                "path": "",
                "fileName": "",
                "compress": "",
                "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
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

Writer betik parametreleri


Parametre


Açıklama


Zorunlu


Varsayılan değer


fileFormat


Dosya türü. Geçerli değerler: text, orc, parquet.


Evet


Yok


path


Verilerin depolandığı OSS-HDFS dosya sistemindeki yol. OSS-HDFS Writer, eşzamanlılık yapılandırmasına göre bu dizine birden fazla dosya yazar. Bir Hive tablosuyla ilişkilendirirken, Hive tablosunun OSS-HDFS üzerindeki depolama yolunu belirtin.


Evet


Yok


fileName


Çıktı dosyaları için temel ad. Her eşzamanlı iş parçacığı için bu ada rastgele bir son ek eklenerek gerçek dosya adları oluşturulur.


Evet


Yok


column


Yazılacak alanlar. Alanların bir alt kümesine yazma işlemi desteklenmez. Bir Hive tablosuyla ilişkilendirirken, tüm alan adlarını ve türlerini belirtin. Alan adı için name ve alan türü için type kullanın. fileFormat değeri parquet olduğunda gerekli değildir.


Evet (fileFormat değeri parquet ise gerekli değildir)


Yok


writeMode


OSS-HDFS Writer'ın yazma işleminden önce mevcut dosyaları nasıl işlediği. OSS-HDFS Writer, önce-yaz-sonra-yeniden-adlandır stratejisini kullanır: veriler önce path_random kuralı kullanılarak adlandırılan geçici bir dizine yazılır, ardından tüm yazma işlemleri tamamlandıktan sonra benzersiz dosya adları garanti edilerek hedef yola taşınır. Taşıma işleminden sonra geçici dizin otomatik olarak silinir. Bağlantı kesilirse, geçici dizin ve kısmen yazılmış dosyalar otomatik olarak temizlenmez; yeniden denemeden önce bunları manuel olarak silin. Geçerli değerler: append — ön işleme olmadan doğrudan yazar, dosya adı çakışması olmadığını sağlar. nonConflict — dizinde fileName önekiyle başlayan bir dosya zaten varsa hata bildirir. truncate — yazmadan önce fileName önekiyle eşleşen tüm dosyaları siler (örneğin, fileName değeri abc ise, dizindeki abc ile başlayan tüm dosyalar önce silinir).


Evet


Yok


fieldDelimiter


Çıktı dosyaları için alan sınırlayıcısı. Yalnızca tek karakterli sınırlayıcılar desteklenir; birden fazla karakter çalışma zamanı hatasına neden olur. fileFormat değeri parquet olduğunda gerekli değildir.


Evet (fileFormat değeri parquet ise gerekli değildir)


Yok


compress


Metin dosyaları için sıkıştırma formatı. Geçerli değerler: gzip, bzip2. Sıkıştırma olmadan yazmak için boş bırakın.


Hayır


Yok


encoding


Dosya kodlaması.


Hayır


utf-8


parquetSchema


Parquet çıktı dosyaları için şema tanımı. Yalnızca fileFormat değeri parquet olduğunda etkili olur. Aşağıdaki formatı kullanın: message <MessageName> { <required|optional> <DataType> <FieldName>; ... }. Desteklenen veri türleri: BOOLEAN, INT32, INT64, INT96, FLOAT, DOUBLE, BINARY (dize türleri için BINARY kullanın), FIXED_LEN_BYTE_ARRAY. Null değer alabilen alanlar için optional ve null olmayan alanlar için required kullanın. Tüm alanları optional olarak ayarlamanız önerilir. Her satır tanımı, sonuncusu dahil olmak üzere noktalı virgülle bitmelidir. Örnek: message m { optional int64 id; optional binary username; optional int32 status; }


Hayır


Yok