Di chuyển từ Cassandra sang Bigtable bằng Proxy ghi kép

1. Giới thiệu

Bigtable là một dịch vụ cơ sở dữ liệu NoSQL có hiệu suất cao, được quản lý toàn diện, được thiết kế cho các tải công việc phân tích và vận hành lớn. Việc di chuyển từ các cơ sở dữ liệu hiện có như Apache Cassandra sang Bigtable thường đòi hỏi phải lập kế hoạch cẩn thận để giảm thiểu thời gian ngừng hoạt động và tác động đến ứng dụng.

Lớp học lập trình này minh hoạ chiến lược di chuyển từ Cassandra sang Bigtable bằng cách kết hợp các công cụ proxy:

  1. Proxy Cassandra-Bigtable: Cho phép các ứng dụng và công cụ Cassandra (như cqlsh hoặc trình điều khiển) tương tác với Bigtable bằng cách dịch truy vấn bằng giao thức Ngôn ngữ truy vấn Cassandra (CQL).
  2. Proxy Di chuyển không có thời gian ngừng hoạt động (ZDM) của Datastax: Một proxy nguồn mở nằm giữa ứng dụng và dịch vụ cơ sở dữ liệu (Cassandra gốc và Bigtable đích thông qua Proxy Cassandra-Bigtable). Công cụ này điều phối hoạt động ghi kép và quản lý việc định tuyến lưu lượng truy cập, cho phép di chuyển với ít thay đổi về ứng dụng và thời gian ngừng hoạt động.
  3. Công cụ di chuyển dữ liệu Cassandra (CDM): Một công cụ nguồn mở dùng để di chuyển hàng loạt dữ liệu trong quá khứ từ cụm Cassandra nguồn sang thực thể Bigtable mục tiêu.

Kiến thức bạn sẽ học được

  • Cách thiết lập cụm Cassandra cơ bản trên Compute Engine.
  • Cách tạo một thực thể Bigtable.
  • Cách triển khai và định cấu hình Proxy Cassandra-Bigtable để liên kết giản đồ Cassandra với Bigtable.
  • Cách triển khai và định cấu hình Proxy ZDM của Datastax để ghi kép.
  • Cách sử dụng công cụ Di chuyển dữ liệu Cassandra để di chuyển hàng loạt dữ liệu hiện có.
  • Quy trình tổng thể để di chuyển Cassandra sang Bigtable dựa trên proxy.

Bạn cần có

  • Một dự án Google Cloud đã bật tính năng thanh toán. Người dùng mới sẽ đủ điều kiện dùng thử miễn phí.
  • Quen thuộc cơ bản với các khái niệm trên Google Cloud như dự án, Compute Engine, mạng VPC và quy tắc tường lửa. Hiểu biết cơ bản về các công cụ dòng lệnh Linux.
  • Truy cập vào một máy đã cài đặt và định cấu hình CLI gcloud hoặc sử dụng Google Cloud Shell.

Trong lớp học lập trình này, chúng ta chủ yếu sẽ sử dụng máy ảo (VM) trên Compute Engine trong cùng một mạng VPC và khu vực để đơn giản hoá việc kết nối mạng. Bạn nên sử dụng địa chỉ IP nội bộ.

2. Thiết lập môi trường

1. Chọn hoặc tạo một dự án trên Google Cloud

Chuyển đến Google Cloud Console rồi chọn một dự án hiện có hoặc tạo một dự án mới. Ghi lại Mã dự án.

2. Bật các API bắt buộc

Đảm bảo bạn đã bật API Compute Engine và API Bigtable cho dự án của mình.

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

Thay thế bằng mã dự án thực tế của bạn.

3. Chọn khu vực và vùng

Chọn một khu vực và vùng cho tài nguyên của bạn. Chúng ta sẽ sử dụng us-central1 và us-central1-c làm ví dụ. Xác định các biến này dưới dạng biến môi trường để thuận tiệ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. Định cấu hình quy tắc tường lửa

Chúng ta cần cho phép giao tiếp giữa các máy ảo trong mạng VPC mặc định trên một số cổng:

  • Cổng CQL của Cassandra/Proxy: 9042
  • Cổng kiểm tra tình trạng proxy ZDM: 14001
  • SSH: 22

Tạo quy tắc tường lửa để cho phép lưu lượng truy cập nội bộ trên các cổng này. Chúng ta sẽ sử dụng thẻ cassandra-migration để dễ dàng áp dụng quy tắc này cho các máy ảo có liên quan.

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. Triển khai cụm Cassandra (Nguồn gốc)

Trong lớp học lập trình này, chúng ta sẽ thiết lập một cụm Cassandra đơn giản gồm một nút trên Compute Engine. Trong trường hợp thực tế, bạn sẽ kết nối với cụm hiện có.

1. Tạo máy ảo GCE cho 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. Cài đặt 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. Tạo không gian khoá và bảng

Chúng ta sẽ sử dụng ví dụ về bảng nhân viên và tạo một không gian khoá có tên là "zdmbigtable".

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

Bên trong 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;

Để phiên SSH mở hoặc ghi lại địa chỉ IP của máy ảo này (tên máy chủ -I).

4. Thiết lập Bigtable (Mục tiêu)

Thời lượng 0:01

Tạo một thực thể Bigtable. Chúng ta sẽ sử dụng zdmbigtable làm mã nhận dạng thực thể.

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

Bản thân bảng Bigtable sẽ được tạo sau đó bằng tập lệnh thiết lập Proxy Cassandra-Bigtable.

5. Thiết lập Proxy Cassandra-Bigtable

1. Tạo máy ảo Compute Engine cho 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

SSH vào bigtable-proxy-vm:

gcloud compute ssh bigtable-proxy-vm

Bên trong máy ảo:

# 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. Định cấu hình proxy

nano config.yaml

Cập nhật các biến sau. Để biết cấu hình nâng cao hơn, hãy sử dụng ví dụ này được cung cấp trên 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

Lưu và đóng tệp (ctrl+X, rồi Y, rồi Enter trong nano).

3. Bắt đầu Proxy Cassandra-Bigtable

Khởi động máy chủ proxy.

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

Proxy sẽ khởi động và nghe trên cổng 9042 để nhận các kết nối CQL đến. Tiếp tục chạy phiên dòng lệnh này. Ghi lại địa chỉ IP của máy ảo này (tên máy chủ -I)

4. Tạo bảng thông qua CQL

Kết nối cqlsh với địa chỉ IP của máy ảo Proxy Cassandra-Bigtable.

Trong cqlsh, hãy chạy lệnh sau

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

Xác minh trong Google Cloud Console rằng bảng nhân viên và bảng siêu dữ liệu tồn tại trong thực thể Bigtable của bạn.

6. Thiết lập Proxy ZDM

Proxy ZDM yêu cầu ít nhất hai máy: một hoặc nhiều nút proxy xử lý lưu lượng truy cập và một "Jumphost" dùng để triển khai và điều phối thông qua Ansible.

1. Tạo máy ảo Compute Engine cho Proxy ZDM

Chúng ta cần hai máy ảo: zdm-proxy-jumphost và 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

Ghi lại địa chỉ IP của cả hai máy ảo.

2. Chuẩn bị máy chủ chuyển tiếp

SSH vào zdm-jumphost

gcloud compute ssh zdm-jumphost
# Install Git and Ansible

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

Bên trong máy chủ chuyển tiếp

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

cd zdm-proxy-automation/ansible/

Chỉnh sửa tệp cấu hình chính vars/zdm_proxy_cluster_config.yml:

Cập nhật origin_contact_points và target_contact_points bằng địa chỉ IP nội bộ của máy ảo Cassandra và máy ảo Proxy Cassandra-Bigtable tương ứng. Để lại phần xác thực được chú thích vì chúng ta chưa thiết lập.

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

Lưu và đóng tệp này.

3. Triển khai Proxy ZDM bằng Ansible

Chạy cẩm nang Ansible từ thư mục ansible trên máy chủ chuyển tiếp:

ansible-playbook deploy_zdm_proxy.yml -i zdm_ansible_inventory

Lệnh này sẽ cài đặt phần mềm cần thiết (chẳng hạn như Docker) trên nút proxy (zdm-proxy-node-1), lấy hình ảnh Docker Proxy ZDM và khởi động vùng chứa proxy bằng cấu hình mà bạn đã cung cấp.

4. Xác minh tình trạng của Proxy ZDM

Kiểm tra điểm cuối sẵn sàng của proxy ZDM chạy trên zdm-proxy-node-1 (cổng 14001) từ máy chủ chuyển tiếp:

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

Bạn sẽ thấy kết quả tương tự như sau, cho biết cả Nguồn gốc (Cassandra) và Mục tiêu (Proxy Cassandra-Bigtable) đều đang hoạt động:

{
  "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. Định cấu hình ứng dụng và bắt đầu ghi kép

Thời lượng 0:05

Ở giai đoạn này trong quá trình di chuyển thực tế, bạn sẽ định cấu hình lại(các) ứng dụng của mình để trỏ đến địa chỉ IP của nút Proxy ZDM (ví dụ: :9042) thay vì kết nối trực tiếp với Cassandra.

Sau khi ứng dụng kết nối với Proxy ZDM: Theo mặc định, các lượt đọc sẽ được phân phát từ Nguồn gốc (Cassandra). Hoạt động ghi được gửi đến cả Nguồn gốc (Cassandra) và Mục tiêu (Bigtable, thông qua Proxy Cassandra-Bigtable). Điều này cho phép ứng dụng của bạn tiếp tục hoạt động bình thường trong khi đảm bảo dữ liệu mới được ghi đồng thời vào cả hai cơ sở dữ liệu. Bạn có thể kiểm tra kết nối bằng cách sử dụng cqlsh trỏ đến Proxy ZDM từ máy chủ chuyển tiếp hoặc một máy ảo khác trong mạng:

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

Hãy thử chèn một số dữ liệu:

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

Dữ liệu này phải được ghi vào cả Cassandra và Bigtable. Bạn có thể xác nhận điều này trong Bigtable bằng cách truy cập vào Google Cloud Console và mở Trình chỉnh sửa truy vấn Bigtable cho phiên bản của bạn. Chạy truy vấn "SELECT * FROM employee" và bạn sẽ thấy dữ liệu được chèn gần đây.

8. Di chuyển dữ liệu trong quá khứ bằng Trình di chuyển dữ liệu Cassandra

Giờ đây, khi chế độ ghi kép đang hoạt động cho dữ liệu mới, hãy sử dụng công cụ Di chuyển dữ liệu Cassandra (CDM) để sao chép dữ liệu trong quá khứ hiện có từ Cassandra sang Bigtable.

1. Tạo máy ảo Compute Engine cho CDM

Máy ảo này cần có đủ bộ nhớ cho Spark.

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. Cài đặt các điều kiện tiên quyết (Java 11, Spark)

SSH vào cdm-migrator-vm:

gcloud compute ssh cdm-migrator-vm

Bên trong máy ảo:

# 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. Tải Trình di chuyển dữ liệu Cassandra xuống

Tải tệp jar công cụ CDM xuống. Kiểm tra trang Bản phát hành GitHub của Trình di chuyển dữ liệu Cassandra để biết URL chính xác của phiên bản mong muốn.

# 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. Định cấu hình CDM

Tạo một tệp thuộc tính có tên cdm.properties

Nano cdm.properties

Dán cấu hình sau, thay thế địa chỉ IP và tắt các tính năng TTL/Writetime vì Bigtable không trực tiếp hỗ trợ các tính năng này theo cách tương tự. Để lại phần xác thực được chú thích.

# 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

Lưu và đóng tệp.

5. Chạy công việc di chuyển

Thực thi quá trình di chuyển bằng spark-submit. Lệnh này yêu cầu Spark chạy tệp jar CDM, sử dụng tệp thuộc tính và chỉ định không gian khoá và bảng cần di chuyển. Điều chỉnh chế độ cài đặt bộ nhớ (–driver-memory, –executor-memory) dựa trên kích thước máy ảo và dung lượng dữ liệu.

Đảm bảo bạn đang ở thư mục chứa tệp jar và thuộc tính CDM. Thay thế "cassandra-data-migrator-5.2.2.jar" nếu bạn đã tải một phiên bản khác xuống.

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

Quá trình di chuyển sẽ chạy ở chế độ nền và nhật ký sẽ được ghi vào cdm_migration_... .log. Theo dõi tệp nhật ký để biết tiến trình và mọi lỗi:

tail -f cdm_migration_*.log

6. Xác minh quá trình di chuyển dữ liệu

Sau khi công việc CDM hoàn tất, hãy xác minh rằng dữ liệu trong quá khứ tồn tại trong Bigtable. Vì Proxy Cassandra-Bigtable cho phép đọc CQL, nên bạn có thể sử dụng lại cqlsh được kết nối với Proxy ZDM (đường dẫn đọc đến Mục tiêu sau khi di chuyển hoặc có thể được định cấu hình) hoặc trực tiếp đến Proxy Cassandra-Bigtable để truy vấn dữ liệu. Kết nối qua Proxy ZDM:

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

Bên trong cqlsh:

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

Ngoài ra, hãy sử dụng công cụ cbt (nếu được cài đặt trên máy ảo CDM hoặc Cloud Shell) để tra cứu dữ liệu trực tiếp trong 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. Chuyển đổi (khái niệm)

Sau khi xác minh kỹ tính nhất quán của dữ liệu giữa Cassandra và Bigtable, bạn có thể tiến hành chuyển đổi hoàn toàn.

Với Proxy ZDM, quá trình chuyển đổi sẽ liên quan đến việc định cấu hình lại proxy để chủ yếu đọc từ mục tiêu (Bigtable) thay vì Nguồn gốc (Cassandra). Việc này thường được thực hiện thông qua cấu hình của Proxy ZDM, giúp chuyển lưu lượng truy cập đọc của ứng dụng sang Bigtable một cách hiệu quả.

Khi đã chắc chắn rằng Bigtable đang phân phát chính xác tất cả lưu lượng truy cập, cuối cùng bạn có thể:

  • Dừng ghi kép bằng cách định cấu hình lại Proxy ZDM.
  • Ngưng sử dụng cụm Cassandra ban đầu.
  • Xoá Proxy ZDM và yêu cầu ứng dụng kết nối trực tiếp với Proxy Cassandra-Bigtable hoặc sử dụng Ứng dụng Bigtable CQL gốc cho Java.

Thông tin cụ thể về việc định cấu hình lại Proxy ZDM để chuyển đổi nằm ngoài phạm vi của lớp học lập trình cơ bản này, nhưng được trình bày chi tiết trong tài liệu về ZDM của Datastax.

10. Dọn dẹp

Để tránh bị tính phí, hãy xoá các tài nguyên đã tạo trong lớp học lập trình này.

1. Xoá máy ảo 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. Xoá thực thể Bigtable

gcloud bigtable instances delete zdmbigtable

3. Xoá quy tắc tường lửa

gcloud compute firewall-rules delete allow-migration-internal

4. Xoá cơ sở dữ liệu Cassandra (nếu được cài đặt cục bộ hoặc lưu trữ)

Nếu bạn đã cài đặt Cassandra bên ngoài máy ảo Compute Engine được tạo tại đây, hãy làm theo các bước thích hợp để xoá dữ liệu hoặc gỡ cài đặt Cassandra.

11. Xin chúc mừng!

Bạn đã hoàn tất quy trình thiết lập đường dẫn di chuyển dựa trên proxy từ Apache Cassandra sang Bigtable!

Bạn đã tìm hiểu cách:

Triển khai Cassandra và Bigtable.

  • Định cấu hình Proxy Cassandra-Bigtable để tương thích với CQL.
  • Triển khai Proxy ZDM của Datastax để quản lý lưu lượng truy cập và hoạt động ghi kép.
  • Sử dụng Trình di chuyển dữ liệu Cassandra để di chuyển dữ liệu trong quá khứ.

Phương pháp này cho phép di chuyển với thời gian ngừng hoạt động tối thiểu và không cần thay đổi mã bằng cách tận dụng lớp proxy.

Các bước tiếp theo

  • Khám phá tài liệu về Bigtable
  • Tham khảo tài liệu về Proxy ZDM của Datastax để biết các cấu hình nâng cao và quy trình chuyển đổi.
  • Xem xét kho lưu trữ Proxy Cassandra-Bigtable để biết thêm thông tin chi tiết.
  • Hãy kiểm tra kho lưu trữ Trình di chuyển dữ liệu Cassandra để biết cách sử dụng nâng cao.
  • Thử các lớp học lập trình khác của Google Cloud