Tüm Ürünler
Search
Belge Merkezi

DataWorks:Toplu iş göreviyle MongoDB'ye veri yazma

Son Güncelleme:Oct 05, 2026

DataWorks Data Integration içindeki MongoDB Writer eklentisi, diğer veri kaynaklarından MongoDB'ye veri senkronize eder. Bu konuda, MaxCompute'tan MongoDB'ye toplu senkronizasyonun nasıl yapılacağı açıklanmaktadır.

Önkoşullar

Başlamadan önce aşağıdaki gereksinimleri karşıladığınızdan emin olun:

  • DataWorks etkinleştirilmiş ve bir MaxCompute veri kaynağı eklemiş olmanız gerekir.

  • Bu eğitimde toplu iş görevini çalıştırmak için Data Integration özel kaynak grubu kullanılır. Devam etmeden önce bu kaynak grubunu satın almanız ve yapılandırmanız gerekir. Daha fazla bilgi için bkz. Data Integration için özel kaynak grubu kullanma.

    Not

    Bunun yerine sunucusuz bir kaynak grubu da kullanabilirsiniz. Daha fazla bilgi için bkz. Sunucusuz kaynak grubu kullanma.

Örnek verileri hazırlama

Toplu senkronizasyon için bir MongoDB koleksiyonu ve bir MaxCompute tablosu hazırlayın.

  1. Bir MaxCompute tablosu oluşturun ve içine veri ekleyin.

    1. Bölüm alanı pt olarak ayarlanmış test_write_mongo adlı bölümlendirilmiş bir tablo oluşturun.

      CREATE TABLE IF NOT EXISTS test_write_mongo(
          id STRING ,
          col_string STRING,
          col_int int,
          col_bigint bigint,
          col_decimal decimal,
          col_date DATETIME,
          col_boolean boolean,
          col_array string
      ) PARTITIONED BY (pt STRING) LIFECYCLE 10;
    2. Değeri 20230215 olan bir bölüm ekleyin.

      insert into test_write_mongo partition (pt='20230215')
      values ('11','name11',1,111,1.22,cast('2023-02-15 15:01:01' as datetime),true,'1,2,3');
    3. Bölümlendirilmiş tablonun doğru şekilde oluşturulduğunu doğrulayın.

      SELECT * FROM test_write_mongo
      WHERE pt='20230215';
  2. Hedef MongoDB koleksiyonunu hazırlayın.

    Bu eğitimde örnek olarak ApsaraDB for MongoDB kullanılmaktadır. test_write_mongo adlı bir koleksiyon oluşturun.

    db.createCollection('test_write_mongo')

Toplu iş görevi yapılandırması

1. Adım: MongoDB veri kaynağı ekleme

Bir MongoDB veri kaynağı ekleyin ve bu kaynak ile Data Integration özel kaynak grubu arasında ağ bağlantısı kurun. Daha fazla bilgi için bkz. MongoDB veri kaynağını yapılandırma.

2. Adım: Toplu senkronizasyon düğümü oluşturma ve yapılandırma

DataWorks DataStudio'da bir toplu senkronizasyon düğümü oluşturun ve kaynak ile hedefini yapılandırın. Bu bölümde yalnızca temel parametreler açıklanmaktadır. Diğer parametreleri varsayılan değerlerinde bırakın. Ayrıntılı talimatlar için bkz. Kodsuz kullanıcı arayüzünde görev yapılandırma.

  1. Senkronizasyon için ağ bağlantısını yapılandırın.

    MongoDB veri kaynağını, MaxCompute veri kaynağını ve Data Integration özel kaynak grubunu seçin. Ardından bağlantıyı test edin.

  2. Kaynağı ve hedefi yapılandırın.

    MaxCompute bölümlendirilmiş tablosunu ve MongoDB koleksiyonunu seçin. Temel parametreler aşağıdaki tabloda açıklanmıştır.

    Parametre

    Açıklama

    write mode

    Mevcut verilerin üzerine yazılıp yazılmayacağını belirler. Bu işlev, write mode ve business primary key olmak üzere iki ilgili ayarı içerir:

    • write mode:

      • No seçeneğini belirlerseniz eklenti her kaydı yeni bir belge olarak ekler. Bu, varsayılan seçenektir.

      • Yes seçeneğini belirlerseniz bir business primary key belirtmeniz gerekir. Eklenti daha sonra aynı iş birincil anahtarına sahip kayıtların üzerine yazar.

    • business primary key: Üzerine yazma işlemi için kullanılan her kaydın iş birincil anahtarını belirtir. Yalnızca bir alan belirtebilirsiniz. MongoDB'de bu genellikle _id alanına karşılık gelir.

    Not

    write mode değeri Yes olarak ayarlanır ve _id dışında bir alan iş birincil anahtarı olarak belirtilirse aşağıdakine benzer bir hata oluşabilir: After applying the update, the (immutable) field '_id' was found to have been altered to _id: "2". Bu hata, gelen verilerde iş birincil anahtarıyla tanımlanan mevcut belgenin _id'siyle eşleşmeyen bir _id'ye sahip bir kayıt bulunduğunda meydana gelir. Daha fazla bilgi için bkz. Error: After applying the update, the (immutable) field '_id' was found to have been altered to _id: "2".

    Pre-Import Statement

    İçe aktarma görevinden önce çalıştırılacak bir ön koşulu (PreSQL) belirtir. Yapılandırma JSON biçiminde olmalı ve type ile json özelliklerini içermelidir.

    • type: Gereklidir. Geçerli değerler remove ve drop şeklindedir (küçük harfle).

    • json:

      • type değeri remove olarak ayarlanırsa bu parametre gereklidir. Değeri standart bir MongoDB sorgusu olmalıdır. Daha fazla bilgi için bkz. Query Documents.

      • type değeri drop olarak ayarlanırsa bu parametre gerekli değildir.

  3. Alan eşlemesini yapılandırın.

    Veri kaynağı MongoDB olduğunda varsayılan olarak Map Fields in Same Row kullanılır. Kaynak tablo alanlarını manuel olarak düzenlemek için icon simgesini de tıklayabilirsiniz. Aşağıda manuel düzenlemeye bir örnek verilmiştir.

    {"name":"id","type":"string"}
    {"name":"col_string","type":"string"}
    {"name":"col_int","type":"long"}
    {"name":"col_bigint","type":"long"}
    {"name":"col_decimal","type":"double"}
    {"name":"col_date","type":"date"}
    {"name":"col_boolean","type":"bool"}
    {"name":"col_array","type":"array","splitter":","}

    Alanları manuel olarak düzenledikten sonra kullanıcı arayüzü kaynak ve hedef alanlar arasındaki eşlemeyi gösterir.


    Kaynak alanı


    Hedef alanı


    id


    {"name":"id","type":"string"}


    col_string


    {"name":"col_string","type":"string"}


    col_int


    {"name":"col_int","type":"long"}


    col_bigint


    {"name":"col_bigint","type":"long"}


    col_decimal


    {"name":"col_decimal","type":"double"}


    col_date


    {"name":"col_date","type":"date"}


    col_boolean


    {"name":"col_boolean","type":"bool"}


    col_array


    {"name":"col_array","type":"array","splitter":","}

3. Adım: Toplu senkronizasyon düğümünü gönderme ve dağıtma

Bu görevi standart mod çalışma alanında periyodik olarak çalıştırmak için toplu senkronizasyon düğümünü üretim ortamına göndermeniz ve dağıtmanız gerekir. Daha fazla bilgi için bkz. düğüm dağıtımı.

4. Adım: Toplu senkronizasyon düğümünü çalıştırma ve sonuçları görüntüleme

Düğümü yapılandırdıktan sonra çalıştırın. Görev tamamlandığında MongoDB koleksiyonundaki senkronize edilen verileri görüntüleyin. Görev, hedef veritabanında aşağıdaki alanlara ve değerlere sahip bir belge kaydı oluşturur: _id değeri 63ecc513143e565c9b037623, col_array değeri [1, 2, 3], col_bigint değeri 111, col_boolean değeri true, col_date değeri 2023-02-15T07:01:01.000Z, col_decimal değeri 1.22, col_int değeri 1, col_string değeri name11 ve id değeri 11.

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

type parametresi için desteklenen değerler

type parametresi için desteklenen değerler şunlardır: INT, LONG, DOUBLE, STRING, BOOL, DATE ve ARRAY.

Dizi türü

Verileri MongoDB dizisi olarak yazmak için type parametresini ARRAY olarak ayarlayın ve splitter özelliğini yapılandırın. Örneğin:

  • Kaynak veriler şu dizedir: a,b,c.

  • Görev yapılandırmasında type değeri ARRAY ve splitter değeri , olarak ayarlanır.

  • Görev çalıştırıldıktan sonra MongoDB'deki sonuç veriler şöyledir: ["a","b","c"].