Data Integration, ApsaraDB for OceanBase, MySQL, Oracle ve PolarDB gibi kaynaklardan MaxCompute'a yönelik tüm veritabanlarının tam ve artımlı senkronizasyonunu destekler. Bu senkronizasyon bağlantısı ilk olarak tam bir geçiş gerçekleştirir, ardından artımlı değişiklikleri sürekli olarak senkronize eder ve bunları hedefe günlük (T+1) olarak birleştirir. Bu konu, MySQL'den MaxCompute'a örnek olayını kullanarak tam ve artımlı bir görevin nasıl oluşturulacağını açıklar.
Çalışma mantığı
Tam ve artımlı bir görev, verileri hedef temel tabloya geçirmek ve birleştirmek için toplu iş ve gerçek zamanlı alt görevleri birleştirir. Görev başlatıldıktan sonra sistem, verileri hedef tabloya (temel tablo) birleştirmek üzere toplu iş ve gerçek zamanlı alt görevleri otomatik olarak oluşturur ve koordine eder.
Süreç üç aşamadan oluşur:
İlk tam yükleme: Bir toplu iş görevi, kaynak veritabanındaki tüm tabloların şemalarını ve mevcut verilerini MaxCompute'a geçirir. Tamamlandığında bu toplu iş görevi dondurulur.
Artımlı senkronizasyon: Gerçek zamanlı bir görev, kaynak veritabanı binlog'undan (örneğin MySQL binlog) değişiklikleri (Insert, Update, Delete) sürekli olarak yakalar ve bunları neredeyse gerçek zamanlı olarak MaxCompute'taki geçici bir günlük tablosuna yazar.
Düzenli birleştirme: Günlük (T+1) birleştirme görevi, önceki günün günlük tablosundaki artımlı verilerini temel tablo ile birleştirerek yeni bir bölümde tam bir anlık görüntü oluşturur. Bu birleştirme görevi günde bir kez çalışır.
Temel özellikler:
Çoka çok veya çoka bir tablo eşlemesi: Birden fazla kaynak tabloyu karşılık gelen hedef tablolara senkronize edin veya eşleme kurallarını kullanarak birden fazla kaynak tabloyu tek bir hedef tabloya birleştirin.
Bileşim: Tam ve artımlı bir görev; bir toplu iş alt görevinden (tam yükleme), bir gerçek zamanlı alt görevden (artımlı senkronizasyon) ve bir birleştirme görevinden (veri konsolidasyonu) oluşur.
Hedef tablo desteği: Veriler, MaxCompute'taki bölümlenmiş ve bölümlenmemiş tablolara yazılabilir.
Kullanım notları
Kaynak gereksinimleri: Görevlerin bir serverless resource group üzerinde çalışması gerekir. Örnek başına veri senkronize ederken minimum teknik özellikler: serverless kaynak grubu için 2 CU.
Ağ bağlantısı: Data Integration için kaynak grubunun hem kaynak (örneğin MySQL) hem de hedef (örneğin MaxCompute) veri kaynaklarına ağ bağlantısının bulunduğundan emin olun. Daha fazla bilgi için bkz. Network connectivity.
Bölge kısıtlamaları: Yalnızca mevcut DataWorks çalışma alanıyla aynı bölgede bulunan kendi tarafından yönetilen MaxCompute veri kaynakları desteklenir. Kendi tarafından yönetilen bir MaxCompute veri kaynağı kullanırken Data Studio'da yine de bir MaxCompute hesaplama kaynağı ilişkilendirmeniz gerekir. Aksi takdirde MaxCompute SQL düğümleri oluşturamazsınız, bu da tam senkronizasyonun tamamlandığını belirten düğümün başarısız olmasına neden olur.
Zamanlama kaynak grubu kısıtlamaları: Görev için yapılandırılan serverless resource group zamanlama kaynak grubu olarak kullanılır.
Hedef tablo türü kısıtlamaları: Kaynak verilerin MaxCompute harici tablolarına senkronize edilmesi desteklenmez.
Notlar
Birincil anahtar gereksinimleri: Birincil anahtarı olmayan tablolar desteklenmez. Birincil anahtarı olmayan tablolar için yapılandırma sırasında bir veya daha fazla sütunu iş birincil anahtarı olarak manuel olarak belirtmeniz gerekir (Specify Primary Key).
Veri görünürlük gecikmesi: MaxCompute için tam ve artımlı bir görev yapılandırdığınız gün yalnızca geçmiş tam verileri sorgulayabilirsiniz. Artımlı veriler, sonraki günün birleştirmesi tamamlandıktan sonra MaxCompute'ta sorgulanabilir. Daha fazla bilgi için bkz. How it works bölümündeki düzenli birleştirme kısmı.
Depolama ve yaşam döngüsü: Tam ve artımlı bir görev her gün tam bir bölüm oluşturur. Aşırı depolama kullanımını önlemek için görev tarafından otomatik olarak oluşturulan MaxCompute tablolarının varsayılan yaşam döngüsü 30 gündür. Bu durum iş ihtiyaçlarınızı karşılamazsa görevi yapılandırırken ilgili MaxCompute tablo adını tıklayarak yaşam döngüsünü değiştirebilirsiniz. Daha fazla bilgi için bkz. Edit the destination table schema (optional).
SLA: Data Integration, verileri yüklemek ve indirmek için MaxCompute veri kanalını kullanır. Veri kanalının SLA'sı hakkında daha fazla bilgi için bkz. MaxCompute data channel SLA. Veri senkronizasyon çözümünüzü MaxCompute veri kanalı SLA'sına göre değerlendirin.
Binlog saklama ilkesi: Gerçek zamanlı senkronizasyon, kaynak MySQL örneğinin binlog'una bağlıdır. Bir görev uzun süre duraklatıldığında veya bir arızadan sonra yeniden denendiğinde eksik başlangıç ofsetlerinden kaynaklanan senkronizasyon kesintilerini önlemek için binlog saklama süresinin yeterli olduğundan emin olun.
Faturalama
Tam ve artımlı bir görev; tam yükleme aşaması için bir toplu iş senkronizasyon görevi, artımlı aşama için bir gerçek zamanlı senkronizasyon görevi ve düzenli birleştirme aşaması için zamanlanmış bir görev içerir. Bu üç aşama ayrı ayrı faturalandırılır. Üç aşamanın tamamı kaynak grubundan CU tüketir. CU faturalandırması hakkında daha fazla bilgi için bkz. Resource group billing. Zamanlanmış görev ayrıca görev zamanlama ücretlerine de tabidir. Daha fazla bilgi için bkz. Task scheduling billing.
Buna ek olarak, MaxCompute'a yönelik tam ve artımlı senkronizasyon bağlantısı, MaxCompute hesaplama kaynaklarını tüketen düzenli tam-artımlı veri birleştirmeleri gerektirir. Bu maliyetler doğrudan MaxCompute tarafından tahsil edilir ve tam verilerin boyutu ile birleştirme döngüsüyle orantılıdır. Daha fazla bilgi için bkz. MaxCompute billing.
Yordam
Adım 1: Senkronizasyon görevi türü seçin
-
DataWorks konsolu oturum açın. Hedef bölgede sol gezinme bölmesinde seçeneğine tıklayın. Açılan listeden bir çalışma alanı seçin ve Go to Data Integration seçeneğine tıklayın.
-
Sol gezinme bölmesinde Synchronization Task seçeneğine tıklayın ve ardından sayfanın üst kısmındaki Create Synchronization Task seçeneğine tıklayın. Görüntülenen iletişim kutusunda aşağıdaki temel ayarları yapılandırın:
Source Type:
MySQL.Destination Type:
MaxCompute.Specific Type:
Full and Incremental.Sync Procedure: Schema Migration, Incremental Sync, Full Synchronization ve Periodic Merge.
Adım 2: Veri kaynaklarını ve kaynak gruplarını yapılandırın
Source Information bölümünde eklediğiniz
MySQLveri kaynağını seçin. Destination bölümünde eklediğinizMaxComputeveri kaynağını seçin.-
Running Resources bölümünde görev için Resource Group seçin ve buna Resource Group CU atayın. Kaynakları hassas bir şekilde kontrol etmek ve israfı önlemek için tam senkronizasyon ve artımlı senkronizasyon için CU'ları ayrı ayrı yapılandırabilirsiniz.
NotDataWorks'teki toplu iş senkronizasyon görevleri, yürütme için zamanlama kaynak grubu tarafından Data Integration kaynak grubuna gönderilir. Bu nedenle toplu iş senkronizasyon görevleri hem Data Integration kaynak grubundan hem de zamanlama kaynak grubundan kaynak tüketir ve bu durum zamanlama örneği ücretlerine neden olur.
Hem kaynak hem de hedef veri kaynaklarının Connectivity Check işlemini geçtiğinden emin olun.
Adım 3: Senkronize edilecek tabloları seçin
Source Tables alanında senkronize edilecek tabloları seçin ve bunları sağ taraftaki Selected Tables listesine taşımak için
simgesine tıklayın.
Select Specific Tables ve Select Tables by Regex olmak üzere iki tablo seçimi yöntemi mevcuttur. Yöntemler arasında geçiş yapmak diğer yöntemin sonuçlarını temizler. En fazla 5.000 tablo seçebilirsiniz. Tabloları hızlıca eklemek için Batch Paste to Select Tables özelliğini de kullanabilirsiniz.
Çok sayıda veritabanı ve tablo varsa senkronize edilecek tabloları seçmek için Database Filtering veya Search for Tables kullanabilir veya normal ifadeler yapılandırabilirsiniz.
Adım 4: Görev ayarlarını yapılandırın
-
Log table time range: Bu parametre, günlük tablosundaki verilerin hedef bölüme birleştirilmesi için zaman sorgusu aralığını tanımlar.
Veri gecikmesinden kaynaklanan günler arası bölüm hatalarını önlemek için bu aralığı uygun şekilde genişletin ve böylece bölüme ait tüm verilerin doğru şekilde birleştirildiğinden emin olun.
Merge task schedule settings: Günlük birleştirme görevi için zamanlama saatini ayarlayın. Zamanlama saatinin nasıl yapılandırılacağı hakkında daha fazla bilgi için bkz. Schedule settings.
Periodic scheduling parameters: Zamanlama parametrelerini yapılandırın. Zamanlama parametrelerini, sonraki bölüm ayarlarında bölümlere değer atamak için kullanabilirsiniz; bu sayede verileri tarihe göre bölümlere yazabilirsiniz.
Table partition settings: Bölüm sütun adları ve değer atama yöntemleri gibi temel parametreler dahil olmak üzere hedef tablo için bölümleri yapılandırın. Atama sütununda tarihle otomatik olarak bölümler oluşturmak için zamanlama parametrelerini kullanabilirsiniz.
Adım 5: Hedef tablo eşlemesini yapılandırın
Bu adımda kaynak tablolar ile hedef tablolar arasındaki eşleme kurallarını tanımlar ve verilerin nasıl yazılacağını belirlemek için birincil anahtarları, dinamik bölümleri, DDL/DML yapılandırmalarını ve diğer kuralları belirtirsiniz.
Eylem | Açıklama |
Refresh | Sistem seçtiğiniz kaynak tabloları otomatik olarak listeler ancak hedef tablo nitelikleri yalnızca yeniledikten ve onayladıktan sonra etkili olur.
|
Customize Mapping Rules for Destination Table Names (isteğe bağlı) | Sistemin varsayılan bir tablo adı oluşturma kuralı vardır:
Aşağıdaki senaryolar desteklenir:
|
Sütun türü eşlemesini düzenleyin (isteğe bağlı) | Sistem, kaynak ve hedef sütun türleri arasında varsayılan bir eşleme sağlar. Kaynak ve hedef tablolar arasındaki sütun türü eşlemesini özelleştirmek için tablonun sağ üst köşesindeki Edit Mapping of Field Data Types seçeneğine tıklayabilirsiniz. Yapılandırmadan sonra Apply and Refresh Mapping seçeneğine tıklayın. Sütun türü eşlemesini düzenlerken tür dönüştürme kurallarının doğru olduğundan emin olun. Yanlış kurallar, kirli veri üreten ve görev yürütmeyi etkileyen tür dönüştürme hatalarına neden olur. |
Hedef tablo şemasını düzenleyin (isteğe bağlı) | Sistem, var olmayan hedef tabloları özel tablo adı eşleme kurallarına göre otomatik olarak oluşturur veya aynı ada sahip mevcut tabloları yeniden kullanır. DataWorks, hedef tablo şemasını kaynak tablo şemasına göre otomatik olarak oluşturur. Yaygın senaryolarda manuel müdahale gerekmez. Tablo şemasını aşağıdaki yollarla da değiştirebilirsiniz:
Mevcut tablolar için yalnızca sütun ekleyebilirsiniz. Yeni tablolar için sütun ekleyebilir, bölüm sütunları ekleyebilir ve tablo türünü veya tablo özelliklerini ayarlayabilirsiniz. Ayrıntılar için sayfadaki düzenlenebilir alanlara bakın. |
Value assignment | Yerel sütunlar, kaynak ve hedef tablolardaki aynı ada sahip sütunlara göre otomatik olarak eşlenir. Önceki adımlardaki yeni eklenen sütunlar manuel değer ataması gerektirir. Aşağıdaki işlemleri gerçekleştirin:
Sütunlara sabitler veya değişkenler atayabilirsiniz. Value Type içinde türü değiştirin. Aşağıdaki yöntemler desteklenir:
|
Source Split Key | Kaynak bölme anahtarı sütununda açılan listeden kaynak tablodan bir sütun seçin veya Not Split seçeneğini belirleyin. Görev yürütme sırasında veriler bu sütuna göre eşzamanlı, toplu veri okuma için birden fazla göreve bölünür. Kaynak bölme anahtarı olarak tablo birincil anahtarı gibi verilerin eşit dağıldığı bir sütun kullanmanızı öneririz. Dize, kayan nokta ve tarih türleri desteklenmez. Kaynak bölme anahtarı şu anda yalnızca kaynak MySQL olduğunda desteklenir. |
Skip Full Synchronization | 3. adımda tam senkronizasyon yapılandırıldıysa tek tek tablolar için tam veri senkronizasyonunu iptal edebilirsiniz. Bu durum, tam verileri hedefe başka yöntemlerle zaten senkronize ettiğinizde uygulanır. |
Full condition | Tam yükleme aşamasında kaynakta koşula dayalı filtreleme uygulayın. Burada WHERE anahtar sözcüğü olmadan yalnızca WHERE yan tümcesini belirtin. |
Configure DML Rule | DML mesaj işleme, gerçek zamanlı senkronizasyon sırasında veriler hedefe yazılmadan önce kaynaktan yakalanan değişiklik verilerini ( |
Full Merge Cycle | Şu anda yalnızca günlük birleştirmeler desteklenir. Birleştirme görevinin belirli zamanlama saatini Custom Merge Time içinde yapılandırabilirsiniz. |
Merge Primary Key | Tablodaki bir veya daha fazla sütunu seçerek bir birincil anahtar tanımlayabilirsiniz.
|
Adım 6: Gelişmiş yapılandırma
Gelişmiş parametre yapılandırması
Özel senkronizasyon gereksinimlerini karşılamak için ince ayarlı görev yapılandırmasına ihtiyacınız varsa Advanced Parameters sekmesine gidin ve gelişmiş parametreleri değiştirin.
Gelişmiş parametre yapılandırma sayfasına gitmek için sayfanın sağ üst köşesindeki Advanced Configuration seçeneğine tıklayın.
Parametre açıklamalarına göre parametre değerlerini değiştirin. Her parametrenin anlamı parametre adının yanında açıklanmıştır.
Yapay zeka destekli yapılandırma da desteklenir. Görevin eşzamanlılığını ayarlama gibi doğal dil talimatları girin ve büyük dil modeli önerilen parametre değerlerini oluştursun. AI tarafından oluşturulan parametreleri gerçek ihtiyaçlarınıza göre kabul edip etmemeye karar verebilirsiniz.
Parametreleri yalnızca anlamlarını tamamen anladığınızda değiştirin. Yanlış değişiklikler; görev gecikmesi, diğer görevleri engelleyen aşırı kaynak tüketimi veya veri kaybı gibi beklenmedik sorunlara neden olabilir.
DDL yeteneği yapılandırması
Bazı gerçek zamanlı senkronizasyon bağlantıları kaynak tablo şemalarındaki meta veri değişikliklerini algılayabilir ve güncellemeleri senkronize etmek için hedefi bilgilendirebilir veya uyarı gönderme, yoksayma veya görevi sonlandırma gibi başka eylemler gerçekleştirebilir.
Her değişiklik türü için bir işleme ilkesi ayarlamak üzere sayfanın sağ üst köşesindeki Configure DDL Capability seçeneğine tıklayın. Desteklenen ilkeler kanala göre değişir.
Normal: Hedef, kaynaktan gelen DDL değişiklik bilgilerini işler.
Yoksay: Değişiklik mesajı yoksayılır ve hedefte hiçbir değişiklik yapılmaz.
Hata: Gerçek zamanlı senkronizasyon görevi sonlandırılır ve durumu Error olarak ayarlanır.
Uyarı: Kaynakta bu tür bir değişiklik meydana geldiğinde bir uyarı gönderilir. Configure Alert Rule içinde DDL bildirim kurallarını yapılandırmanız gerekir.
Kaynakta yeni bir sütun eklendikten ve DDL aracılığıyla hedefe senkronize edildikten sonra sistem hedef tablodaki mevcut verileri o sütun için geri doldurmaz.
Adım 7: Senkronizasyon görevini çalıştırın
Tüm yapılandırmaları tamamladıktan sonra görevi kaydetmek için Save seçeneğine tıklayın.
-
sayfasında oluşturduğunuz senkronizasyon görevini bulun ve Operation sütunundaki Deploy seçeneğine tıklayın. Dağıtım sırasında Start immediately after deployment seçeneğini belirlerseniz görev onaylamanızın hemen ardından çalışır. Aksi takdirde görevi manuel olarak başlatmanız gerekir.
NotData Integration görevlerinin çalışabilmesi için üretim ortamına dağıtılması gerekir. Bu nedenle bir görev oluşturduktan veya düzenledikten sonra değişikliklerin etkili olması için Publish işlemini yapmanız gerekir.
Görevin ayrıntılı yürütme sürecini görüntülemek için Tasks içindeki ilgili görevin Name/ID seçeneğine tıklayın.
Sonraki adım
Görev yapılandırmasını tamamladıktan sonra oluşturulan görevi yönetebilir, tablo ekleyebilir veya kaldırabilir, görev için izleme uyarıları yapılandırabilir ve görevin temel ölçümlerini görüntüleyebilirsiniz. Daha fazla bilgi için bkz. Manage synchronization tasks.
SSS
S: Temel tablo verileri neden beklendiği gibi güncellenmiyor?
C: Aşağıda kök neden analizi ve çözümler sunulmaktadır:
Belirti | Neden | Çözüm |
Artımlı günlük tablosunun T-1 bölümü için veri üretimi kontrolü başarısız oldu. | Gerçek zamanlı senkronizasyon görevi başarısız oldu ve bu durum artımlı günlük tablosundaki T-1 bölüm verilerinin normal şekilde üretilmemesine neden oldu. |
|
Hedef temel tablonun T-2 bölümü için veri üretimi kontrolü başarısız oldu. |
|
|
düğmesine tıklayarak Manual Input ve Built-in Variable seçeneklerini seçebilirsiniz. Desteklenen değişkenler arasında kaynak veri kaynağı adı, kaynak veritabanı adı ve kaynak tablo adı bulunur.
düğmesine tıklayın.