Çift Yazımlı Proxy ile Cassandra'dan Bigtable'a taşıma

Çift Yazımlı Proxy ile Cassandra'dan Bigtable'a taşıma

Bu codelab hakkında

subjectSon güncelleme Nis 15, 2025
account_circleYazan: Louis Cheynel

1. Giriş

Bigtable, büyük analitik ve operasyonel iş yükleri için tasarlanmış, tamamen yönetilen, yüksek performanslı bir NoSQL veritabanı hizmetidir. Apache Cassandra gibi mevcut veritabanlarından Bigtable'a geçiş, genellikle kapalı kalma süresini ve uygulama üzerindeki etkiyi en aza indirmek için dikkatli bir planlama gerektirir.

Bu kod laboratuvarında, proxy araçlarının bir kombinasyonu kullanılarak Cassandra'dan Bigtable'a taşıma stratejisi gösterilmektedir:

  1. Cassandra-Bigtable Proxy: Cassandra istemcilerinin ve araçlarının (cqlsh veya sürücüler gibi), sorguları çevirerek Cassandra Sorgu Dili (CQL) protokolünü kullanarak Bigtable ile etkileşime geçmesine olanak tanır.
  2. Datastax Zero Downtime Migration (ZDM) Proxy: Uygulamanız ile veritabanı hizmetleriniz (Cassandra-Bigtable Proxy aracılığıyla kaynak Cassandra ve hedef Bigtable) arasında bulunan açık kaynak bir proxy. Çift yazma işlemlerini düzenler ve trafik yönlendirmesini yönetir. Böylece, uygulama değişiklikleri ve kapalı kalma süresi en aza indirilerek taşıma işlemi gerçekleştirilir.
  3. Cassandra Veri Taşıyıcısı (CDM): Geçmiş verileri kaynak Cassandra kümesinden hedef Bigtable örneğine toplu olarak taşımak için kullanılan açık kaynak bir araçtır.

Neler öğreneceksiniz?

  • Compute Engine'de temel bir Cassandra kümesi oluşturma.
  • Bigtable örneği oluşturma.
  • Cassandra şemasını Bigtable ile eşlemek için Cassandra-Bigtable Proxy'yi dağıtma ve yapılandırma.
  • Çift yazma için Datastax ZDM Proxy'yi dağıtma ve yapılandırma.
  • Mevcut verileri toplu olarak taşımak için Cassandra Veri Taşıma Aracı'nı kullanma.
  • Proxy tabanlı Cassandra'dan Bigtable'a taşıma işlemi için genel iş akışı.

İhtiyacınız olanlar

  • Faturalandırma özelliği etkinleştirilmiş bir Google Cloud projesi. Yeni kullanıcılar ücretsiz denemeden yararlanabilir.
  • Projeler, Compute Engine, VPC ağları ve güvenlik duvarı kuralları gibi Google Cloud kavramlarıyla ilgili temel düzeyde bilgi sahibi olma Linux komut satırı araçlarına aşina olmanız gerekir.
  • gcloud KSA'nın yüklü ve yapılandırılmış olduğu bir makineye erişin veya Google Cloud Shell'i kullanın.

Bu kod laboratuvarında, ağ oluşturmayı basitleştirmek için öncelikle Compute Engine'de aynı VPC ağında ve bölgedeki sanal makineleri (VM'ler) kullanacağız. Dahili IP adreslerinin kullanılması önerilir.

2. Ortamınızı ayarlama

1. Google Cloud projesi seçin veya oluşturun

Google Cloud Console'a gidin ve mevcut bir projeyi seçin veya yeni proje oluşturun. Proje kimliğinizi not edin.

2. Gerekli API'leri etkinleştirme

Projeniz için Compute Engine API ve Bigtable API'nin etkinleştirildiğinden emin olun.

gcloud services enable compute.googleapis.com bigtable.googleapis.com bigtableadmin.googleapis.com --project=<your-project-id>

yerine gerçek proje kimliğinizi yazın.

3. Bölge ve alt bölge seçin

Kaynaklarınız için bir bölge ve alt bölge seçin. Örnek olarak us-central1 ve us-central1-c bölgelerini kullanacağız. Kolaylık sağlamak için bunları ortam değişkenleri olarak tanımlayın:

export PROJECT_ID="<your-project-id>"
export REGION="us-central1"
export ZONE="us-central1-c"

gcloud config set project $PROJECT_ID
gcloud config set compute/region $REGION
gcloud config set compute/zone $ZONE

4. Güvenlik duvarı kurallarını yapılandırma

Varsayılan VPC ağındaki sanal makinelerimiz arasında çeşitli bağlantı noktalarında iletişime izin vermemiz gerekir:

  • Cassandra/Proxies CQL Bağlantı Noktası: 9042
  • ZDM Proxy Durum Denetimi Bağlantı Noktası: 14001
  • SSH: 22

Bu bağlantı noktalarında dahili trafiğe izin vermek için bir güvenlik duvarı kuralı oluşturun. Bu kuralı ilgili sanal makinelere kolayca uygulamak için cassandra-migration etiketini kullanacağız.

gcloud compute firewall-rules create allow-migration-internal \
--network=default \
--action=ALLOW \
--rules=tcp:22,tcp:9042,tcp:14001 \
--source-ranges=10.128.0.0/9 # Adjust if using a custom VPC/IP range \
--target-tags=cassandra-migration

3. Cassandra kümesini dağıtma (Kaynak)

Bu codelab'de, Compute Engine'de basit bir tek düğümlü Cassandra kümesi oluşturacağız. Gerçek hayattan bir senaryoda, mevcut kümenize bağlanırsınız.

1. Cassandra için GCE sanal makinesi oluşturma

gcloud compute instances create cassandra-origin \
--machine-type=e2-medium \
--image-family=ubuntu-2004-lts \
--image-project=ubuntu-os-cloud \
--tags=cassandra-migration \
--boot-disk-size=20GB

2. Cassandra'yı yükleme

# Install Java (Cassandra dependency)
sudo apt-get update
sudo apt-get install -y openjdk-11-jre-headless

# Add Cassandra repository
echo "deb [https://debian.cassandra.apache.org](https://debian.cassandra.apache.org) 41x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
curl [https://downloads.apache.org/cassandra/KEYS](https://downloads.apache.org/cassandra/KEYS) | sudo apt-key add -

# Install Cassandra
sudo apt-get update
sudo apt-get install -y cassandra

3. Anahtar alanı ve tablo oluşturma

Bir çalışan tablosu örneği kullanacağız ve "zdmbigtable" adlı bir anahtar alanı oluşturacağız.

cd ~/apache-cassandra
bin/cqlsh <your-localhost-ip? 9042  #starts the cql shell

cqlsh'de:

-- Create keyspace (adjust replication for production)
CREATE KEYSPACE zdmbigtable WITH replication = {'class':'SimpleStrategy', 'replication_factor':1};

-- Use the keyspace
USE zdmbigtable;

-- Create the employee table
CREATE TABLE employee (
    name text PRIMARY KEY,
    age bigint,
    code int,
    credited double,
    balance float,
    is_active boolean,
    birth_date timestamp
);

-- Exit cqlsh
EXIT;

SSH oturumunu açık bırakın veya bu sanal makinenin IP adresini (ana makine adı -I) not edin.

4. Bigtable&#39;ı (hedef) ayarlama

Süre 0:01

Bigtable örneği oluşturun. Örnek kimliği olarak zdmbigtable değerini kullanacağız.

gcloud bigtable instances create zdmbigtable \ 
--display-name="ZDM Bigtable Target" \ 
--cluster=bigtable-c1 \ 
--cluster-zone=$ZONE \ 
--cluster-num-nodes=1 # Use 1 node for dev/testing; scale as needed

Bigtable tablosu, Cassandra-Bigtable Proxy kurulum komut dosyası tarafından daha sonra oluşturulur.

5. Cassandra-Bigtable Proxy&#39;yi ayarlama

1. Cassandra-Bigtable Proxy için Compute Engine sanal makinesi oluşturma

gcloud compute instances create bigtable-proxy-vm \ 
--machine-type=e2-medium \
--image-family=ubuntu-2004-lts \
--image-project=ubuntu-os-cloud \
--tags=cassandra-migration \
--boot-disk-size=20GB

bigtable-proxy-vm sanal makinesine SSH ile bağlanın:

gcloud compute ssh bigtable-proxy-vm

Sanal makine içinde:

# Install Git and Go
sudo apt-get update
sudo apt-get install -y git golang-go

# Clone the proxy repository
# Replace with the actual repository URL if different
git clone https://github.com/GoogleCloudPlatform/cloud-bigtable-ecosystem.git
cd cassandra-to-bigtable-proxy/

# Set Go environment variables
export GOPATH=$HOME/go
export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin

2. Proxy'yi yapılandırma

nano config.yaml

Aşağıdaki değişkenleri güncelleyin. Daha gelişmiş yapılandırma için GitHub'da sağlanan bu örneği kullanın.

#!/bin/bash
cassandraToBigtableConfigs
:
  # Global default GCP Project ID
  projectId: <your-project-id>

listeners
:
- name: cluster1
  port: 9042
  bigtable:
    #If you want to use multiple instances then pass the instance names by comma seperated
    #Instance name should not contain any special characters except underscore(_)
    instanceIds: zdmbigtable

    # Number of grpc channels to be used for Bigtable session.
    Session:
      grpcChannels: 4

otel
:
  # Set enabled to true or false for OTEL metrics/traces/logs.
  enabled: False

  # Name of the collector service to be setup as a sidecar
  serviceName: cassandra-to-bigtable-otel-service

  healthcheck:
    # Enable the health check in this proxy application config only if the
    # "health_check" extension is added to the OTEL collector service configuration.
    #
    # Recommendation:
    # Enable the OTEL health check if you need to verify the collector's availability
    # at the start of the application. For development or testing environments, it can
    # be safely disabled to reduce complexity.

    # Enable/Disable Health Check for OTEL, Default 'False'.
    enabled: False
    # Health check endpoint for the OTEL collector service
    endpoint: localhost:13133
  metrics:
    # Collector service endpoint
    endpoint: localhost:4317

  traces:
    # Collector service endpoint
    endpoint: localhost:4317
    #Sampling ratio should be between 0 and 1. Here 0.05 means 5/100 Sampling ratio.
    samplingRatio: 1

loggerConfig
:
  # Specifies the type of output, here it is set to 'file' indicating logs will be written to a file.
  # Value of `outputType` should be `file` for file type or `stdout` for standard output.
  # Default value is `stdout`.
  outputType: stdout
  # Set this only if the outputType is set to `file`.
  # The path and name of the log file where logs will be stored. For example, output.log, Required Key.
  # Default `/var/log/cassandra-to-spanner-proxy/output.log`.
  fileName: output/output.log
  # Set this only if the outputType is set to `file`.
  # The maximum size of the log file in megabytes before it is rotated. For example, 500 for 500 MB.
  maxSize: 10
  # Set this only if the outputType is set to `file`.
  # The maximum number of backup log files to keep. Once this limit is reached, the oldest log file will be deleted.
  maxBackups: 2
  # Set this only if the outputType is set to `file`.
  # The maximum age in days for a log file to be retained. Logs older than this will be deleted. Required Key.
  # Default 3 days
  maxAge: 1

  # Set this only if the outputType is set to `file`.
  # Default value is set to 'False'. Change the value to 'True', if log files are required to be compressed.
  compress: True

Dosyayı kaydedip kapatın (nano'da Ctrl+X, ardından Y, ardından Enter).

3. Cassandra-Bigtable proxy'sini başlatma

Proxy sunucusunu başlatın.

# At the root of the cassandra-to-bigtable-proxy directory
go run proxy.go

Proxy, gelen CQL bağlantıları için 9042 numaralı bağlantı noktasında başlatılır ve dinlemeye başlar. Bu terminal oturumunu çalışır durumda tutun. Bu sanal makinenin IP adresini not edin (ana makine adı -I)

4. CQL ile tablo oluşturma

cqlsh'ü Cassandra-Bigtable Proxy sanal makinesinin IP adresine bağlayın.

cqlsh içinde aşağıdaki komutu çalıştırın

-- Create the employee table
CREATE TABLE zdmbigtable.employee (
    name text PRIMARY KEY,
    age bigint,
    code int,
    credited double,
    balance float,
    is_active boolean,
    birth_date timestamp
);

Google Cloud Console'da, çalışan tablosunun ve meta veri tablosunun Bigtable örneğinizde bulunduğunu doğrulayın.

6. ZDM proxy&#39;sini ayarlama

ZDM Proxy için en az iki makine gerekir: Trafikle ilgilenen bir veya daha fazla proxy düğümü ve Ansible aracılığıyla dağıtım ve orkestrasyon için kullanılan bir "Jumphost".

1. ZDM Proxy için Compute Engine sanal makineleri oluşturma

İki sanal makineye ihtiyacımız var: zdm-proxy-jumphost ve zdm-proxy-node-1

# Jumphost VM 
gcloud compute instances create zdm-jumphost \
--machine-type=e2-medium \
--image-family=ubuntu-2004-lts \
--image-project=ubuntu-os-cloud \
--tags=cassandra-migration \
--boot-disk-size=20GB

# Proxy Node VM 
gcloud compute instances create zdm-proxy-node-1 \
--machine-type=e2-standard-8 \
--image-family=ubuntu-2004-lts \
--image-project=ubuntu-os-cloud \
--tags=cassandra-migration \
--boot-disk-size=20GB

Her iki sanal makinenin IP adreslerini not edin.

2. Jumphost'u hazırlama

zdm-jumphost'a SSH ile bağlanın

gcloud compute ssh zdm-jumphost
# Install Git and Ansible

sudo apt
-get update
sudo apt
-get install -y git ansible

Atlama ana makinesinin içinde

git clone https:\/\/github.com/datastax/zdm-proxy-automation.git 

cd zdm
-proxy-automation/ansible/

Ana yapılandırma dosyasını (vars/zdm_proxy_cluster_config.yml) düzenleyin:

origin_contact_points ve target_contact_points değerlerini sırasıyla Cassandra sanal makinenizin ve Cassandra-Bigtable Proxy sanal makinenizin dahili IP adresleriyle güncelleyin. Kurulumunu yapmadığımız için kimlik doğrulamayı yorum satırı içine alın.

##############################
#### ORIGIN CONFIGURATION ####
##############################
## Origin credentials (leave commented if no auth)
# origin_username: ...
# origin_password: ...

## Set the following two parameters only if Origin is a self-managed, non-Astra cluster
origin_contact_points
: <Your-Cassandra-VM-Internal-IP> # Replace!
origin_port
: 9042

##############################
#### TARGET CONFIGURATION ####
##############################
## Target credentials (leave commented if no auth)
# target_username: ...
# target_password: ...

## Set the following two parameters only if Target is a self-managed, non-Astra cluster
target_contact_points
: <Your-Bigtable-Proxy-VM-Internal-IP> # Replace!
target_port
: 9042

# --- Other ZDM Proxy settings can be configured below ---
# ... (keep defaults for this codelab)

Bu dosyayı kaydedip kapatın.

3. Ansible'yi kullanarak ZDM Proxy'yi dağıtma

Ansible başucu kitabını, atlama ana makinesindeki ansible dizininden çalıştırın:

ansible-playbook deploy_zdm_proxy.yml -i zdm_ansible_inventory

Bu komut, proxy düğümüne (zdm-proxy-node-1) gerekli yazılımı (Docker gibi) yükler, ZDM Proxy Docker görüntüsünü alır ve proxy kapsayıcısını sağladığınız yapılandırmayla başlatır.

4. ZDM Proxy'nin durumunu doğrulama

Atlama ana makinesinden zdm-proxy-node-1 (14001 numaralı bağlantı noktası) üzerinde çalışan ZDM proxy'sinin hazırlık uç noktasını kontrol edin:

# Replace <zdm-proxy-node-1-internal-ip> with the actual internal IP.
curl
-G http://<zdm-proxy-node-1-internal-ip>:14001/health/readiness

Hem Kaynak (Cassandra) hem de Hedef'in (Cassandra-Bigtable Proxy) UYGUN olduğunu belirten şuna benzer bir çıkış görürsünüz:

{
 
"OriginStatus": {
   
"Addr": "<Your-Cassandra-VM-Internal-IP>:9042",
   
"CurrentFailureCount": 0,
   
"FailureCountThreshold": 1,
   
"Status": "UP"
 
},
 
"TargetStatus": {
   
"Addr": "<Your-Bigtable-Proxy-VM-Internal-IP>:9042",
   
"CurrentFailureCount": 0,
   
"FailureCountThreshold": 1,
   
"Status": "UP"
 
},
 
"Status": "UP"
}

7. Uygulamayı yapılandırma ve ikili yazma işlemini başlatma

Süre 0:05

Gerçek bir taşıma işleminin bu aşamasında, uygulamalarınızı ZDM Proxy düğümünün IP adresine (ör. :9042) kullanabilirsiniz.

Uygulama ZDM Proxy'sine bağlandıktan sonra: Okuma işlemleri varsayılan olarak Kaynak'tan (Cassandra) sunulur. Yazma işlemleri hem Kaynak'a (Cassandra) hem de Hedef'e (Cassandra-Bigtable Proxy aracılığıyla Bigtable) gönderilir. Bu sayede, uygulamanız normal şekilde çalışmaya devam ederken yeni verilerin her iki veritabanına da aynı anda yazılmasını sağlayabilirsiniz. Atlama ana makinesinden veya ağdaki başka bir sanal makineden ZDM Proxy'ye yönlendirilen cqlsh'yi kullanarak bağlantıyı test edebilirsiniz:

Cqlsh <zdm-proxy-node-1-ip-address> 9042

Veri eklemeyi deneyin:

INSERT INTO zdmbigtable.employee (name, age, is_active) VALUES ('Alice', 30, true); 
SELECT * FROM employee WHERE name = 'Alice';

Bu veriler hem Cassandra'ya hem de Bigtable'a yazılmalıdır. Bunu Bigtable'de doğrulamak için Google Cloud Console'a gidip örneğinizin Bigtable Sorgu Düzenleyicisi'ni açın. "SELECT * FROM employee" sorgusunu çalıştırdığınızda, en son eklenen veriler görünür olmalıdır.

8. Cassandra Data Migrator&#39;ı kullanarak geçmiş verileri taşıma

Çift yazma özelliği yeni veriler için etkinleştirildiğine göre, Cassandra'daki mevcut geçmiş verileri Bigtable'a kopyalamak için Cassandra Veri Taşıma Aracı'nı (CDM) kullanın.

1. CDM için Compute Engine sanal makinesi oluşturma

Bu sanal makinenin Spark için yeterli belleğe ihtiyacı vardır.

gcloud compute instances create cdm-migrator-vm \
--machine-type=e2-medium \
--image-family=ubuntu-2004-lts \
--image-project=ubuntu-os-cloud \
--tags=cassandra-migration \
--boot-disk-size=40GB

2. Gerekli ön koşulları yükleme (Java 11, Spark)

cdm-migrator-vm sanal makinesine SSH ile bağlanın:

gcloud compute ssh cdm-migrator-vm

Sanal makine içinde:

# Install Java 11 
sudo apt-get update
sudo apt-get install -y openjdk-11-jdk
 
# Verify Java installation
java -version

# Download and Extract Spark (Using version 3.5.3 as requested)
# Check the Apache Spark archives for the correct URL if needed

wget  [https://archive.apache.org/dist/spark/spark-3.5.3/spark-3.5.3-bin-hadoop3-scala2.13.tgz](https://archive.apache.org/dist/spark/spark-3.5.3/spark-3.5.3-bin-hadoop3-scala2.13.tgz) tar -xvzf spark-3.5.3-bin-hadoop3-scala2.13.tgz
 
export SPARK_HOME=$PWD/spark-3.5.3-bin-hadoop3-scala2.13
export PATH=$PATH:$SPARK_HOME/bin

3. Cassandra Veri Taşıyıcı'yı indirme

CDM aracı jar dosyasını indirin. İstediğiniz sürümün doğru URL'si için Cassandra Data Migrator GitHub sürüm sayfasını kontrol edin.

# Example using version 5.2.2 - replace URL if needed
wget https://github.com/datastax/cassandra-data-migrator/releases/download/v5.2.2/cassandra-data-migrator-5.2.2.jar)

4. CDM'yi yapılandırma

cdm.properties adlı bir properties dosyası oluşturun

Nano cdm.properties

Aşağıdaki yapılandırmayı yapıştırın. IP adreslerini değiştirin ve TTL/Writetime özelliklerini devre dışı bırakın. Bu özellikler Bigtable tarafından doğrudan aynı şekilde desteklenmez. Kimlik doğrulamayı yoruma alınmış halde bırakın.

# Origin Cassandra Connection 
spark
.cdm.connect.origin.host <Your-Cassandra-VM-IP-Address> # Replace!
spark
.cdm.connect.origin.port 9042
spark
.cdm.connect.origin.username cassandra # Leave default, or set if auth is enabled #
spark
.cdm.connect.origin.password cassandra # Leave default, or set if auth is enabled #

# Target Bigtable (via Cassandra-Bigtable Proxy)
Connection spark.cdm.connect.target.host <Your-Bigtable-Proxy-VM-IP-Address> # Replace!
spark
.cdm.connect.target.port 9042
spark
.cdm.connect.target.username cassandra # Leave default, or set if auth is enabled #
spark
.cdm.connect.target.password cassandra # Leave default, or set if auth is enabled #

# Disable TTL/Writetime features (Important for Bigtable compatibility via Proxy)
spark
.cdm.feature.origin.ttl.automatic false
spark
.cdm.feature.origin.writetime.automatic false
spark
.cdm.feature.target.ttl.automatic false
spark
.cdm.feature.target.writetime.automatic false

Dosyayı kaydedip kapatın.

5. Taşıma işini çalıştırma

spark-submit kullanarak taşıma işlemini yürütün. Bu komut, Spark'a özellik dosyanızı kullanarak ve taşınacak anahtar alanını ve tabloyu belirterek CDM jar'ını çalıştırmasını söyler. Bellek ayarlarını (–driver-memory, –executor-memory) sanal makine boyutunuza ve veri hacminize göre ayarlayın.

CDM jar dosyasını ve properties dosyasını içeren dizinde olduğunuzdan emin olun. Farklı bir sürüm indirdiyseniz "cassandra-data-migrator-5.2.2.jar" dosyasını değiştirin.

./spark-3.5.3-bin-hadoop3-scala2.13/bin/spark-submit \ --properties-file cdm.properties \ --master "local[*]" \ --driver-memory 4G \ --executor-memory 4G \ --class com.datastax.cdm.job.Migrate \ cassandra-data-migrator-5.2.2.jar &> cdm_migration_$(date +%Y%m%d_%H%M).log

Taşıma işlemi arka planda çalışır ve günlükler cdm_migration_... .log. İlerleme durumu ve hatalar için günlük dosyasını izleyin:

tail -f cdm_migration_*.log

6. Veri taşıma işlemini doğrulama

CDM işi başarıyla tamamlandıktan sonra geçmiş verilerin Bigtable'de bulunduğunu doğrulayın. Cassandra-Bigtable Proxy, CQL okumalarına izin verdiğinden, verileri sorgulamak için ZDM Proxy'ye (taşıma işleminden sonra okumaları hedefe yönlendiren veya bu şekilde yapılandırılabilen) bağlı cqlsh'yi veya doğrudan Cassandra-Bigtable Proxy'yi tekrar kullanabilirsiniz. ZDM Proxy'si üzerinden bağlanma:

cqlsh <zdm-proxy-node-1-ip-address> 9042

cqlsh'de:

SELECT COUNT(*) FROM zdmbigtable.employee; -- Check row count matches origin 
SELECT * FROM employee LIMIT 10; -- Check some sample data

Alternatif olarak, verileri doğrudan Bigtable'de aramak için cbt aracını (CDM sanal makinesine veya Cloud Shell'e yüklüyse) kullanın:

# First, install cbt if needed
# gcloud components update
# gcloud components install cbt

# Then lookup a specific row (replace 'some_employee_name' with an actual primary key)
cbt
-project $PROJECT_ID -instance zdmbigtable lookup employee some_employee_name

9. Geçiş (kavramsal)

Cassandra ile Bigtable arasındaki veri tutarlılığını ayrıntılı bir şekilde doğruladıktan sonra son geçişe geçebilirsiniz.

ZDM proxy'sinde geçiş, proxy'nin kaynak (Cassandra) yerine öncelikle hedeften (Bigtable) okuması için yeniden yapılandırılmasını içerir. Bu işlem genellikle ZDM Proxy'nin yapılandırması aracılığıyla yapılır ve uygulamanızın okuma trafiğini Bigtable'e etkili bir şekilde aktarır.

Bigtable'ın tüm trafiği doğru şekilde yayınladığından emin olduktan sonra şunları yapabilirsiniz:

  • ZDM Proxy'yi yeniden yapılandırarak çift yazma işlemlerini durdurun.
  • Orijinal Cassandra kümesini kullanımdan kaldırın.
  • ZDM Proxy'yi kaldırın ve uygulamanın doğrudan Cassandra-Bigtable Proxy'ye bağlanmasını sağlayın veya Java için yerel Bigtable CQL istemcisini kullanın.

Geçiş için ZDM Proxy'nin yeniden yapılandırılmasına ilişkin ayrıntılar bu temel kod laboratuvarının kapsamı dışındadır ancak Datastax ZDM dokümanlarında ayrıntılı olarak açıklanmıştır.

10. Temizleme

Ödeme alınmaması için bu kod laboratuvarı sırasında oluşturulan kaynakları silin.

1. Compute Engine sanal makinelerini silme

gcloud compute instances delete cassandra-origin-vm zdm-proxy-jumphost zdm-proxy-node-1 bigtable-proxy-vm cdm-migrator-vm --zone=$ZONE --quiet

2. Bigtable örneğini silme

gcloud bigtable instances delete zdmbigtable

3. Güvenlik duvarı kurallarını silme

gcloud compute firewall-rules delete allow-migration-internal

4. Cassandra veritabanını silme (yerel olarak yüklüyse veya kalıcıysa)

Cassandra'yı burada oluşturulan bir Compute Engine sanal makinesinin dışında yüklediyseniz verileri kaldırmak veya Cassandra'yı kaldırmak için uygun adımları uygulayın.

11. Tebrikler!

Apache Cassandra'dan Bigtable'a proxy tabanlı bir taşıma yolu oluşturma işlemini başarıyla tamamladınız.

Aşağıdaki işlemleri yapmayı öğrendiniz:

Cassandra ve Bigtable'ı dağıtın.

  • CQL uyumluluğu için Cassandra-Bigtable Proxy'yi yapılandırın.
  • Çift yazma işlemlerini ve trafiği yönetmek için Datastax ZDM Proxy'yi dağıtın.
  • Geçmiş verileri taşımak için Cassandra Veri Taşıma Aracı'nı kullanın.

Bu yaklaşım, proxy katmanından yararlanarak minimum kesinti süresi ve kod değişikliği olmadan taşıma yapılmasına olanak tanır.

Sonraki adımlar

  • Bigtable belgelerini keşfetme
  • Gelişmiş yapılandırmalar ve geçiş prosedürleri için Datastax ZDM Proxy belgelerine bakın.
  • Daha fazla bilgi için Cassandra-Bigtable Proxy deposunu inceleyin.
  • Gelişmiş kullanım için Cassandra Data Migrator deposunu kontrol edin.
  • Diğer Google Cloud Codelab'leri deneyin