Tüm Ürünler
Search
Belge Merkezi

DataWorks:DataHub veri kaynağı

Son Güncelleme:Oct 05, 2026

DataHub veri kaynağı, DataHub'dan veri okumak ve DataHub'a veri yazmak için çift yönlü bir kanal sağlar; bu sayede büyük ölçekli verilerin verimli işlenmesine olanak tanır. Bu konuda, DataWorks'ün DataHub için sunduğu veri eşitleme yetenekleri açıklanmaktadır.

Desteklenen sürümler

  • DataHub Reader, DataHub'dan veri okumak için Java DataHub SDK'sını kullanır. Aşağıdaki kodda SDK sürümü gösterilmektedir.

    <dependency>
        <groupId>com.aliyun.DataHub</groupId>
        <artifactId>aliyun-sdk-DataHub</artifactId>
        <version>2.9.1</version>
    </dependency>
  • DataHub Writer, DataHub'a veri yazmak için Java DataHub SDK'sını kullanır. Aşağıdaki kodda SDK sürümü gösterilmektedir.

    <dependency>
        <groupId>com.aliyun.datahub</groupId>
        <artifactId>aliyun-sdk-datahub</artifactId>
        <version>2.5.1</version>
    </dependency>

Sınırlamalar

Toplu okuma/yazma

STRING veri türü yalnızca UTF-8 kodlamasını destekler. Tek bir STRING sütunu 1 MB'ı aşamaz.

Gerçek zamanlı okuma/yazma

  • Gerçek zamanlı eşitleme görevleri serverless kaynak gruplarını destekler.

  • Verileri gerçek zamanlı olarak DataHub'a eşitlerken veriler, kaynak verilerin karma değerine göre parçalara ayrılır. Aynı karma değerine sahip kayıtlar aynı parçaya eşitlenir.

Gerçek zamanlı tam veritabanı yazma

Görevi çalıştırdığınızda önce bir toplu eşitleme görevi tüm verileri DataHub'a yazar. Ardından, kaynakta meydana gelen artımlı verileri hedefe eşitleyen gerçek zamanlı bir eşitleme görevi başlar. Veriler aşağıdaki kurallara göre yazılır:

  • Veriler yalnızca TUPLE türündeki DataHub konularına yazılabilir. TUPLE veri türü hakkında daha fazla bilgi için bkz. Veri türleri.

  • Verileri gerçek zamanlı olarak DataHub'a eşitlerken kaynak tablo alanlarına beş ek alan eklenir. Görevi yapılandırırken başka alanlar da ekleyebilirsiniz. DataHub'a gönderilen nihai mesaj biçimi hakkında daha fazla bilgi için bkz. Ek: DataHub mesaj biçimleri.

Desteklenen alan türleri

Verileri DataHub'a eşitlerken değerler karşılık gelen alan türleriyle eşlenir. DataHub yalnızca BIGINT, STRING, BOOLEAN, DOUBLE, TIMESTAMP ve DECIMAL veri türlerini destekler.

Veri kaynağı ekleme

DataWorks'te bir eşitleme görevi geliştirmeden önce Veri kaynağı yapılandırması bölümündeki talimatları izleyerek gerekli veri kaynağını DataWorks'e eklemeniz gerekir. Bir veri kaynağı eklerken parametrelerin anlamlarını anlamak için DataWorks konsolunda parametre açıklamalarını görüntüleyebilirsiniz.

Veri eşitleme görevi geliştirme

Eşitleme görevini yapılandırmak için giriş noktası ve prosedür hakkında bilgi edinmek üzere aşağıdaki yapılandırma kılavuzlarına bakın.

Tek tablo toplu eşitleme görevi yapılandırma

Tek tablo gerçek zamanlı eşitleme görevi yapılandırma

Prosedür için bkz. Gerçek zamanlı eşitleme görevi yapılandırma.

Not

Farklı DataHub veri türleri tarafından desteklenen işlemler, parçalama stratejileri, veri biçimleri ve ilgili mesaj örnekleri hakkında bilgi edinmek için bkz. Ek: DataHub mesaj biçimleri.

Gerçek zamanlı tam veritabanı eşitleme görevi yapılandırma

Prosedür için bkz. Gerçek zamanlı tam veritabanı eşitleme görevi yapılandırma.

SSS

DataHub'a tek seferde yazılan veri miktarı sınırı aştığında yazma hatalarını nasıl ele alırım?

Ek: Betik örnekleri ve parametre açıklaması

Kod düzenleyici kullanarak toplu eşitleme görevi yapılandırma

Kod düzenleyiciyi kullanarak bir toplu eşitleme görevi yapılandırmak istiyorsanız betikteki ilgili parametreleri birleşik betik biçimi gereksinimlerine göre yapılandırmanız gerekir. Daha fazla bilgi için bkz. Betik modu yapılandırması. Aşağıdaki bilgiler, kod düzenleyiciyi kullanarak bir toplu eşitleme görevi yapılandırırken veri kaynakları için yapılandırmanız gereken parametreleri açıklar.

Reader betik örneği

{
    "type":"job",
    "version":"2.0",// The version number.
    "steps":[
        {
         "job": {
           "content": [
            {
                "reader": {
                    "name": "DataHubreader",
                    "parameter": {
                        "endpoint": "xxx" // The endpoint of DataHub.
                        "accessId": "xxx", // The AccessKey ID used to access DataHub.
                        "accessKey": "xxx", // The AccessKey secret used to access DataHub.
                        "project": "xxx", // The name of the DataHub project.
                        "topic": "xxx" // The name of the DataHub topic.
                        "batchSize": 1000, // The number of records to read at a time.
                        "beginDateTime": "20180910111214", // The start time for data consumption.
                        "endDateTime": "20180910111614", // The end time for data consumption.
                        "column": [
                            "col0",
                            "col1",
                            "col2",
                            "col3",
                            "col4"
                                  ]
                                }
                           },
                "writer": {
                    "name": "streamwriter",
                    "parameter": {
                        "print": false
                                 }
                            }
             }
           ]
         }
       }
     ],
    "setting":{
        "errorLimit":{
            "record":"0"// The error count.
        },
        "speed":{
            "throttle":true,// Specifies whether to enable throttling. If throttle is set to false, the mbps parameter does not take effect, which means throttling is disabled. If throttle is set to true, throttling is enabled.
            "concurrent":1,// The concurrency.
            "mbps":"12"// The throttling rate. 1 mbps = 1 MB/s.
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Reader betik parametreleri

Parametre

Açıklama

Gerekli

endpoint

DataHub uç noktası.

Evet

accessId

DataHub'a erişmek için kullanılan accessId.

Evet

accessKey

DataHub'a erişmek için kullanılan accessKey.

Evet

project

DataHub projesinin adı. Bir proje, DataHub'daki temel kaynak yönetimi birimidir ve kaynak yalıtımı ile erişim kontrolü için kullanılır.

Evet

topic

DataHub konusunun adı.

Evet

batchSize

Tek seferde okunacak kayıt sayısı. Varsayılan değer: 1.024.

Hayır

beginDateTime

Veri tüketiminin başlangıç zamanı. Bu parametre, zaman aralığının sol sınırını (dahil) belirtir ve yyyyMMddHHmmss biçiminde bir zaman dizesi olmalıdır. Artımlı eşitleme uygulamak için bu parametreyi DataWorks zamanlama parametreleri ile birlikte kullanabilirsiniz. Örneğin, düğüm zamanlama parametresinin parametre adını bizdate olarak ve parametre değerini $[yyyymmdd-1] olarak ayarlayın. Ardından, beginDateTime parametresini ${bizdate}000000 olarak ayarlayın; bu, veri tüketiminin başlangıç zamanının önceki günün 00:00:00 saati olduğunu gösterir.

Not

beginDateTime ve endDateTime birlikte kullanılmalıdır.

Evet

endDateTime

Veri tüketiminin bitiş zamanı. Bu parametre, zaman aralığının sağ sınırını (hariç) belirtir ve yyyyMMddHHmmss biçiminde bir zaman dizesi olmalıdır. Artımlı eşitleme uygulamak için bu parametreyi DataWorks zamanlama parametreleri ile birlikte kullanabilirsiniz. Örneğin, düğüm zamanlama parametresinin parametre adını bizdate olarak ve parametre değerini $[yyyymmdd-1] olarak ayarlayın. Ardından, endDateTime parametresini ${bizdate}235959 olarak ayarlayın; bu, veri tüketiminin bitiş zamanının önceki günün 23:59:59 saati olduğunu gösterir.

Not

beginDateTime ve endDateTime birlikte kullanılmalıdır.

Evet

Writer betik örneği

{
    "type": "job",
    "version": "2.0",// The version number.
    "steps": [
        { 
            "stepType": "stream",
            "parameter": {},
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "datahub",// The plug-in name.
            "parameter": {
                "datasource": "",// The data source.
                "topic": "",// A topic is the smallest unit for subscription and publishing in DataHub. You can use a topic to represent a type or category of streaming data.
                "maxRetryCount": 500,// The maximum number of retries upon task failure.
                "maxCommitSize": 1048576// The data is committed in batches to the destination when the accumulated data buffer reaches the maxCommitSize (in bytes).
                 // DataHub limits a single request to 10,000 records. Exceeding this limit causes a task error. Set this parameter based on the average size per record multiplied by 10,000. For example, if each record is 10 KB, set this parameter to a value lower than 10 × 10,000 KB.
            },
            "name": "Writer",
            "category": "writer"
        }
    ],
    "setting": {
        "errorLimit": {
            "record": ""// The error count.
        },
        "speed": {
            "throttle":true,// Specifies whether to enable throttling. If throttle is set to false, the mbps parameter does not take effect, which means throttling is disabled. If throttle is set to true, throttling is enabled.
            "concurrent":20, // The concurrency.
            "mbps":"12"// The throttling rate. 1 mbps = 1 MB/s.
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

Writer betik parametreleri

Parametre

Açıklama

Gerekli

Varsayılan değer

accessId

DataHub accessId.

Evet

Yok

accessKey

DataHub accessKey.

Evet

Yok

endPoint

DataHub kaynaklarına erişmek için kaynağın ait olduğu hizmete göre doğru etki alanı adını seçmeniz gerekir.

Evet

Yok

maxRetryCount

Görev başarısız olduğunda maksimum yeniden deneme sayısı.

Hayır

Yok

mode

Değer STRING türünde olduğunda yazma modu.

Evet

Yok

parseContent

Ayrıştırılacak içerik.

Evet

Yok

project

Proje, DataHub verileri için temel organizasyon birimidir. Bir proje birden çok konu içerir.

Not

DataHub projeleri MaxCompute projelerinden bağımsızdır. MaxCompute'de oluşturduğunuz projeler DataHub'da yeniden kullanılamaz. Projeleri ayrı ayrı oluşturmanız gerekir.

Evet

Yok

topic

Konu, DataHub'da abonelik ve yayınlama için en küçük birimdir. Bir konu, akış verilerinin bir türünü veya kategorisini temsil etmek için kullanılabilir.

Evet

Yok

maxCommitSize

Yazma verimliliğini artırmak için DataX verileri bir arabellekte biriktirir ve biriken veri maxCommitSize (bayt cinsinden) değerine ulaştığında verileri hedefe toplu olarak gönderir. Varsayılan değer 1.048.576'dır (1 MB). DataHub, tek bir isteği 10.000 kayıtla sınırlar. Bu sınırın aşılması bir görev hatasına neden olur. DataHub'a her istekte yazılan kayıt sayısını kontrol etmek için bu parametreyi, kayıt başına ortalama boyut çarpı 10.000 değerine göre ayarlayın.

Hayır

1MB