Verileri bir ApsaraDB RDS for MySQL örneğinden ApsaraDB for ClickHouse kümesine aktarmak için Data Transmission Service (DTS) hizmetini kullanın. DTS, tam veri başlatma işlemini ve Change Data Capture (CDC) yöntemiyle sürekli artımlı senkronizasyonu yönetir; bu sayede ClickHouse kümeniz manuel müdahale gerekmeden güncel kalır.
Önkoşullar
Başlamadan önce aşağıdaki adımları tamamladığınızdan emin olun:
DTS hizmetinin Alibaba Cloud kaynaklarına erişim izni verin. Daha fazla bilgi için bkz. Alibaba Cloud kaynaklarına erişmek üzere DTS'yi yetkilendirme.
V20.8 veya sonraki bir sürümü çalıştıran ve depolama alanı kaynak RDS MySQL örneğindeki toplam veri boyutundan büyük olan bir ApsaraDB for ClickHouse kümesi oluşturun. Daha fazla bilgi için bkz. ApsaraDB for ClickHouse kümesi oluşturma.
ApsaraDB for ClickHouse kümesinde hedef bir veritabanı oluşturun. Daha fazla bilgi için bkz. Veritabanı oluşturma.
Hedef veritabanına, RDS MySQL'deki kaynak veritabanıyla aynı adı verin. Adlar farklıysa, Configure Objects and Advanced Settings adımındaki Selected Objects bölümünde ad eşleme özelliğini kullanarak kaynak veritabanı adını hedef veritabanı adına eşleyin. Daha fazla bilgi için bkz. Nesne adlarını eşleme.
Faturalandırma
| Senkronizasyon türü | Fiyatlandırma |
|---|---|
| Şema senkronizasyonu ve tam veri senkronizasyonu | Ücretsiz |
| Artımlı veri senkronizasyonu | Ücretlendirilir. Daha fazla bilgi için bkz. Faturalandırma genel bakış. |
Desteklenen SQL işlemleri
| İşlem türü | SQL deyimleri |
|---|---|
| DML | INSERT, UPDATE, DELETE |
| DDL | CREATE TABLE, DROP TABLE, TRUNCATE TABLE, ADD COLUMN, MODIFY COLUMN, DROP COLUMN |
DDL senkronizasyon davranışı
Her bir DDL deyiminin senkronizasyon sırasındaki davranışını anlamak, beklenmedik veri kaybını veya görev hatalarını önlemenize yardımcı olur.
| DDL işlemi | Davranış |
|---|---|
| CREATE TABLE | Otomatik olarak yayılır. Hedef tablo, DTS tarafından eklenen alanlarla (_sign, _version, _is_deleted) oluşturulur. |
| DROP TABLE | Otomatik olarak yayılır. Hedef tablo silinir. |
| TRUNCATE TABLE | Otomatik olarak yayılır. Hedef tablodaki tüm satırlar silinir. |
| ADD COLUMN | Otomatik olarak yayılır. Değişiklikten sonra çoğaltılan yeni satırlar eklenen sütunu içerir. |
| MODIFY COLUMN | Otomatik olarak yayılır. |
| DROP COLUMN | Otomatik olarak yayılır. |
| RENAME TABLE | Desteklenmez. Kaynakta RENAME TABLE çalıştırılırsa görev başarısız olabilir. |
| INDEX, PARTITION, VIEW, PROCEDURE, FUNCTION, TRIGGER, FK | Desteklenir. |
Veri türü eşlemeleri
MySQL ve ApsaraDB for ClickHouse farklı veri türlerini desteklediğinden birebir eşleme her zaman mümkün olmayabilir. DTS, ilk şema senkronizasyonu sırasında MySQL türlerini ApsaraDB for ClickHouse tarafından desteklenen en yakın eşdeğer türlere eşler. Daha fazla bilgi için bkz. İlk şema senkronizasyonu için veri türü eşlemeleri.
Veritabanı hesabı izinleri
| Veritabanı | Gerekli izinler | Nasıl yapılandırılır |
|---|---|---|
| Kaynak RDS MySQL | Senkronize edilecek tüm nesneler üzerinde okuma izinleri | Hesap oluşturma ve Hesap izinlerini değiştirme |
| Hedef ApsaraDB for ClickHouse kümesi (v22.8 veya üzeri) | Hedef veritabanı üzerinde okuma ve yazma izinleri. Ayrıcalıklı bir hesap gereksinimleri karşılar. | Topluluk uyumlu sürüm hesap yönetimi |
| Hedef ApsaraDB for ClickHouse kümesi (v21.8) | Read/Write And Settings ve Allow DDL | Topluluk uyumlu sürüm hesap yönetimi |
Kaynak veritabanı hesabı RDS MySQL konsolu aracılığıyla oluşturulmadıysa hesabın REPLICATION CLIENT, REPLICATION SLAVE, SHOW VIEW ve SELECT izinlerine sahip olduğundan emin olun.
Sınırlamalar
Kaynak veritabanı sınırlamaları
| Sınırlama | Ayrıntılar |
|---|---|
| Birincil anahtar gereklidir | Birincil anahtarı olmayan tablolar senkronize edilemez. |
| Tablo düzeyinde senkronizasyon sınırı | Nesne düzenlemeleri (ad eşleme gibi) ile tablo düzeyinde senkronizasyon yapılırken tek bir görev en fazla 1.000 tabloyu destekler. Bu sınırı aşarsanız tabloları birden fazla göreve bölün veya görevi tüm veritabanını senkronize edecek şekilde yapılandırın. |
| İkili günlük saklama süresi | RDS MySQL için yerel ikili günlükleri en az 3 gün (7 gün önerilir), kendi kendine yönetilen MySQL için ise en az 7 gün saklayın. DTS gerekli ikili günlükleri alamazsa görev başarısız olur. Aşırı durumlarda bu durum veri tutarsızlığına veya veri kaybına neden olabilir. Yetersiz saklama sürelerinden kaynaklanan sorunlar DTS SLA kapsamında değildir. RDS MySQL örneği için saklama süresini yapılandırmak hakkında bilgi almak için bkz. Yerel günlükleri otomatik olarak silme. |
| Senkronizasyon sırasında DDL yok | Şema senkronizasyonu veya tam senkronizasyon sırasında veritabanı ya da tablo şemalarını değiştiren DDL işlemleri çalıştırmayın; aksi takdirde görev başarısız olur. Tam senkronizasyon sırasında DTS kaynak veritabanını sorgular ve bu durum DDL işlemlerini engelleyebilecek meta veri kilitleri oluşturur. |
| İkili günlük dışı veriler | Fiziksel yedekleme geri yüklemeleri veya kademeli işlemler gibi ikili günlüklere yazmayan işlemlerle oluşturulan veriler senkronize edilmez. Böyle bir durum oluşursa iş süreçleriniz izin veriyorsa etkilenen nesneleri senkronizasyon görevinden kaldırıp tekrar ekleyin. Daha fazla bilgi için bkz. Senkronizasyon nesnelerini değiştirme. |
| Görünmez sütunlar (MySQL 8.0.23+) | DTS, MySQL 8.0.23 veya sonraki sürümlerdeki görünmez gizli sütunları okuyamayabilir ve bu durum veri kaybına yol açabilir. Senkronizasyondan önce gizli sütunları görünür yapmak için ALTER TABLE <table_name> ALTER COLUMN <column_name> SET VISIBLE; komutunu çalıştırın. Daha fazla bilgi için bkz. Görünmez sütunlar. |
İkili günlük yapılandırması
Senkronizasyon görevini başlatmadan önce şu parametreleri yapılandırın:
ApsaraDB RDS for MySQL için:
ApsaraDB RDS for MySQL varsayılan olarak ikili günlük kaydını etkinleştirir. Aşağıdakileri doğrulayın:
binlog_row_imagedeğerinifullolarak ayarlayın. Aksi takdirde ön kontrol başarısız olur ve görev başlatılamaz. Talimatlar için bkz. Örnek parametrelerini yapılandırma.Yerel ikili günlükleri en az 3 gün (7 gün önerilir) saklayın.
Kendi kendine yönetilen MySQL için:
İkili günlük kaydını etkinleştirin.
binlog_formatdeğerinirowolarak ayarlayın.binlog_row_imagedeğerinifullolarak ayarlayın.Çift birincil kümeler için DTS'nin tüm ikili günlük olaylarını yakalayabilmesi amacıyla
log_slave_updatesözelliğini de etkinleştirin.Yerel ikili günlükleri en az 7 gün saklayın.
Talimatlar için bkz. Kendi kendine yönetilen bir MySQL veritabanı için hesap oluşturma ve ikili günlük kaydını yapılandırma.
Diğer sınırlamalar
| Sınırlama | Ayrıntılar |
|---|---|
| Standart dışı DDL sözdizimi | Kaynak RDS MySQL örneğinin DDL deyimleri standart MySQL sözdizimini takip etmiyorsa görev başarısız olabilir veya veri kaybı yaşanabilir. |
| Geçici tablo modunda çevrimiçi DDL | Kaynak veritabanı geçici tablo modunda çevrimiçi DDL kullanıyorsa (çoklu tablo birleştirme senaryoları veya benzersiz anahtar sütunlarında işleve dayalı dizinler dahil) veri kaybı veya görev hatası meydana gelebilir. |
| Çevrimiçi DDL araçları | DMS ve gh-ost: DTS yalnızca orijinal DDL deyimlerini senkronize eder ve bu durum hedef tabloların geçici olarak kilitlenmesine neden olabilir. Tablo düzeyinde senkronizasyon yapılırken pt-online-schema-change desteklenmez; kaynakta kullanılırsa veri kaybı olabilir veya görev başarısız olabilir. Bunun yerine çevrimiçi DDL işlemleri gerçekleştirmek için Data Management (DMS) kullanabilirsiniz. Daha fazla bilgi için bkz. Tabloları kilitlemeden şemaları değiştirme. |
| Birincil anahtar veya benzersiz anahtar çakışmaları | Tam senkronizasyon sırasında DTS hedef kaydı korur ve çakışan kaynak kaydı atlar. Artımlı senkronizasyon sırasında DTS hedef kaydı kaynak kayıtla üzerine yazar. Tablo şemaları tutarsızsa veri başlatma başarısız olabilir ve bu durum kısmi veya tam senkronizasyon hatasına yol açabilir. |
| Zaman türü veri aralığı | ApsaraDB for ClickHouse, zaman türü veriler için aralık sınırlamaları uygular. RDS MySQL'deki zaman verileri bu aralıkların dışında kalırsa senkronize edilen değerler hatalı olur. Bkz. Zaman bilgisi. |
| Bölümleme anahtarı | Bölümleme anahtarı null değer alabilen bir alan olamaz. Desteklenen türler: BIGINT, INT, TIMESTAMP, DATETIME ve DATE. |
| Veritabanı sınırı | Senkronize edilecek veritabanı sayısı ApsaraDB for ClickHouse'un sınırı olan 256'yı aşamaz. |
| Adlandırma kuralları | Veritabanı, tablo ve sütun adları ApsaraDB for ClickHouse adlandırma kurallarına uygun olmalıdır. Daha fazla bilgi için bkz. Nesne adlandırma kuralları. |
| DTS tarafından eklenen alanlar | DTS, şema senkronizasyonu sırasında hedef tablolara _sign, _is_deleted ve _version alanlarını ekler. Schema Synchronization seçeneğini seçmezseniz hedef tabloları manuel olarak oluşturup bu alanları eklemeniz gerekir. Bkz. Tablo ve alan bilgisi. |
| Performans etkisi | Tam veri senkronizasyonu hem kaynak hem de hedef veritabanlarının okuma ve yazma kaynaklarını tüketir. Etkiyi en aza indirmek için senkronizasyonu yoğun saatler dışında çalıştırın. |
| Hedefe harici yazma işlemleri | Senkronizasyon sırasında DTS dışındaki hiçbir veri kaynağının hedef veritabanına yazmasına izin vermeyin. Aksi takdirde veri tutarsızlığı oluşur. |
| Always-Encrypted | Always-Encrypted özelliği etkinleştirilmiş RDS MySQL örnekleri için tam veri senkronizasyonu desteklenmez. Transparent Data Encryption (TDE) özelliği etkinleştirilmiş örnekler tüm senkronizasyon türlerini destekler. |
| Görev hatası kurtarma | Bir görev başarısız olursa DTS destek personeli 8 saat içinde görevi kurtarmaya çalışır. Kurtarma sırasında görevi yeniden başlatabilir veya DTS görev parametrelerini (veritabanı parametrelerini değil) ayarlayabilirler. |
Kullanım notları
Kendi kendine yönetilen MySQL kaynakları için:
Senkronizasyon sırasında birincil/ikincil geçiş gerçekleşirse görev başarısız olur.
DTS, son senkronize edilen kaydın zaman damgasını geçerli saatle karşılaştırarak gecikme süresini hesaplar. Uzun bir süre boyunca DML işlemleri çalıştırılmazsa gecikme raporlaması yanlış olabilir. Raporlanan gecikmeyi sıfırlamak için kaynak veritabanında bir DML işlemi çalıştırın. Senkronizasyon için tam bir veritabanı seçtiyseniz bir kalp atışı tablosu oluşturun ve bunu her saniye güncelleyin.
DTS, ikili günlük ofsetini ilerletmek için kaynak veritabanında periyodik olarak
CREATE DATABASE IF NOT EXISTS \test\`` komutunu çalıştırır.Kaynak Amazon Aurora MySQL veya başka bir kümeleme MySQL örneğiyse görev yapılandırmasında kullanılan etki alanı adının veya IP adresinin her zaman bir okuma/yazma (RW) düğümünü çözdüğünden emin olun.
ApsaraDB RDS for MySQL kaynakları için:
İşlem günlüklerini kaydetmeyen salt okunur örnekler (örneğin ApsaraDB RDS for MySQL 5.6 salt okunur örnekleri) kaynak veritabanı olarak kullanılamaz.
DTS, ikili günlük ofsetini ilerletmek için kaynak veritabanında periyodik olarak
CREATE DATABASE IF NOT EXISTS \test\`` komutunu çalıştırır.
Senkronizasyon görevi oluşturma
Görev yapılandırması yedi adımdan oluşur. Görev başladıktan sonra DTS önce kaynak verilerin tam bir kopyasını çıkarır, ardından artımlı değişiklikleri sürekli olarak uygular.
1. Adım: Veri senkronizasyonu sayfasını açma
Aşağıdaki yöntemlerden birini kullanarak hedef bölgedeki Data Synchronization görev listesini açın:
DTS konsolu
DTS konsoluna giriş yapın.
Sol gezinme bölmesinde Data Synchronization öğesine tıklayın.
Sol üst köşeden senkronizasyon örneğinin bulunacağı bölgeyi seçin.
DMS konsolu
Adımlar DMS konsolunun moduna ve düzenine göre değişebilir. Daha fazla bilgi için Basit mod konsolu ve DMS konsolunun düzenini ve stilini özelleştirme konularına bakın.
DMS konsoluna giriş yapın.
Üst menü çubuğunda Data + AI > DTS (DTS) > Data Synchronization seçeneklerini belirleyin.
Data Synchronization Tasks öğesinin sağ tarafında senkronizasyon örneğinin bölgesini seçin.
2. Adım: Görev oluşturma
Görev yapılandırma sayfasını açmak için Create Task öğesine tıklayın.
3. Adım: Kaynak ve hedef veritabanlarını yapılandırma
| Kategori | Parametre | Açıklama |
|---|---|---|
| Yok | Görev Adı | DTS otomatik olarak bir ad oluşturur. Kolay tanımlama için açıklayıcı bir ad belirtin. Adın benzersiz olması gerekmez. |
| Kaynak Veritabanı | Mevcut Bağlantıyı Seç | Açılan listeden bir kayıtlı veritabanı örneği seçerek bağlantı ayrıntılarını otomatik olarak doldurun. DMS konsolunda bu parametre DMS veritabanı örneği seçin olarak etiketlenmiştir. Kayıtlı bir örnek yoksa bağlantıyı manuel olarak yapılandırın. |
| Veritabanı Türü | MySQL seçeneğini belirleyin. | |
| Erişim Yöntemi | Alibaba Cloud Instance seçeneğini belirleyin. | |
| Örnek Bölgesi | Kaynak RDS MySQL örneğinin bulunduğu bölgeyi seçin. | |
| Alibaba Cloud Hesapları Arasında Veri Çoğaltma | No (aynı Alibaba Cloud hesabı) seçeneğini belirleyin. | |
| RDS Örnek Kimliği | Kaynak RDS MySQL örneğinin kimliğini seçin. | |
| Veritabanı Hesabı | Veritabanı hesabını girin. İzin gereksinimleri için bkz. Veritabanı hesabı izinleri. | |
| Veritabanı Parolası | Veritabanı hesabının parolasını girin. | |
| Şifreleme | Non-encrypted veya SSL-encrypted seçeneğini belirleyin. SSL-encrypted seçeneğini belirlerseniz önce RDS MySQL örneğinde SSL şifrelemesini etkinleştirin. Daha fazla bilgi için bkz. SSL bağlantı şifrelemesini hızlıca etkinleştirmek için bulut sertifikası kullanma. | |
| Hedef Veritabanı | Mevcut Bağlantıyı Seç | Açılan listeden bir kayıtlı veritabanı örneği seçin. DMS konsolunda bu parametre DMS veritabanı örneği seçin olarak etiketlenmiştir. Kayıtlı bir örnek yoksa bağlantıyı manuel olarak yapılandırın. |
| Veritabanı Türü | ClickHouse seçeneğini belirleyin. | |
| Erişim Yöntemi | Alibaba Cloud Instance seçeneğini belirleyin. | |
| Örnek Bölgesi | Hedef ApsaraDB for ClickHouse kümesinin bulunduğu bölgeyi seçin. | |
| Alibaba Cloud Hesapları Arasında Veri Çoğaltma | No (aynı Alibaba Cloud hesabı) seçeneğini belirleyin. | |
| Küme Türü | ApsaraDB for ClickHouse kümesinin türünü seçin. | |
| Küme Kimliği | Hedef ApsaraDB for ClickHouse kümesinin kimliğini seçin. | |
| Veritabanı Hesabı | Veritabanı hesabını girin. İzin gereksinimleri için bkz. Veritabanı hesabı izinleri. | |
| Veritabanı Parolası | Veritabanı hesabının parolasını girin. |
4. Adım: Bağlantıyı test etme
Sayfanın alt kısmındaki Test Connectivity and Proceed öğesine tıklayın.
Erişime izin vermek için DTS sunucularının CIDR bloklarını hem kaynak hem de hedef veritabanlarının güvenlik ayarlarına ekleyin. Bu işlem otomatik veya manuel olarak yapılabilir. Daha fazla bilgi için DTS sunucularının IP adresi beyaz listesini ekleme konusuna bakın.
Kaynak veya hedef kendi kendine yönetilen bir veritabanıysa (yani Access Method seçeneği Alibaba Cloud Instance değilse) CIDR Blocks of DTS Servers iletişim kutusunda ayrıca Test Connectivity öğesine tıklayın.
5. Adım: Nesneleri ve gelişmiş ayarları yapılandırma
Nesneleri yapılandırma
Configure Objects sayfasında senkronizasyon kapsamını belirtin.
| Parametre | Açıklama |
|---|---|
| Synchronization Types | DTS her zaman Incremental Data Synchronization seçeneğini seçer. Varsayılan olarak Schema Synchronization ve Full Data Synchronization seçenekleri de seçilidir. Ön kontrolden sonra DTS, hedef kümesini kaynak verilerin tam bir kopyasıyla başlatır; bu kopya artımlı senkronizasyon için temel oluşturur. |
| Processing Mode of Conflicting Tables | Precheck and Report Errors: Hedef veritabanında aynı ada sahip tabloları kontrol eder. Herhangi biri bulunursa ön kontrol sırasında hata bildirilir ve görev başlamaz. Çakışan tabloyu silemiyor veya yeniden adlandıramıyorsanız ad eşlemeyi kullanarak hedefte farklı bir ad atayın. Daha fazla bilgi için bkz. Veritabanı tablo sütun adı eşleme. Ignore Errors and Proceed: Yinelenen tablo adı kontrolünü atlar. Tam senkronizasyon sırasında DTS hedef kaydı korur ve çakışan kaynak kayıtlarını atlar. Artımlı senkronizasyon sırasında DTS hedef kayıtların üzerine yazar. Tablo şemaları tutarsızsa veri başlatma başarısız olabilir. Dikkatli kullanın. |
| Capitalization of Object Names in Destination Instance | Hedefteki veritabanı, tablo ve sütun adları için büyük/küçük harf duyarlılığı ilkesini ayarlar. Varsayılan değer DTS default policy şeklindedir. Daha fazla bilgi için bkz. Hedef nesne adları için büyük/küçük harf ilkesi. |
| Source Objects | Source Objects kutusunda senkronize edilecek nesnelere tıklayın, ardından bunları Selected Objects kutusuna taşımak için ok işaretine tıklayın. Nesneleri veritabanı veya tablo düzeyinde seçin. |
| Selected Objects | Hedefte tek bir nesneyi yeniden adlandırmak için Selected Objects kutusunda nesneye sağ tıklayın. Birden çok nesneyi toplu olarak yeniden adlandırmak için sağ üst köşedeki Batch Edit öğesine tıklayın. Verileri filtrelemek için Selected Objects kutusunda bir tabloya sağ tıklayıp filtre koşullarını ayarlayın. Daha fazla bilgi için bkz. Filtre koşullarını ayarlama. Ad eşleme kullanmanın bağımlı nesnelerin senkronizasyonunun başarısız olmasına neden olabileceğini unutmayın. |
Next: Advanced Settings öğesine tıklayın.
Gelişmiş ayarlar
| Parametre | Açıklama |
|---|---|
| Dedicated Cluster for Task Scheduling | DTS varsayılan olarak paylaşılan bir küme kullanır. Görev kararlılığını artırmak için özel bir küme satın alın. Daha fazla bilgi için bkz. DTS özel kümesi nedir?. |
| Time zone of destination database | ApsaraDB for ClickHouse kümesine yazılan DateTime verileri için saat dilimini seçin. |
| Retry Time for Failed Connections | DTS'nin bağlantı hatasından sonra ne kadar süreyle yeniden deneyeceğini ayarlar. Varsayılan: 720 dakika. Aralık: 10–1.440 dakika. 30 dakika veya daha fazla ayarlayın. Bağlantı bu süre içinde restore edilirse görev otomatik olarak devam eder. Birden fazla DTS örneği aynı kaynağı veya hedefi paylaşıyorsa DTS tüm örnekler arasında yapılandırılan en kısa yeniden deneme süresini kullanır. DTS, yeniden denemeler sırasında görev çalışma süresi için ücretlendirir; kaynak veya hedef örnekleri serbest bıraktıktan sonra DTS örneğini hemen serbest bırakın. |
| Retry Time for Other Issues | DTS'nin bağlantı dışı hatalardan (DDL veya DML çalıştırma hataları gibi) sonra ne kadar süreyle yeniden deneyeceğini ayarlar. Varsayılan: 10 dakika. Aralık: 1–1.440 dakika. Retry Time for Failed Connections değerinden düşük olmalıdır. |
| Enable Throttling for Full Data Synchronization | Hedef veritabanındaki yükü azaltmak için tam senkronizasyon hızını sınırlar. Queries per second (QPS) to the source database, RPS of Full Data Migration ve Data migration speed for full migration (MB/s) değerlerini ayarlayın. Yalnızca Full Data Synchronization seçildiğinde kullanılabilir. Görev başladıktan sonra hızı ayarlayabilirsiniz. |
| Enable Throttling for Incremental Data Synchronization | Artımlı senkronizasyon hızını sınırlar. RPS of Incremental Data Synchronization ve Data synchronization speed for incremental synchronization (MB/s) değerlerini ayarlayın. |
| Whether to delete SQL operations on heartbeat tables of forward and reverse tasks | DTS'nin kaynak veritabanına kalp atışı SQL'i yazıp yazmayacağını kontrol eder. Yes: Kalp atışı SQL'i yazmaz; DTS örneği daha yüksek gecikme süresi gösterebilir. No: Kalp atışı SQL'i yazar; bu durum kaynakta fiziksel yedeklemelere ve klonlamaya müdahale edebilir. |
| Environment Tag | Örneğin ortamını tanımlamak için isteğe bağlı olarak etiketleyin. |
| Configure ETL | Yes: Extract, transform ve load (ETL) işlemlerini etkinleştirir. Kod düzenleyicide veri işleme deyimlerini girin. Daha fazla bilgi için bkz. Veri taşıma veya veri senkronizasyonu görevinde ETL yapılandırma. No: ETL'yi devre dışı bırakır. |
| Monitoring and Alerting | Yes: Uyarıları yapılandırır. Uyarı eşiğini ve bildirim kişilerini ayarlayın. Daha fazla bilgi için bkz. Görev yapılandırması sırasında izleme ve uyarı yapılandırma. No: Uyarı yapılandırılmaz. |
Veritabanı ve tablo alanlarını yapılandırma
ClickHouse'a senkronize edilen her tablo için Type, Primary Key Column, Sort Key, Distribution Key ve Partition Key alanlarını yapılandırmak üzere Next: Configure Database and Table Fields öğesine tıklayın.
DTS varsayılan bir yapılandırma sağlar. Tüm tabloları gözden geçirip değiştirmek için Definition Status değerini All olarak ayarlayın.
Primary Key Column ve Sort Key bileşik anahtarları destekler; açılan listeden birden çok alan seçin.
Distribution Key olarak yalnızca bir alan seçilebilir.
Partition Key olarak Primary Key Column alanlarından birini veya birkaçını seçin.
Partition Key isteğe bağlıdır ancak belirtilirse null değer alabilen bir alan olamaz. Desteklenen türler: BIGINT, INT, TIMESTAMP, DATETIME ve DATE. Hesaplama mantığı için bkz. Bölümleme anahtarı hesaplama mantığı.
Birincil anahtar sütunları, sıralama anahtarları ve bölümleme anahtarları hakkında daha fazla bilgi için bkz. CREATE TABLE.
6. Adım: Görevi kaydetme ve ön kontrolü çalıştırma
Bu görev için API parametrelerini önizlemek için Next: Save Task Settings and Precheck üzerine gelin ve araç ipucundaki Preview OpenAPI parameters öğesine tıklayın.
Next: Save Task Settings and Precheck öğesine tıklayın.
DTS, görev başlamadan önce bir ön kontrol çalıştırır. Görev yalnızca ön kontrol başarılı olursa başlar.
Ön kontrol başarısız olursa başarısız olan öğenin yanındaki View Details öğesine tıklayın, sorunu giderin ve ön kontrolü yeniden çalıştırın.
-
Ön kontrol uyarılar üretirse:
Yoksayılmayan uyarılar için View Details öğesine tıklayın, sorunu giderin ve ön kontrolü yeniden çalıştırın.
Yoksayılabilir uyarılar için Confirm Alert Details > Ignore > OK seçeneklerini belirleyin, ardından Precheck Again öğesine tıklayın. Uyarıları yoksaymak veri tutarsızlıklarına yol açabilir. Dikkatli ilerleyin.
7. Adım: Senkronizasyon örneğini satın alma
Success Rate %100'e ulaştığında Next: Purchase Instance öğesine tıklayın.
Purchase sayfasında faturalandırma yöntemini ve örnek sınıfını seçin.
| Kategori | Parametre | Açıklama |
|---|---|---|
| New Instance Class | Faturalandırma yöntemi | Subscription: Sabit bir süre için peşin ödeme yapın. Uzun vadeli, sürekli görevler için uygundur. Aylık seçenekler: 1–9 ay. Yıllık seçenekler: 1, 2, 3 veya 5 yıl. Pay-as-you-go: Gerçek kullanım için saatlik faturalandırma. Kısa vadeli veya test görevleri için uygundur. |
| Resource Group Settings | — | Örnek için kaynak grubu. Varsayılan: default resource group. Daha fazla bilgi için bkz. Kaynak Yönetimi nedir?. |
| Instance Class | — | Senkronizasyon performansını etkiler. İş gereksinimlerinize göre seçin. Daha fazla bilgi için bkz. Veri senkronizasyonu bağlantısı teknik özellikleri. |
Data Transmission Service (Pay-as-you-go) Service Terms onay kutusunu okuyup seçin.
Buy and Start öğesine tıklayın, ardından OK öğesine tıklayın.
Veri senkronizasyonu sayfasından görev ilerlemesini izleyin.
Ek
Zaman bilgisi
| Veri türü | Minimum değer | Maksimum değer |
|---|---|---|
| Date | 1970-01-01 00:00:00 | 2149-06-06 00:00:00 |
| Date32 | 1925-01-01 00:00:00 | 2283-11-11 00:00:00 |
| DateTime | 1970-01-01 08:00:00 | 2106-02-07 14:28:15 |
| DateTime64 | 1925-01-01 08:00:00 | 2283-11-12 07:59:59 |
Tablo ve alan bilgisi
Tablo gereksinimleri
Nesne adı eşleme özelliğini kullanmıyorsanız oluşturduğunuz tablolar aşağıdaki gereksinimleri karşılamalıdır.
Hedef tablo bir ENGINE belirtiyorsa bu ENGINE = ReplicatedReplacingMergeTree(_version, _is_deleted) olmalıdır. Aksi takdirde veri tutarsızlığı oluşabilir.
Community Edition örneği: Bir yerel tablo ve bir dağıtılmış tablo oluşturun. Dağıtılmış tablo adı kaynak tablo adıyla eşleşmelidir. Yerel tablo adı
<distributed_table_name>_localbiçimini takip etmelidir.Enterprise Edition örneği: Kaynak tablo ile aynı ada sahip bir tablo oluşturun.
DTS tarafından eklenen alanlar
DTS, şema senkronizasyonu sırasında hedef tablolara aşağıdaki alanları ekler. Verileri sorgulamak ve silinen kayıtları filtrelemek için şu komutu çalıştırın:
SELECT * FROM table_name FINAL WHERE _sign > 0;
FINAL anahtar kelimesi yinelenen sıralama anahtarlarına sahip satırları filtreler ve _sign > 0 koşulu silinen kayıtları hariç tutar.
| Sürüm | Alan | Veri türü | Varsayılan değer | Açıklama |
|---|---|---|---|---|
| v23.8 öncesi Community Edition | _sign |
Int8 | 1 | DML işlem türü. INSERT ve UPDATE = 1. DELETE = -1. |
_version |
UInt64 | 1 | Kaydın ClickHouse'a yazıldığı zaman damgası. | |
| Enterprise Edition ve v23.8 veya üzeri Community Edition | _sign |
Int8 | 1 | DML işlem türü. INSERT ve UPDATE = 1. DELETE = -1. |
_is_deleted |
UInt8 | 0 | Kaydın silinip silinmediği. INSERT ve UPDATE = 0. DELETE = 1. |
|
_version |
UInt64 | 1 | Kaydın ClickHouse'a yazıldığı zaman damgası. |
Bölümleme anahtarı hesaplama mantığı
| Kaynak alan türü | Hesaplama mantığı |
|---|---|
| BIGINT | intDiv(field, 18014398509481984) |
| INT | intDiv(field, 4194304) |
| TIMESTAMP | toYYYYMM(field) |
| DATETIME | toYYYYMM(field) |
| DATE | toYYYYMM(field) |