مهاجرت از Cassandra به Bigtable با یک پروکسی Dual-Write

۱. مقدمه

بیگ‌تیبل یک سرویس پایگاه داده NoSQL با عملکرد بالا و کاملاً مدیریت‌شده است که برای حجم کاری تحلیلی و عملیاتی بزرگ طراحی شده است. مهاجرت از پایگاه‌های داده موجود مانند آپاچی کاساندرا به بیگ‌تیبل اغلب نیاز به برنامه‌ریزی دقیق برای به حداقل رساندن زمان از کارافتادگی و تأثیر بر برنامه دارد.

این کدلب، استراتژی مهاجرت از کاساندرا به بیگ‌تیبل را با استفاده از ترکیبی از ابزارهای پروکسی نشان می‌دهد:

  1. پروکسی Cassandra-Bigtable: به کلاینت‌ها و ابزارهای Cassandra (مانند cqlsh یا درایورها) اجازه می‌دهد تا با استفاده از پروتکل زبان پرس‌وجوی Cassandra (CQL) و با ترجمه پرس‌وجوها، با Bigtable تعامل داشته باشند.
  2. پروکسی Datastax Zero Downtime Migration (ZDM): یک پروکسی متن‌باز که بین برنامه شما و سرویس‌های پایگاه داده شما (Cassandra مبدا و Bigtable مقصد از طریق پروکسی Cassandra-Bigtable) قرار می‌گیرد. این پروکسی نوشتن‌های دوگانه را هماهنگ کرده و مسیریابی ترافیک را مدیریت می‌کند و مهاجرت را با حداقل تغییرات برنامه و زمان از کارافتادگی امکان‌پذیر می‌سازد.
  3. Cassandra Data Migrator (CDM): ابزاری متن‌باز که برای انتقال انبوه داده‌های تاریخی از خوشه Cassandra منبع به نمونه Bigtable هدف استفاده می‌شود.

آنچه یاد خواهید گرفت

  • نحوه راه‌اندازی یک کلاستر پایه کاساندرا در Compute Engine.
  • چگونه یک نمونه Bigtable ایجاد کنیم.
  • نحوه استقرار و پیکربندی Cassandra-Bigtable Proxy برای نگاشت طرحواره Cassandra به Bigtable.
  • نحوه‌ی پیاده‌سازی و پیکربندی Datastax ZDM Proxy برای نوشتن دوگانه.
  • نحوه استفاده از ابزار Cassandra Data Migrator برای مهاجرت انبوه داده‌های موجود.
  • گردش کار کلی برای مهاجرت کاساندرا به بیگ‌تیبل مبتنی بر پروکسی.

آنچه نیاز دارید

  • یک پروژه گوگل کلود با قابلیت پرداخت. کاربران جدید واجد شرایط استفاده آزمایشی رایگان هستند.
  • آشنایی اولیه با مفاهیم Google Cloud مانند پروژه‌ها، موتور محاسبات، شبکه‌های VPC و قوانین فایروال. آشنایی اولیه با ابزارهای خط فرمان لینوکس.
  • دسترسی به دستگاهی که gcloud CLI در آن نصب و پیکربندی شده است، یا استفاده از Google Cloud Shell .

برای این آزمایشگاه کد، ما در درجه اول از ماشین‌های مجازی (VM) در Compute Engine در همان شبکه و منطقه VPC برای ساده‌سازی شبکه استفاده خواهیم کرد. استفاده از آدرس‌های IP داخلی توصیه می‌شود.

۲. محیط خود را آماده کنید

۱. یک پروژه گوگل کلود انتخاب یا ایجاد کنید

به کنسول گوگل کلود بروید و یک پروژه موجود را انتخاب کنید یا یک پروژه جدید ایجاد کنید. شناسه پروژه خود را یادداشت کنید.

۲. یک منطقه و ناحیه انتخاب کنید

یک منطقه و ناحیه برای منابع خود انتخاب کنید. ما از us-central1 و us-central1-c به عنوان مثال استفاده خواهیم کرد. برای راحتی، این موارد را به عنوان متغیرهای محیطی تعریف کنید:

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

۳. فعال کردن API های مورد نیاز

مطمئن شوید که Compute Engine API و Bigtable API برای پروژه شما فعال هستند.

gcloud services enable compute.googleapis.com bigtable.googleapis.com bigtableadmin.googleapis.com

۴. پیکربندی قوانین فایروال

ما باید ارتباط بین ماشین‌های مجازی خود را در شبکه پیش‌فرض VPC از طریق چندین پورت برقرار کنیم:

  • پورت CQL کاساندرا/پروکسی‌ها: ۹۰۴۲
  • پورت بررسی سلامت پروکسی ZDM: ۱۴۰۰۱
  • اس‌اس‌اچ: ۲۲

یک قانون فایروال ایجاد کنید تا ترافیک داخلی روی این پورت‌ها مجاز باشد. ما از تگ cassandra-migration برای اعمال آسان این قانون به ماشین‌های مجازی مربوطه استفاده خواهیم کرد.

gcloud compute firewall-rules create allow-migration-internal \
--network=default \
--action=ALLOW \
--rules=tcp:22,tcp:9042,tcp:7000,tcp:14001 \
--source-ranges=10.0.0.0/8 \
--target-tags=cassandra-migration

۳. استقرار خوشه کاساندرا (Origin)

برای این کدلاگ، ما یک کلاستر کاساندرا تک گره‌ای ساده را روی Compute Engine راه‌اندازی خواهیم کرد. در یک سناریوی واقعی، شما به کلاستر موجود خود متصل خواهید شد.

۱. یک ماشین مجازی GCE برای کاساندرا ایجاد کنید

gcloud compute instances create cassandra-origin \
--machine-type=e2-medium \
--image-family=ubuntu-2204-lts \
--image-project=ubuntu-os-cloud \
--tags=cassandra-migration \
--boot-disk-size=20GB \
--scopes=cloud-platform \
--zone="$ZONE"

به نمونه کاساندرای خود از طریق SSH متصل شوید

gcloud compute ssh --zone="$ZONE" "cassandra-origin"

۲. کاساندرا را نصب کنید

# 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 41x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
curl https://downloads.apache.org/cassandra/KEYS | sudo apt-key add -

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

# (Optional) Verify Cassandra is running
sudo systemctl status cassandra

۳. پیکربندی کاساندرا

ما باید کاساندرا را طوری پیکربندی کنیم که در شبکه خصوصی قابل دسترسی باشد.

با اجرای دستور زیر، IP خصوصی cassandra-origin را بدست آورید:

hostname -I

پیکربندی کاساندرا را ویرایش کنید، لازم نیست هیچ خط پیکربندی جدیدی اضافه کنید - فقط مواردی را که از قبل وجود دارند به روز کنید:

sudo vim /etc/cassandra/cassandra.yaml
  1. seed_provider.parameters.seeds را روی "CASSANDRA_ORIGIN_PRIVATE_IP:7000" تنظیم کنید.
  2. rpc_address را روی CASSANDRA_ORIGIN_PRIVATE_IP تنظیم کنید.
  3. listen_address روی CASSANDRA_ORIGIN_PRIVATE_IP تنظیم کنید.

فایل را ذخیره کنید.

در نهایت، کاساندرا را مجدداً راه‌اندازی کنید تا تغییرات پیکربندی بارگذاری شوند:

sudo systemctl restart cassandra

# (Optional) Verify Cassandra is running
sudo systemctl status cassandra

۴. ایجاد یک فضای کلید و جدول

ما از یک مثال جدول کارمند استفاده خواهیم کرد و یک فضای کلید به نام "zdmbigtable" ایجاد خواهیم کرد.

توجه: ممکن است یک دقیقه طول بکشد تا کاساندرا شروع به پذیرش اتصالات کند.

# Start cqlsh
cqlsh $(hostname -I)

داخل 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;

جلسه SSH را باز بگذارید یا آدرس IP این ماشین مجازی (hostname -I) را یادداشت کنید.

۴. راه‌اندازی بیگ‌تیبل (تارگت)

مدت زمان ۰:۰۱

یک نمونه از Bigtable ایجاد کنید. ما از 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

خود جدول Bigtable بعداً توسط اسکریپت راه‌اندازی Cassandra-Bigtable Proxy ایجاد خواهد شد.

۵. پروکسی کاساندرا-بیگ‌تیبل را تنظیم کنید

۱. ایجاد ماشین مجازی موتور محاسباتی برای Cassandra-Bigtable Proxy

gcloud iam service-accounts create bigtable-proxy-sa \
    --description="Service account for Bigtable Proxy access" \
    --display-name="Bigtable Proxy Access SA"

export BIGTABLE_PROXY_SA_EMAIL=$(gcloud iam service-accounts list --filter="displayName='Bigtable Proxy Access SA'" --format="value(email)")

gcloud bigtable instances add-iam-policy-binding zdmbigtable \
  --member="serviceAccount:$BIGTABLE_PROXY_SA_EMAIL" \
  --role="roles/bigtable.admin"

gcloud compute instances create bigtable-proxy-vm \
--machine-type=e2-medium \
--image-family=ubuntu-2204-lts \
--image-project=ubuntu-os-cloud \
--tags=cassandra-migration \
--boot-disk-size=20GB \
--zone=$ZONE \
--scopes=cloud-platform \
--service-account="$BIGTABLE_PROXY_SA_EMAIL"

از طریق SSH به bigtable-proxy-vm متصل شوید:

gcloud compute ssh --zone="$ZONE" "bigtable-proxy-vm"

در اجرای bigtable-proxy-vm:

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

wget https://go.dev/dl/go1.23.6.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.23.6.linux-amd64.tar.gz

echo 'export GOPATH=$HOME/go' >> ~/.profile
echo 'export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin' >> ~/.profile
source ~/.profile

# Clone the proxy repository
git clone https://github.com/GoogleCloudPlatform/cloud-bigtable-ecosystem.git
cd cloud-bigtable-ecosystem/cassandra-bigtable-migration-tools/cassandra-bigtable-proxy/

۲. پروکسی Cassandra-Bigtable را شروع کنید

سرور پروکسی را شروع کنید.

# At the root of the cassandra-to-bigtable-proxy directory
go run proxy.go --project-id="$(gcloud config get-value project)" --instance-id=zdmbigtable --keyspace-id=zdmbigtable --rpc-address=$(hostname -I)

پروکسی شروع به کار می‌کند و روی پورت ۹۰۴۲ منتظر اتصالات ورودی CQL می‌ماند. این جلسه ترمینال را در حال اجرا نگه دارید. آدرس IP این ماشین مجازی (hostname -I) را یادداشت کنید.

۳. ایجاد جدول از طریق CQL

CQLSH را به آدرس IP ماشین مجازی Cassandra-Bigtable Proxy متصل کنید. می‌توانید آدرس IP را با اجرای دستور زیر به صورت محلی پیدا کنید:

gcloud compute instances describe bigtable-proxy-vm --format='get(networkInterfaces[0].networkIP)'

در یک پنجره جداگانه، از طریق SSH به ماشین مجازی cassandra-origin خود متصل شوید و از cqlsh برای bigtable-proxy استفاده کنید. توجه داشته باشید که ما زمان انتظار درخواست را طولانی‌تر از مقدار پیش‌فرض تنظیم کرده‌ایم تا مطمئن شویم Bigtable زمان کافی برای ایجاد جدول اصلی دارد. شما باید عبارت "Connected to cassandra-bigtable-proxy-v0.2.3" یا مشابه آن را ببینید که نشان می‌دهد به پروکسی bigtable متصل شده‌اید و نه به سرور محلی cassandra.

# Replace <your-bigtable-proxy-vm-ip> with the ip from the above command
export BIGTABLE_PROXY_IP=<your-bigtable-proxy-vm-ip>
cqlsh --request-timeout=60 $BIGTABLE_PROXY_IP
-- 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
);

در CQLSH، با اجرای دستور زیر، تأیید کنید که جدول شما ایجاد شده است:

DESC TABLE zdmbigtable.employee;

۶. پروکسی ZDM را تنظیم کنید

ما برای این آزمایش یک نمونه واحد از ZDM Proxy ایجاد خواهیم کرد، اما شما برای مهاجرت در محیط عملیاتی به یک پیکربندی چند گره‌ای نیاز خواهید داشت.

۱. ماشین مجازی پروکسی ZDM را ایجاد کنید

gcloud compute instances create zdm-proxy-vm \
--machine-type=e2-medium \
--image-family=ubuntu-2204-lts \
--image-project=ubuntu-os-cloud \
--tags=cassandra-migration \
--boot-disk-size=20GB \
--scopes=cloud-platform \
--zone=$ZONE

به آدرس‌های IP هر دو ماشین مجازی توجه کنید.

۲. پروکسی ZDM را آماده کنید

gcloud compute ssh --zone="$ZONE" zdm-proxy-vm
export ZDM_VERSION="2.3.4"
wget "https://github.com/datastax/zdm-proxy/releases/download/v$ZDM_VERSION/zdm-proxy-linux-amd64-v$ZDM_VERSION.tgz"
tar -xvzf "zdm-proxy-linux-amd64-v$ZDM_VERSION.tgz"

# replace YOUR_ZONE
gcloud config set compute/zone "YOUR_ZONE"
export ZDM_ORIGIN_CONTACT_POINTS=$(gcloud compute instances describe cassandra-origin --format='get(networkInterfaces[0].networkIP)') 
export ZDM_TARGET_CONTACT_POINTS=$(gcloud compute instances describe bigtable-proxy-vm --format='get(networkInterfaces[0].networkIP)')
export ZDM_ORIGIN_USERNAME=""
export ZDM_ORIGIN_PASSWORD=""
export ZDM_TARGET_USERNAME=""
export ZDM_TARGET_PASSWORD=""
export ZDM_PROXY_LISTEN_ADDRESS=0.0.0.0
export ZDM_PROXY_LISTEN_PORT=9042
./zdm-proxy-v${ZDM_VERSION}

۷. پیکربندی برنامه و شروع نوشتن دوگانه

مدت زمان ۰:۰۵

در این مرحله از یک مهاجرت واقعی، شما باید برنامه(های) خود را طوری پیکربندی مجدد کنید که به جای اتصال مستقیم به کاساندرا، به آدرس IP ماشین مجازی ZDM Proxy (مثلاً:9042) اشاره کند.

به محض اتصال برنامه به پروکسی ZDM: خواندن‌ها به طور پیش‌فرض از مبدا (Cassandra) ارائه می‌شوند. نوشتن‌ها هم به مبدا (Cassandra) و هم به مقصد (Bigtable، از طریق پروکسی Cassandra-Bigtable) ارسال می‌شوند. این امر به برنامه شما امکان می‌دهد تا ضمن اطمینان از نوشتن همزمان داده‌های جدید در هر دو پایگاه داده، به عملکرد عادی خود ادامه دهد. می‌توانید اتصال را با استفاده از cqlsh که به پروکسی ZDM اشاره دارد، آزمایش کنید:

cqlsh $(gcloud compute instances describe zdm-proxy-vm --format='get(networkInterfaces[0].networkIP)')

سعی کنید مقداری داده وارد کنید:

INSERT INTO zdmbigtable.employee (name, age, is_active) VALUES ('Alice', 30, true); 
INSERT INTO zdmbigtable.employee (name, age, is_active) VALUES ('Anna', 45, true); 
INSERT INTO zdmbigtable.employee (name, age, is_active) VALUES ('Albert', 50, false); 
SELECT * FROM zdmbigtable.employee;

این داده‌ها باید هم در کاساندرا و هم در بیگ‌تیبل نوشته شوند. می‌توانید با رفتن به کنسول گوگل کلود و باز کردن ویرایشگر پرس‌وجوی بیگ‌تیبل برای نمونه خود، این موضوع را در بیگ‌تیبل تأیید کنید. یک پرس‌وجوی "SELECT * FROM employee" اجرا کنید و داده‌هایی که اخیراً درج شده‌اند باید قابل مشاهده باشند.

8. انتقال داده های تاریخی با استفاده از Cassandra Data Migrator

اکنون که نوشتن دوگانه برای داده‌های جدید فعال است، از ابزار Cassandra Data Migrator (CDM) برای کپی کردن داده‌های تاریخی موجود از Cassandra به Bigtable استفاده کنید.

۱. ایجاد ماشین مجازی موتور محاسباتی برای CDM

این ماشین مجازی برای Spark به حافظه کافی نیاز دارد.

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

۲. پیش‌نیازها (جاوا ۱۱، اسپارک) را نصب کنید

از طریق SSH به cdm-migrator-vm متصل شوید:

gcloud compute ssh cdm-migrator-vm

داخل ماشین مجازی:

# 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
tar -xvzf spark-3.5.3-bin-hadoop3-scala2.13.tgz

echo 'export SPARK_HOME=$PWD/spark-3.5.3-bin-hadoop3-scala2.13' >> ~/.profile
echo 'export PATH=$PATH:$SPARK_HOME/bin' >> ~/.profile
source ~/.profile

3. Cassandra Data Migrator را دانلود کنید

در مرورگر خود، صفحه بسته‌های CDM را باز کنید و لینک .jar را از پنل Assets کپی کنید. اگر نسخه ۵.۴.۰ در دسترس نیست، نسخه نزدیک بعدی را انتخاب کنید. لینک را در دستور زیر جایگذاری کنید و آن را روی نمونه cdm-migrator-vm خود اجرا کنید، و علامت نقل قول‌های تکی را در اطراف آدرس اینترنتی حفظ کنید.

wget 'JAR_URL_GOES_HERE' -O cassandra-data-migrator.jar

با اسکن کردن فایل jar با ابزار jar ، تأیید کنید که آن را به درستی دانلود کرده‌اید: باید لیست بلندی از فایل‌های ".class" را ببینید.

jar tf cassandra-data-migrator.jar 

۴. مقداری داده اضافه کنید

ما باید با نوشتن مستقیم در cassandra-origin (نه zdm-proxy-vm) مقداری داده برای مهاجرت اضافه کنیم.

INSERT INTO zdmbigtable.employee (name, age, is_active) VALUES ('Alfred', 67, true); 
INSERT INTO zdmbigtable.employee (name, age, is_active) VALUES ('Bobby', 12, false); 
INSERT INTO zdmbigtable.employee (name, age, is_active) VALUES ('Carol', 29, true); 

۵. اجرای عملیات مهاجرت

مهاجرت را با استفاده از spark-submit اجرا کنید. این دستور به Spark می‌گوید که فایل jar مربوط به CDM را با استفاده از فایل ویژگی‌های شما و مشخص کردن فضای کلید و جدول مورد نظر برای مهاجرت، اجرا کند. تنظیمات حافظه (–driver-memory، –executor-memory) را بر اساس اندازه ماشین مجازی و حجم داده‌های خود تنظیم کنید.

مطمئن شوید که در دایرکتوری حاوی فایل jar و ویژگی‌های CDM هستید.

نکته: می‌توانید با اجرای این دستورات از دستگاه محلی خود، IP داخلی ماشین‌های مجازی کاساندرا و پروکسی خود را دریافت کنید:

gcloud compute instances describe cassandra-origin --format='get(networkInterfaces[0].networkIP)'
gcloud compute instances describe bigtable-proxy-vm --format='get(networkInterfaces[0].networkIP)'
export ORIGIN_HOST="<your-cassandra-origin-ip>"
export TARGET_HOST="<your-bigtable-proxy-vm-ip>"
export KEYSPACE_TABLE="zdmbigtable.employee"
spark-submit --verbose --master "local[*]" \
--driver-memory 3G --executor-memory 3G \
--conf spark.cdm.schema.origin.keyspaceTable="$KEYSPACE_TABLE" \
--conf spark.cdm.connect.origin.host="$ORIGIN_HOST" \
--conf spark.cdm.connect.origin.port=9042 \
--conf spark.cdm.connect.target.host="$TARGET_HOST" \
--conf spark.cdm.connect.target.port=9042 \
--conf spark.cdm.feature.origin.ttl.automatic=false \
--conf spark.cdm.feature.origin.writetime.automatic=false \
--conf spark.cdm.feature.target.ttl.automatic=false \
--conf spark.cdm.feature.target.writetime.automatic=false \
--conf spark.cdm.schema.origin.column.ttl.automatic=false \
--conf spark.cdm.schema.ttlwritetime.calc.useCollections=false \
--class com.datastax.cdm.job.Migrate cassandra-data-migrator.jar

۶. تأیید انتقال داده‌ها

پس از اتمام موفقیت‌آمیز کار CDM، تأیید کنید که داده‌های تاریخی در Bigtable وجود دارند.

cqlsh <bigtable-proxy-vm-ip>

داخل cqlsh:

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

۹. برش (مفهومی)

پس از تأیید کامل سازگاری داده‌ها بین کاساندرا و بیگ‌تیبل، می‌توانید به سراغ برش نهایی بروید.

با استفاده از ZDM Proxy، این تغییر شامل پیکربندی مجدد آن برای خواندن از مقصد (Bigtable) به جای مبدا (Cassandra) است. این کار معمولاً از طریق پیکربندی ZDM Proxy انجام می‌شود و عملاً ترافیک خواندن برنامه شما را به Bigtable منتقل می‌کند.

وقتی مطمئن شدید که Bigtable به درستی به همه ترافیک سرویس می‌دهد، در نهایت می‌توانید:

  • با پیکربندی مجدد پروکسی ZDM، نوشتن دوگانه را متوقف کنید.
  • خوشه اصلی کاساندرا را از رده خارج کنید.
  • پروکسی ZDM را حذف کنید و کاری کنید که برنامه مستقیماً به پروکسی Cassandra-Bigtable متصل شود یا از کلاینت بومی Bigtable CQL برای جاوا استفاده کند.

جزئیات پیکربندی مجدد پروکسی ZDM برای برش، فراتر از این آزمایشگاه کد پایه است، اما در مستندات Datastax ZDM به تفصیل شرح داده شده است.

۱۰. تمیز کردن

برای جلوگیری از تحمیل هزینه، منابع ایجاد شده در طول این آزمایش کد را حذف کنید.

۱. ماشین‌های مجازی موتور محاسباتی را حذف کنید

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

۲. حذف نمونه‌ی Bigtable

gcloud bigtable instances delete zdmbigtable

۳. حذف قوانین فایروال

gcloud compute firewall-rules delete allow-migration-internal

۴. پایگاه داده کاساندرا را حذف کنید (در صورت نصب محلی یا در صورت نیاز)

اگر کاساندرا را خارج از یک ماشین مجازی Compute Engine که در اینجا ایجاد شده است نصب کرده‌اید، مراحل مناسب را برای حذف داده‌ها یا حذف نصب کاساندرا دنبال کنید.

۱۱. تبریک می‌گویم!

شما با موفقیت فرآیند تنظیم مسیر مهاجرت مبتنی بر پروکسی از آپاچی کاساندرا به بیگ تیبل را طی کردید!

شما یاد گرفتید که چگونه:

کاساندرا و بیگ تیبل را مستقر کنید.

  • پروکسی Cassandra-Bigtable را برای سازگاری با CQL پیکربندی کنید.
  • برای مدیریت نوشتن و ترافیک دوگانه، از Datastax ZDM Proxy استفاده کنید.
  • برای انتقال داده‌های تاریخی از Cassandra Data Migrator استفاده کنید.

این رویکرد با بهره‌گیری از لایه پروکسی، امکان مهاجرت با حداقل زمان از کارافتادگی و بدون تغییر کد را فراهم می‌کند.

مراحل بعدی

  • مستندات Bigtable را بررسی کنید
  • برای پیکربندی‌های پیشرفته و رویه‌های برش، به مستندات Datastax ZDM Proxy مراجعه کنید.
  • برای جزئیات بیشتر، مخزن Cassandra-Bigtable Proxy را بررسی کنید.
  • برای استفاده پیشرفته، مخزن Cassandra Data Migrator را بررسی کنید.
  • سایر آزمایشگاه‌های کد گوگل کلود را امتحان کنید