Tüm Ürünler
Search
Belge Merkezi

DataWorks:MaxCompute veri kaynağı

Son Güncelleme:Oct 05, 2026

MaxCompute veri kaynağı, MaxCompute içine ve dışına veri okuma ve yazma işlemleri için çift yönlü bir kanal sağlayan bir veri hub'ıdır.

Özellikler

Not

DataWorks'teki MaxCompute veri kaynağı, bir MaxCompute projesinin tünel hizmetine erişmek için bir tünel uç noktası kullanır. Bu sayede verileri projeye yükleyerek veya projeden indirerek senkronize edebilirsiniz. Tünel hizmeti üzerinden yapılan yükleme ve indirme işlemleri DownloadTable işlemiyle gerçekleşir.

11 Aralık 2023 tarihinden sonra oluşturulan MaxCompute veri kaynakları için DataWorks hizmeti ve hedef MaxCompute projesi farklı bölgelerde bulunuyorsa tünel uç noktasını kullanarak doğrudan veri senkronizasyonu yapamazsınız. Önce bir Cloud Enterprise Network (CEN) örneği satın alarak ağ bağlantısı kurmanız gerekir. Bağlantı kurulduktan sonra çapraz bölge veri senkronizasyonu mümkündür. CEN ve ilgili işlemler hakkında daha fazla bilgi için bkz. Cloud Enterprise Network (CEN).

Toplu okuma

  • MaxCompute Reader, bölümlenmiş ve bölümlenmemiş tablolardan veri okumayı destekler; ancak sanal görünümlerden veya harici tablolardan okumayı desteklemez.

  • Bir MaxCompute bölümlenmiş tablodan toplu okuma yaptığınızda bölüm anahtarı sütunları için alan eşlemeyi doğrudan yapılandıramazsınız. Bölüm anahtarı değerlerini senkronize etmek üzere özel bir alan ekleyebilir, bölüm adını manuel olarak girebilir ve ardından alan eşlemeyi yapılandırabilirsiniz.

  • Zamanlama parametrelerini kullanarak bölüm değerlerini belirtebilir ve otomatik değiştirmeyi etkinleştirebilirsiniz; böylece zamanlama saatine göre ilgili bölümdeki veriler senkronize edilir.

    Örneğin id ve name sütunlarını içeren t0 adlı bir bölümlenmiş tablo bulunmaktadır. Birinci düzey bölüm anahtarı pt, ikinci düzey bölüm anahtarı ise ds'dir. pt=<iş tarihi> ve ds=hangzhou olan bölümden veri okumak için kaynağı yapılandırırken bölüm değerlerini pt=${zamanlama parametresi} ve ds=hangzhou olarak belirtmeniz gerekir. Ardından id ve name sütunları için sütun eşlemesini yapılandırabilirsiniz.

  • Bölüm anahtarı sütunlarını özel alanlar olarak ekleyerek bunları bir hedef tabloya yazabilirsiniz.

  • MaxCompute Reader, WHERE yan tümcesini kullanarak veri filtrelemeyi destekler.

Toplu yazma

  • Kaynak veriler null değerler içeriyorsa MaxCompute Writer VARCHAR veri türünü desteklemez.

  • Hedef tablo bir DeltaTable ise Advanced Configuration öğesini genişletin ve Visible After Synchronization ayarını Yes olarak ayarlayın. Aksi takdirde eşzamanlılık 1'den büyük olduğunda görev hata bildirir.

  • Verilerin bir kaynaktan MaxCompute harici tablosuna senkronize edilmesi desteklenmez.

  • Hedef tablodaki bir sütun kaynak bir sütunla eşlenmemişse Data Integration, tablo oluşturulurken varsayılan bir değer belirtilmiş olsa bile senkronizasyon sonrası bu sütunun değerini null olarak ayarlar.

  • MaxCompute Writer, içe aktarma öncesi SQL deyimlerini (preSql) veya içe aktarma sonrası SQL deyimlerini (postSql) desteklemez. Veriler yazılmadan önce veya sonra hedef tabloda SQL işlemleri yapmanız gerekiyorsa (örneğin artımlı yazma için kısmi verileri kaldırmak amacıyla DELETE deyimleri çalıştırmak gibi) gerekli ön işleme veya son işleme işlemlerini yapmak üzere veri senkronizasyon görevinin üst veya alt akışında bir SQL düğümü yapılandırın.

Gerçek zamanlı yazma

  • Gerçek zamanlı senkronizasyon görevleri sunucusuz kaynak gruplarını destekler.

  • Gerçek zamanlı senkronizasyon görevleri birincil anahtarı olmayan tabloların senkronize edilmesini desteklemez.

  • Verilerin bir kaynaktan MaxCompute harici tablosuna senkronize edilmesi desteklenmez.

  • Varsayılan MaxCompute veri kaynağına (genellikle odps_first) gerçek zamanlı senkronizasyon yaptığınızda varsayılan olarak geçici bir AccessKey çifti kullanılır. Geçici AccessKey çifti 7 gün sonra süresi dolduğu için görev başarısız olur. Platform, hatanın süresi dolmuş geçici bir AccessKey çiftinden kaynaklandığını algıladığında görevi otomatik olarak yeniden başlatır. Bu tür uyarılar için izleme kuralları yapılandırdıysanız bir uyarı bildirimi alırsınız.

  • MaxCompute'a tek tıkla gerçek zamanlı senkronizasyon görevleri için yapılandırma gününde yalnızca geçmiş tam veriler sorgulanabilir. Artımlı veriler ancak bir sonraki gün birleştirme tamamlandıktan sonra MaxCompute'ta sorgulanabilir.

  • MaxCompute'a tek tıkla gerçek zamanlı senkronizasyon görevleri her gün tam bir bölüm oluşturur. Aşırı depolama kullanımını önlemek amacıyla bu görevler tarafından otomatik olarak oluşturulan MaxCompute tablolarının varsayılan yaşam döngüsü 30 gündür. Bu durum iş gereksinimlerinizi karşılamıyorsa senkronizasyon görevini yapılandırırken ilgili MaxCompute tablo adına tıklayarak yaşam döngüsünü değiştirebilirsiniz.

  • Data Integration, verileri yüklemek ve indirmek için MaxCompute motoru senkronizasyon veri kanalını kullanır. Senkronizasyon veri kanalının SLA ayrıntıları için bkz. MaxCompute Tunnel'a genel bakış. MaxCompute motoru senkronizasyon veri kanalının SLA'sına dayanarak veri senkronizasyonu teknoloji seçimlerinizi değerlendirin.

  • Örnek modunda MaxCompute'a tek tıkla gerçek zamanlı senkronizasyon için Data Integration'a yönelik özel kaynak grubunun minimum teknik özellikleri 8C16G olmalıdır.

  • Yalnızca geçerli çalışma alanıyla aynı bölgede bulunan özel MaxCompute veri kaynakları desteklenir. Çapraz bölge MaxCompute projeleri bağlantı testini geçebilir ancak görev yürütme sırasında MaxCompute'ta tablo oluşturma aşamasında motorun mevcut olmadığına ilişkin bir hata bildirilir.

  • MaxCompute tam veritabanı senkronizasyonu için hedef olarak kullanıldığında tablo türü normal tablo ise yalnızca MaxCompute'a tek tıkla gerçek zamanlı senkronizasyon ve tam veritabanı gerçek zamanlı senkronizasyonu için artımlı akış modu desteklenir. Tablo türü Delta Table ise hem tam veritabanı gerçek zamanlı senkronizasyonu hem de MaxCompute'a tek tıkla gerçek zamanlı senkronizasyon desteklenir.

    Not

    Özel bir MaxCompute veri kaynağı kullandığınızda DataWorks projesinin yine de bir MaxCompute motoruyla ilişkilendirilmesi gerekir. Aksi takdirde MaxCompute SQL düğümleri oluşturamazsınız; bu da tam senkronizasyon için done-flag düğümünün oluşturulmasının başarısız olmasına neden olur.

Desteklenen sütun türleri

MaxCompute 1,0 veri türleri, 2,0 veri türleri ve Hive uyumlu veri türleri desteklenir. Aşağıdaki bölümlerde her veri türü sürümü tarafından desteklenen sütun türleri açıklanmaktadır.

1.0 veri türleri tarafından desteklenen sütunlar


Sütun türü


Toplu okuma


Toplu yazma


Gerçek zamanlı yazma


BIGINT


Desteklenir


Desteklenir


Desteklenir


DOUBLE


Desteklenir


Desteklenir


Desteklenir


DECIMAL


Desteklenir


Desteklenir


Desteklenir


STRING


Desteklenir


Desteklenir


Desteklenir


DATETIME


Desteklenir


Desteklenir


Desteklenir


BOOLEAN


Desteklenir


Desteklenir


Desteklenir


ARRAY


Desteklenir


Desteklenir


Desteklenir


MAP


Desteklenir


Desteklenir


Desteklenir


STRUCT


Desteklenir


Desteklenir


Desteklenir

2.0 veri türleri ve Hive uyumlu veri türleri tarafından desteklenen sütunlar


Sütun türü


Toplu okuma (MaxCompute Reader)


Toplu yazma (MaxCompute Writer)


Gerçek zamanlı yazma


TINYINT


Desteklenir


Desteklenir


Desteklenir


SMALLINT


Desteklenir


Desteklenir


Desteklenir


INT


Desteklenir


Desteklenir


Desteklenir


BIGINT


Desteklenir


Desteklenir


Desteklenir


BINARY


Desteklenir


Desteklenir


Desteklenir


FLOAT


Desteklenir


Desteklenir


Desteklenir


DOUBLE


Desteklenir


Desteklenir


Desteklenir


DECIMAL(hassasiyet,ölçek)


Desteklenir


Desteklenir


Desteklenir


VARCHAR(n)


Desteklenir


Desteklenir


Desteklenir


CHAR(n)


Desteklenmez


Desteklenir


Desteklenir


STRING


Desteklenir


Desteklenir


Desteklenir


DATE


Desteklenir


Desteklenir


Desteklenir


DATETIME


Desteklenir


Desteklenir


Desteklenir


TIMESTAMP


Desteklenir


Desteklenir


Desteklenir


BOOLEAN


Desteklenir


Desteklenir


Desteklenir


ARRAY


Desteklenir


Desteklenir


Desteklenir


MAP


Desteklenir


Desteklenir


Desteklenir


STRUCT


Desteklenir


Desteklenir


Desteklenir

Veri türü dönüştürme

Aşağıdaki tabloda MaxCompute Reader'ın desteklediği veri türü dönüşümleri açıklanmaktadır.


Tür kategorisi


Data Integration türü


Veritabanı veri türü


Tamsayı


LONG


BIGINT, INT, TINYINT ve SMALLINT


Boole


BOOLEAN


BOOLEAN


Tarih ve saat


DATE


DATETIME, TIMESTAMP ve DATE


Kayan nokta


DOUBLE


FLOAT, DOUBLE ve DECIMAL


İkili


BYTES


BINARY


Karmaşık


STRING


ARRAY, MAP ve STRUCT

Önemli

Bir veri dönüşümü başarısız olursa veya veriler hedef veri kaynağına yazılamazsa veriler kirli veri olarak kabul edilir. Bunu kirli veri eşiği ile birlikte kullanabilirsiniz.

Veri senkronizasyonu öncesi hazırlıklar

Bir MaxCompute tablosundan veri okumadan veya tabloya veri yazmadan önce gerektiğinde ilgili özellikleri etkinleştirebilirsiniz.

MaxCompute'e bağlanma ve proje düzeyi ayarları etkinleştirme

  • MaxCompute istemcisinde oturum açın. Daha fazla bilgi için bkz. MaxCompute istemcisi.

  • MaxCompute proje düzeyi ayarlarını etkinleştirin: Gerekli izinlere sahip olduğunuzdan emin olun. İlgili işlemleri yapmak için Project Owner hesabı kullanabilirsiniz. MaxCompute izinleri hakkında daha fazla bilgi için bkz. MaxCompute izinleri.

ACID özelliğini etkinleştirme

ACID özelliğini etkinleştirmek için istemcide aşağıdaki komutu çalıştırmak üzere Project Owner hesabı kullanabilirsiniz. MaxCompute'taki ACID semantiği hakkında daha fazla bilgi için bkz. ACID semantiği.

setproject odps.sql.acid.table.enable=true;

(İsteğe bağlı) 2.0 veri türlerini etkinleştirme

MaxCompute 2,0 veri türlerinde TIMESTAMP türünü kullanmanız gerekiyorsa 2,0 veri türlerini etkinleştirmek için istemcide aşağıdaki komutu çalıştırmak üzere Project Owner hesabı kullanabilirsiniz.

setproject odps.sql.type.system.odps2=true;

(İsteğe bağlı) Hesaplara erişim izni verme

Bir MaxCompute hesap kaynağını bir çalışma alanıyla ilişkilendirdiğinizde DataWorks'te varsayılan olarak bir MaxCompute veri kaynağı oluşturulur. Bu veri kaynağını geçerli çalışma alanında veri senkronizasyonu için kullanabilirsiniz. Bu MaxCompute veri kaynağından başka bir çalışma alanında veri senkronize etmek istiyorsanız diğer çalışma alanındaki veri kaynağı için belirtilen erişim hesabının MaxCompute projesine erişmek için gerekli izinlere sahip olduğundan emin olun. Çapraz hesap yetkilendirmesi için bkz. Çapraz hesap yetkilendirmesi.

MaxCompute veri kaynağı oluşturma

Bir veri senkronizasyon görevi geliştirmeden önce MaxCompute projesini DataWorks'te MaxCompute veri kaynağı olarak oluşturmanız gerekir. Daha fazla bilgi için bkz. MaxCompute veri kaynağı oluşturma.

Not
  • Standart moddaki çalışma alanları veri kaynağı yalıtımını destekler. Geliştirme ortamı ve üretim ortamı için veri kaynaklarını ayrı ayrı ekleyip yalıtarak verilerinizi koruyabilirsiniz. Daha fazla bilgi için bkz. Veri kaynağı yalıtımı yapılandırma.

  • Bir çalışma alanındaki odps_first adlı MaxCompute veri kaynağı veri kaynağı sayfasında manuel olarak oluşturulmadıysa bu veri kaynağı veri kaynağı yükseltmesinden önce çalışma alanıyla ilişkilendirilen ilk MaxCompute motoru için otomatik olarak oluşturulan bir veri kaynağıdır. Bu veri kaynağını kullanarak veri senkronizasyonu yaptığınızda veriler ilgili MaxCompute motor projesinden okunur veya buraya yazılır.

    Veri kaynağı yapılandırma sayfasında veri kaynağının kullandığı MaxCompute proje adını görüntüleyerek verilerin nihai olarak hangi MaxCompute projesinden okunduğunu veya yazıldığını doğrulayabilirsiniz. Daha fazla bilgi için bkz. Veri kaynağı ayrıntılarını görüntüleme.

Veri senkronizasyon görevleri geliştirme

Senkronizasyon görevini yapılandırmaya giriş noktası ve yordamı hakkında bilgi için aşağıdaki yapılandırma kılavuzlarına bakın.

Tek tablo toplu senkronizasyon görevi yapılandırma

Tek tablo gerçek zamanlı senkronizasyon görevi yapılandırma

Yordam için bkz. Tek tablo gerçek zamanlı senkronizasyon görevi yapılandırma.

Tam veritabanı senkronizasyon görevi yapılandırma

Yordam için bkz. Tam veritabanından toplu modda veri senkronize etme, Tam veritabanından gerçek zamanlı modda veri senkronize etme ve MaxCompute'a tek tıkla gerçek zamanlı senkronizasyon.

SSS

Data Integration ile ilgili daha sık sorulan sorular için bkz. Data Integration SSS.

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

Kod düzenleyiciyi kullanarak toplu senkronizasyon görevi yapılandırma

Kod düzenleyiciyi kullanarak bir toplu senkronizasyon görevi yapılandırmak istiyorsanız birleşik betik formatı gereksinimlerine göre betikteki ilgili parametreleri 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 senkronizasyon görevi yapılandırırken veri kaynakları için yapılandırmanız gereken parametreleri açıklamaktadır.

Reader betik örneği

Önemli

Çalıştırmadan önce aşağıdaki koddaki yorumları kaldırın.

{
    "type":"job",
    "version":"2.0",
    "steps":[
        {
            "stepType":"odps",//The plug-in name.
            "parameter":{
                "partition":[],//The partition from which data is read.
                "isCompress":false,//Specifies whether to compress data.
                "datasource":"",//The data source.
                "column":[//The column information of the source table.
                    "id"
                ],
                "where": "",//The specific WHERE clause content when data filtering by using WHERE is enabled.
                "enableWhere":false,//Specifies whether to enable data filtering by using WHERE.
                "table":""//The table name.
            },
            "name":"Reader",
            "category":"reader"
        },
        { 
            "stepType":"stream",
            "parameter":{
            },
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":"0"//The error count.
        },
        "speed":{
            "throttle":true,//If throttle is set to false, the mbps parameter does not take effect and 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"
            }
        ]
    }
}

MaxCompute için Tunnel Endpoint belirtmek istiyorsanız betik modunda veri kaynağını manuel olarak yapılandırabilirsiniz. Yukarıdaki örnekteki "datasource":"", ifadesini veri kaynağının belirli parametreleriyle değiştirin. Örnek:

"accessId":"*******************",
"accessKey":"*******************",
"endpoint":"http://service.eu-central-1.maxcompute.aliyun-inc.com/api",
"odpsServer":"http://service.eu-central-1.maxcompute.aliyun-inc.com/api", 
"tunnelServer":"http://dt.eu-central-1.maxcompute.aliyun.com", 
"project":"*****", 

Reader betik parametreleri

Parametre

Açıklama

Gerekli

Varsayılan değer

datasource

Veri kaynağının adı. Betik modu veri kaynağı eklemenize olanak tanır. Bu parametrenin değeri eklediğiniz veri kaynağının adıyla aynı olmalıdır.

Evet

Yok

table

Verilerin okunduğu tablonun adı. Ad büyük/küçük harfe duyarlı değildir.

Evet

Yok

partition

Okunacak verilerin bölüm bilgisi.

  • ODPS bölüm yapılandırması Linux kabuk joker karakterlerini destekler. * sıfır veya daha fazla karakteri temsil eder ve ? herhangi bir tek karakteri temsil eder.

  • Varsayılan olarak okunacak bölümün mevcut olması gerekir. Bölüm mevcut değilse görev hata bildirir. Bölüm mevcut olmadığında bile görevin başarılı olmasını istiyorsanız betik moduna geçin ve ODPS parametrelerine "successOnNoPartition": true yapılandırmasını ekleyin.

Örneğin test adlı bir bölümlenmiş tabloda aşağıdaki dört bölüm bulunur: pt=1,ds=hangzhou, pt=1,ds=shanghai, pt=2,ds=hangzhou ve pt=2,ds=beijing. Farklı bölümlerden veri okumak için aşağıdaki ayarları yapılandırabilirsiniz:

  • pt=1,ds=hangzhou bölümünden veri okumak için bölüm bilgisini "partition":"pt=1,ds=hangzhou" olarak ayarlayın.

  • pt=1 altındaki tüm bölümlerden veri okumak için bölüm bilgisini "partition":"pt=1,ds=*" olarak ayarlayın.

  • test tablosundaki tüm bölümlerden veri okumak için bölüm bilgisini "partition":"pt=*,ds=*" olarak ayarlayın.

Ayrıca ihtiyaçlarınıza göre bölüm verilerini almak için koşullar belirtebilirsiniz:

  • Maksimum bölümü belirtmek için /*query*/ ds=(select MAX(ds) from DataXODPSReaderPPR) yapılandırmasını ekleyin.

  • Koşula göre filtrelemek için ilgili /*query*/ pt+expression koşulunu ekleyin. Örneğin /*query*/ pt>=20170101 and pt<20170110 ifadesi pt bölümündeki 20170101 tarihinden itibaren ve 20170110 tarihinden önceki tüm verileri getirir.

Not

/*query*/ kendisinden sonraki içeriğin bir WHERE koşulu olarak tanımlandığını gösterir.

Tablo bölümlenmiş bir tabloysa gereklidir. Tablo bölümlenmemiş bir tabloysa belirtilmemelidir.

Yok

column

MaxCompute kaynak tablosunun sütun bilgisi. Örneğin test tablosunda id, name ve age sütunları varsa:

  • id, name ve age sütunlarını sırasıyla okumak için "column":["id","name","age"] veya "column":["*"] yapılandırın.

    Not

    Çıkarma sütununu (*) olarak ayarlamanızı önermiyoruz çünkü bu işlem tablonun her sütununu sırayla okur. Tablodaki sütun sırası, veri türleri veya sütun sayısı değişirse kaynak tablo sütunları ile hedef tablo sütunlarının hizalanamaması riski oluşur. Bu durum görevin yanlış sonuçlar döndürmesine veya başarısız olmasına neden olabilir.

  • name ve id sütunlarını sırasıyla okumak için "column":["name","id"] yapılandırın.

  • Çıkarılan kaynak sütunlarına sabit bir alan eklemek için (hedef tablonun sütun sırasını eşleştirmek üzere) örneğin çıkarılan verilerin her satırının age sütununun değerini, name sütununun değerini, 1988-08-08 08:08:08 sabit tarih değerini ve id sütununun değerini içermesini istiyorsanız "column":["age","name","'1988-08-08 08:08:08'","id"] yapılandırın. Sabit sütun değerini tek tırnak işaretleri (') içine alın.

    Dahili olarak bir sabit değer yapılandırılan her sütunun her iki ucunda ' olup olmadığını kontrol ederek tanımlanır. Varsa sabit bir alan olarak kabul edilir ve gerçek değeri ' işaretleri kaldırıldıktan sonraki içeriktir.

    Not
    • Veri filtreleme modu kullanıldığında (enableWhere=true ve where boş değil) column içinde MaxCompute işlevleri desteklenir. Veri filtreleme olmayan mod kullanıldığında MaxCompute işlevleri desteklenmez.

    • Column parametresi senkronize edilecek sütun kümesini açıkça belirtmelidir ve boş bırakılamaz.

Evet

Yok

enableWhere

Veri filtreleme için WHERE yan tümcesinin kullanılıp kullanılmayacağını belirtir.

Hayır

false

where

WHERE kullanılarak veri filtreleme etkinleştirildiğinde belirli WHERE yan tümcesi içeriği.

Hayır

Yok

Writer betik örneği

Aşağıda bir betik yapılandırma örneği verilmiştir.

{ "type":"job", "version":"2.0",//The version number. "steps":[ { "stepType":"stream", "parameter":{}, "name":"Reader", "category":"reader" }, { "stepType":"odps",//The plug-in name. "parameter":{ "partition":"",//The partition information. "truncate":true,//The cleanup rule. "isCompress":false,//Specifies whether to compress data. "datasource":"odps_first",//The data source name. "column": [//The source column names. "id", "name", "age", "sex", "salary", "interest" ], "table":""//The table name. }, "name":"Writer", "category":"writer" } ], "setting":{ "errorLimit":{ "record":"0"//The error count, which specifies the maximum number of tolerable dirty data records. }, "speed":{ "throttle":true,//If throttle is set to false, the mbps parameter does not take effect and 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" } ] } }

MaxCompute için Tunnel Endpoint belirtmek istiyorsanız betik modunda veri kaynağını manuel olarak yapılandırabilirsiniz. Yukarıdaki örnekteki "datasource":"", ifadesini veri kaynağının belirli parametreleriyle değiştirin. Örnek:

{
    "type":"job",
    "version":"2.0",//The version number.
    "steps":[
        {
            "stepType":"stream",
            "parameter":{},
            "name":"Reader",
            "category":"reader"
        },
        {
            "stepType":"odps",//The plug-in name.
            "parameter":{
                "partition":"",//The partition information.
                "truncate":true,//The cleanup rule.
                "isCompress":false,//Specifies whether to compress data.
                "datasource":"odps_first",//The data source name.
            "column": [//The source column names.
                "id",
                "name",
                "age",
                "sex",
                "salary",
                "interest"
                ],
                "table":""//The table name.
            },
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":"0"//The error count, which specifies the maximum number of tolerable dirty data records.
        },
        "speed":{
            "throttle":true,//If throttle is set to false, the mbps parameter does not take effect and 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"
            }
        ]
    }
}
"accessId":"<yourAccessKeyId>",
 "accessKey":"<yourAccessKeySecret>",
 "endpoint":"http://service.eu-central-1.maxcompute.aliyun-inc.com/api",
 "odpsServer":"http://service.eu-central-1.maxcompute.aliyun-inc.com/api", 
"tunnelServer":"http://dt.eu-central-1.maxcompute.aliyun.com", 
"project":"**********", 

Writer betik parametreleri

Parametre

Açıklama

Gerekli

Varsayılan değer

datasource

Veri kaynağının adı. Betik modu veri kaynağı eklemenize olanak tanır. Bu parametrenin değeri eklediğiniz veri kaynağının adıyla aynı olmalıdır.

Evet

Yok

table

Verilerin yazıldığı tablonun adı. Ad büyük/küçük harfe duyarlı değildir. Birden çok tablo belirtemezsiniz.

Evet

Yok

partition

Verilerin yazıldığı tablonun bölüm bilgisi. Bölümü en alt düzeye kadar belirtmeniz gerekir. Örneğin üç düzeyli bölümlere sahip bir tabloya veri yazmak için en alt düzey bölümü belirtmeniz gerekir örneğin pt=20150101, type=1, biz=2:

  • Bölümlenmemiş tablolar için bu parametreyi belirtmeyin. Bu durumda veriler doğrudan hedef tabloya aktarılır.

  • MaxCompute Writer yazma işlemleri için veri yönlendirmeyi desteklemez. Bölümlenmiş tablolar için verilerin en alt düzey bölüme yazıldığından emin olun.

Tablo bölümlenmiş bir tabloysa gereklidir. Tablo bölümlenmemiş bir tabloysa belirtilmemelidir.

Yok

column

İçe aktarılacak sütunların listesi. Tüm sütunları içe aktarmak için "column": ["*"] yapılandırın. Belirli MaxCompute sütunlarına veri eklemek için sütunları belirtin. Örneğin "column": ["id","name"]:

  • MaxCompute Writer sütun filtrelemeyi ve sütun yeniden sıralamayı destekler. Örneğin bir tabloda a b ve c olmak üzere üç sütun varsa ve yalnızca c ile b sütunlarını senkronize etmek istiyorsanız "column": ["c","b"] yapılandırın. İçe aktarma sırasında a sütunu otomatik olarak null olarak ayarlanır.

  • Column parametresi senkronize edilecek sütun kümesini açıkça belirtmelidir ve boş bırakılamaz.

Evet

Yok

truncate

"truncate": "true" ayarını yaparak yazma kimliğini doğrulamayı sağlayabilirsiniz. Yazma hatası oluştuğunda ve görev yeniden çalıştırıldığında MaxCompute Writer önceden yazılan verileri temizler ve yeni verileri içe aktarır. Bu sayede her yeniden çalıştırmadan sonra veri tutarlılığı sağlanır.

Veri temizleme işlemi için MaxCompute SQL kullanıldığından SQL atomikliği garanti edemez. Bu nedenle truncate seçeneği atomik bir işlem değildir. Birden çok görev aynı Tablo veya Bölüm'ün bölümlerini eşzamanlı olarak temizlediğinde eşzamanlılık sıralama sorunları oluşabilir.

Bu sorunu önlemek için aynı anda birden çok işin aynı bölümde DDL işlemleri gerçekleştirmemesini veya birden çok eşzamanlı işi başlatmadan önce bölümleri oluşturmanızı öneririz.

Evet

Yok

emptyAsNull

Yazmadan önce boş dizelerin NULL'a dönüştürülüp dönüştürülmeyeceğini belirtir.

Hayır

false

consistencyCommit

Senkronizasyondan sonra görünür.

  • Evet (true) olarak ayarlanırsa: Veriler yalnızca görev başarıyla senkronize edildikten sonra bir kerede görünür hale gelir. Ancak veri hacmi 1 TB'ı aşarsa MaxCompute en fazla 300.000 blok senkronize edebileceğinden senkronizasyon görevi başarısız olur.

  • Hayır (false) olarak ayarlanırsa: Senkronizasyon görevi tamamlanmadan önce MaxCompute'a zaten senkronize edilen bazı veriler sorgulanabilir. Ancak belirli görünür kısım öngörülemez. Bu tablonun alt akış tüketicileri veri bütünlüğünün farkında olmalıdır.

Hayır

false