Migracja z Cassandra do Bigtable z wykorzystaniem proxy z podwójnym zapisem

Migracja z Cassandra do Bigtable z wykorzystaniem proxy z podwójnym zapisem

Informacje o tym ćwiczeniu (w Codelabs)

subjectOstatnia aktualizacja: kwi 15, 2025
account_circleAutorzy: Louis Cheynel

1. Wprowadzenie

Bigtable to w pełni zarządzana, wydajna usługa baz danych NoSQL zaprojektowana z myślą o dużych zbiorach zadań analitycznych i operacyjnych. Migracja z istniejących baz danych, takich jak Apache Cassandra, do Bigtable często wymaga starannego zaplanowania, aby zminimalizować czas przestoju i wpływ na aplikację.

To ćwiczenie z programowania pokazuje strategię migracji z Cassandra do Bigtable przy użyciu kombinacji narzędzi proxy:

  1. Pośrednik Cassandra-Bigtable: umożliwia klientom i narzędziom Cassandra (takim jak cqlsh lub sterowniki) interakcję z Bigtable za pomocą protokołu języka zapytań Cassandra (CQL) poprzez tłumaczenie zapytań.
  2. Serwer proxy usługi migracji bez przestojów (ZDM) firmy Datastax: serwer proxy typu open source, który znajduje się między aplikacją a usługami bazy danych (źródło Cassandra i docelowy Bigtable za pomocą serwera proxy Cassandra-Bigtable). Zarządza on podwójnym zapisem i przekierowywaniem ruchu, umożliwiając migrację z minimalnymi zmianami w aplikacji i minimalnym czasem przestoju.
  3. Cassandra Data Migrator (CDM): narzędzie typu open source służące do zbiorczej migracji historycznych danych z źródłowego klastra Cassandra do docelowej instancji Bigtable.

Czego się nauczysz

  • Jak skonfigurować podstawowy klaster Cassandra w Compute Engine.
  • Jak utworzyć instancję Bigtable.
  • Jak wdrożyć i skonfigurować serwer proxy Cassandra-Bigtable, aby zmapować schemat Cassandra na Bigtable.
  • Jak wdrożyć i skonfigurować serwer proxy Datastax ZDM do podwójnego zapisu.
  • Jak za pomocą narzędzia Cassandra Data Migrator przenieść istniejące dane zbiorczo.
  • Ogólny proces migracji z Cassandra do Bigtable z wykorzystaniem serwera proxy

Czego potrzebujesz

  • projekt Google Cloud z włączonymi płatnościami; Nowi użytkownicy mogą skorzystać z bezpłatnego okresu próbnego.
  • podstawowa znajomość pojęć związanych z Google Cloud, takich jak projekty, Compute Engine, sieci VPC i reguły zapory sieciowej; podstawowa znajomość narzędzi wiersza poleceń w systemie Linux;
  • Dostęp do maszyny z zainstalowanym i skonfigurowanym interfejsem wiersza poleceń gcloud lub skorzystaj z Google Cloud Shell.

W tym laboratorium kodu będziemy głównie używać maszyn wirtualnych w Compute Engine w tej samej sieci VPC i regionie, aby uprościć konfigurację sieci. Zalecamy używanie wewnętrznych adresów IP.

2. Konfigurowanie środowiska

1. Wybierz lub utwórz projekt Google Cloud

Otwórz konsolę Google Cloud i wybierz istniejący projekt lub utwórz nowy. Zapisz identyfikator projektu.

2. Włącz wymagane interfejsy API

Sprawdź, czy w projekcie są włączone interfejsy Compute Engine API i Bigtable API.

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

Zastąp identyfikatorem projektu.

3. Wybieranie regionu i strefy

Wybierz region i strefę dla zasobów. Jako przykłady użyjemy regionów us-central1 i us-central1-c. Dla wygody zdefiniuj je jako zmienne środowiskowe:

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. Konfigurowanie reguł zapory sieciowej

Musimy zezwolić na komunikację między naszymi maszynami wirtualnymi w sieci VPC domyślnej na kilku portach:

  • Cassandra/Proxies CQL Port: 9042
  • Port ZDM Proxy Health Check: 14001
  • SSH: 22

Utwórz regułę zapory sieciowej, która zezwala na ruch wewnętrzny na tych portach. Aby łatwo zastosować tę regułę do odpowiednich maszyn wirtualnych, użyjemy tagu cassandra-migration.

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. Wdrażanie klastra Cassandra (Origin)

W ramach tego ćwiczenia z programowania skonfigurujemy prosty klaster Cassandra z jednym węzłem w Compute Engine. W rzeczywistych warunkach połączysz się z dotychczasowym klastrem.

1. Tworzenie maszyny wirtualnej GCE dla Cassandra

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. Instalowanie systemu Cassandra

# 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. Tworzenie przestrzeni kluczy i tabeli

Użyjemy przykładowej tabeli pracowników i utworzymy przestrzeń kluczy o nazwie „zdmbigtable”.

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

W cqlsh:

-- 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;

Pozostaw sesję SSH otwartą lub zapisz adres IP tej maszyny wirtualnej (pole „hostname” –I).

4. Konfigurowanie Bigtable (Target)

Czas trwania: 0:01

Utwórz instancję Bigtable. Jako identyfikator instancji użyjemy zdmbigtable.

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

Sama tabela Bigtable zostanie utworzona później przez skrypt konfiguracji proxy Cassandra-Bigtable.

5. Konfigurowanie proxy Cassandra-Bigtable

1. Tworzenie maszyny wirtualnej Compute Engine dla serwera proxy Cassandra-Bigtable

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

Połącz się przez SSH z maszyną wirtualną bigtable-proxy:

gcloud compute ssh bigtable-proxy-vm

Wewnątrz maszyny wirtualnej:

# 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. Konfigurowanie serwera proxy

nano config.yaml

Zaktualizuj te zmienne. Aby uzyskać bardziej zaawansowaną konfigurację, skorzystaj z tego przykładu w GitHub.

#!/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

Zapisz i zamknij plik (Ctrl+X, a potem Y, a następnie Enter w nano).

3. Uruchamianie serwera proxy Cassandra-Bigtable

Uruchom serwer proxy.

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

Serwer proxy uruchomi się i będzie nasłuchiwać na porcie 9042, aby odbierać przychodzące połączenia CQL. Utrzymać tę sesję terminala. Zapisz adres IP tej maszyny wirtualnej (nazwa hosta -I)

4. Tworzenie tabeli za pomocą CQL

Połącz się cqlsh z adresem IP maszyny wirtualnej proxy Cassandra-Bigtable.

cqlsh uruchom to polecenie

-- 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
);

W konsoli Google Cloud sprawdź, czy w instancji Bigtable istnieją tabela pracowników oraz tabela metadanych.

6. Konfigurowanie serwera proxy ZDM

ZDM Proxy wymaga co najmniej 2 maszyn: co najmniej 1 węzła proxy, który obsługuje ruch, oraz „hosta pośredniczącego” używanego do wdrażania i sterowania za pomocą Ansible.

1. Tworzenie maszyn wirtualnych Compute Engine dla serwera proxy ZDM

Potrzebujemy 2 maszyn wirtualnych: zdm-proxy-jumphost i 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

Zapisz adresy IP obu maszyn wirtualnych.

2. Przygotuj hosta przesiadkowego

Nawiązywanie połączenia SSH z hostem zdm-jumphost

gcloud compute ssh zdm-jumphost
# Install Git and Ansible

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

Wnętrze jumphosta

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

cd zdm
-proxy-automation/ansible/

Zmodyfikuj główny plik konfiguracji vars/zdm_proxy_cluster_config.yml:

Zaktualizuj parametry origin_contact_points i target_contact_points, podając wewnętrzne adresy IP maszyny wirtualnej Cassandra i maszyny wirtualnej Cassandra-Bigtable Proxy. Nie usuwaj komentarza z uwierzytelnianiem, ponieważ nie skonfigurowaliśmy go.

##############################
#### 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)

Zapisz i zamknij ten plik.

3. Wdrażanie serwera proxy ZDM za pomocą Ansible

Uruchom poradnik Ansible z katalogu ansible na hoście pośredniczącym:

ansible-playbook deploy_zdm_proxy.yml -i zdm_ansible_inventory

To polecenie zainstaluje niezbędne oprogramowanie (np. Dockera) na węźle proxy (zdm-proxy-node-1), pobierze obraz ZDM Proxy Dockera i uruchomi kontener proxy z podaną konfiguracją.

4. Sprawdzanie stanu serwera proxy ZDM

Sprawdź punkt końcowy gotowości serwera proxy ZDM działającego na węźle zdm-proxy-node-1 (port 14001) z hosta przejściowego:

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

Powinny pojawić się dane wyjściowe podobne do tych, które wskazują, że zarówno Origin (Cassandra), jak i Target (Cassandra-Bigtable Proxy) są WŁĄCZONE:

{
 
"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. Konfigurowanie aplikacji i rozpoczynanie zapisów podwójnych

Czas trwania: 0:05

Na tym etapie rzeczywistej migracji należy zmienić konfigurację aplikacji, aby wskazywały one adres IP węzła proxy ZDM (np. :9042) zamiast łączyć się bezpośrednio z Cassandra.

Gdy aplikacja połączy się z serwerem proxy ZDM: odczyty są domyślnie pobierane z źródła (Cassandra). Zapisy są wysyłane zarówno do źródła (Cassandra), jak i do miejsca docelowego (Bigtable przez proxy Cassandra-Bigtable). Dzięki temu aplikacja może normalnie działać, a nowe dane są zapisywane jednocześnie w obu bazach danych. Możesz przetestować połączenie za pomocą polecenia cqlsh wskazującego na serwer proxy ZDM z hosta pośredniczącego lub innej maszyny wirtualnej w sieci:

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

Spróbuj wstawić dane:

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

Te dane powinny być zapisywane zarówno w Cassandra, jak i w Bigtable. Możesz to sprawdzić w Bigtable, otwierając konsolę Google Cloud i edytor zapytań Bigtable dla swojej instancji. Uruchom zapytanie „SELECT * FROM employee”, a niedawno wstawione dane powinny być widoczne.

8. Migracja danych historycznych za pomocą narzędzia Cassandra Data Migrator

Teraz, gdy podwójne zapisy są aktywne w przypadku nowych danych, użyj narzędzia Cassandra Data Migrator (CDM) do skopiowania dotychczasowych danych historycznych z Cassandra do Bigtable.

1. Tworzenie maszyny wirtualnej Compute Engine na potrzeby CDM

Ta maszyna wirtualna potrzebuje wystarczającej ilości pamięci dla Sparka.

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. Instalowanie wymagań wstępnych (Java 11, Spark)

Połącz się przez SSH z maszyną wirtualną cdm-migrator-vm:

gcloud compute ssh cdm-migrator-vm

Wewnątrz maszyny wirtualnej:

# 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. Pobieranie narzędzia Cassandra Data Migrator

Pobierz plik jar narzędzia CDM. Sprawdź na stronie wersji w GitHub narzędzia Cassandra Data Migrator odpowiedni adres URL wybranej wersji.

# 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. Konfigurowanie CDM

Utwórz plik properties o nazwie cdm.properties.

Nano cdm.properties

Wklej tę konfigurację, zastępując adresy IP i wyłączając funkcje TTL/Writetime, ponieważ nie są one bezpośrednio obsługiwane przez Bigtable. Zablokuj uwierzytelnianie.

# 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

Zapisz i zamknij plik.

5. Uruchamianie zadania migracji

Przeprowadź migrację za pomocą polecenia spark-submit. To polecenie informuje Sparka, aby uruchomił plik jar CDM, korzystając z pliku właściwości i określając przestrzeń kluczy oraz tabelę, którą ma migrować. Dostosuj ustawienia pamięci (–driver-memory, –executor-memory) na podstawie rozmiaru maszyny wirtualnej i objętości danych.

Upewnij się, że jesteś w katalogu zawierającym plik jar i plik właściwości CDM. Jeśli pobrałeś inną wersję, zastąp „cassandra-data-migrator-5.2.2.jar”.

./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

Migracja będzie przebiegać w tle, a dzienniki będą zapisywane w folderze cdm_migration_... .log. Monitoruj plik dziennika pod kątem postępu i błędów:

tail -f cdm_migration_*.log

6. Weryfikowanie migracji danych

Po zakończeniu zadania CDM sprawdź, czy dane historyczne znajdują się w Bigtable. Ponieważ serwer proxy Cassandra-Bigtable umożliwia odczytywanie zapytań CQL, możesz ponownie używać narzędzia cqlsh połączonego z serwerem proxy ZDM (który kieruje odczyty do docelowego serwera po migracji lub może zostać skonfigurowany w ten sposób) lub bezpośrednio z serwerem proxy Cassandra-Bigtable do wysyłania zapytań do danych. Łączenie przez serwer proxy ZDM:

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

W cqlsh:

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

Możesz też użyć narzędzia cbt (jeśli jest zainstalowane w maszynie wirtualnej CDM lub w Cloud Shell), aby przeglądać dane bezpośrednio w Bigtable:

# 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. Przejście (koncepcja)

Po dokładnym sprawdzeniu spójności danych między Cassandra i Bigtable możesz przejść do ostatecznego przejścia.

W przypadku serwera proxy ZDM przejście na nową wersję wymaga zmiany konfiguracji, tak aby odczyt odbywał się głównie z punktu docelowego (Bigtable), a nie z punktu źródłowego (Cassandra). Zwykle odbywa się to za pomocą konfiguracji ZDM Proxy, co skutecznie przekierowuje ruch odczytu aplikacji do Bigtable.

Gdy upewnisz się, że Bigtable poprawnie wyświetla cały ruch, możesz:

  • Zatrzymaj podwójne zapisy, zmieniając konfigurację serwera ZDM Proxy.
  • wycofać pierwotny klaster Cassandra.
  • Usuń serwer proxy ZDM i połącz aplikację bezpośrednio z serwerem proxy Cassandra-Bigtable lub użyj natywnego klienta CQL Bigtable dla Javy.

Szczegóły dotyczące rekonfiguracji serwera proxy ZDM na potrzeby przełączenia wykraczają poza zakres tego podstawowego laboratorium kodu, ale są szczegółowo opisane w dokumentacji usługi Datastax ZDM.

10. Czyszczenie danych

Aby uniknąć opłat, usuń zasoby utworzone w ramach tego ćwiczenia z programowania.

1. Usuwanie maszyn wirtualnych Compute Engine

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

2. Usuwanie instancji Bigtable

gcloud bigtable instances delete zdmbigtable

3. Usuwanie reguł zapory sieciowej

gcloud compute firewall-rules delete allow-migration-internal

4. usunąć bazę danych Cassandra (jeśli jest zainstalowana lokalnie lub utrwalona);

Jeśli zainstalowałeś/zainstalowałaś Cassandra poza maszyną wirtualną Compute Engine utworzoną tutaj, wykonaj odpowiednie czynności, aby usunąć dane lub odinstalować Cassandra.

11. Gratulacje!

Udało Ci się skonfigurować ścieżkę migracji z Apache Cassandra do Bigtable opartą na serwerze proxy.

Poznasz te funkcje:

Wdróż Cassandra i Bigtable.

  • Skonfiguruj serwer proxy Cassandra-Bigtable, aby zapewnić zgodność z CQL.
  • Wdróż serwer proxy ZDM firmy Datastax, aby zarządzać podwójnym zapisem i ruchem.
  • Do przenoszenia danych historycznych użyj narzędzia Cassandra Data Migrator.

Dzięki temu podejściu możesz przeprowadzać migracje z minimalnym czasem przestoju i bez wprowadzania zmian w kodzie, korzystając z warstwy proxy.

Dalsze kroki

  • Dokumentacja Bigtable
  • Więcej informacji o zaawansowanych konfiguracjach i procedurach przełączania znajdziesz w dokumentacji serwera proxy ZDM firmy Datastax.
  • Więcej informacji znajdziesz w repozytorium Cassandra-Bigtable Proxy.
  • Aby dowiedzieć się więcej o zaawansowanym korzystaniu z narzędzia, zapoznaj się z repozytorium Cassandra Data Migrator.
  • Wypróbuj inne ćwiczenia z programowania Google Cloud