1. مقدمة
Bigtable هي خدمة قاعدة بيانات NoSQL مُدارة بالكامل وعالية الأداء ومصمّمة لمهام العمل التحليلية والتشغيلية الكبيرة. تتطلّب عملية نقل البيانات من قواعد البيانات الحالية، مثل Apache Cassandra، إلى Bigtable تخطيطًا دقيقًا في كثير من الأحيان للحدّ من وقت التوقف عن العمل وتأثير التطبيق.
يوضّح هذا الدرس التطبيقي حول الترميز استراتيجية نقل البيانات من Cassandra إلى Bigtable باستخدام مجموعة من أدوات الخادم الوكيل:
- خادم وكيل Cassandra-Bigtable: يسمح لعملاء وأدوات Cassandra (مثل
cqlshأو برامج التشغيل) بالتفاعل مع Bigtable باستخدام بروتوكول Cassandra Query Language (CQL) من خلال ترجمة الاستعلامات. - خادم وكيل لنقل البيانات بدون توقّف عن العمل من Datastax (ZDM): هو خادم وكيل مفتوح المصدر يقع بين تطبيقك وخدمات قاعدة البيانات (Cassandra الأصلية وBigtable المستهدَفة من خلال خادم وكيل Cassandra-Bigtable). تنسّق هذه الخدمة عمليات الكتابة المزدوجة وتدير توجيه الزيارات، ما يتيح نقل البيانات بأقل قدر من التغييرات في التطبيق وفترة التوقف.
- أداة نقل بيانات Cassandra (CDM): هي أداة مفتوحة المصدر تُستخدَم لنقل البيانات السابقة بشكل مجمّع من مجموعة Cassandra المصدر إلى مثيل Bigtable المستهدف.
أهداف الدورة التعليمية
- كيفية إعداد مجموعة Cassandra أساسية على Compute Engine
- كيفية إنشاء مثيل Bigtable
- كيفية نشر وتكوين Cassandra-Bigtable Proxy لربط مخطط Cassandra بـ Bigtable
- كيفية نشر خادم Datastax ZDM الوكيل وضبطه لإجراء عمليات كتابة مزدوجة
- كيفية استخدام أداة Cassandra Data Migrator لنقل البيانات الحالية بشكل مجمّع
- سير العمل العام لعملية نقل البيانات من Cassandra إلى Bigtable باستخدام خادم وكيل
المتطلبات
- مشروع Google Cloud تم تفعيل الفوترة فيه يمكن للمستخدمين الجدد الاستفادة من فترة تجريبية مجانية.
- معرفة أساسية بمفاهيم Google Cloud، مثل المشاريع وCompute Engine وشبكات VPC وقواعد الجدار الناري معرفة أساسية بأدوات سطر الأوامر في نظام التشغيل Linux
- الوصول إلى جهاز تم تثبيت
gcloudCLI عليه وإعداده، أو استخدام Google Cloud Shell
في هذا الدرس التطبيقي، سنستخدم في المقام الأول الأجهزة الافتراضية على Compute Engine ضِمن شبكة VPC والمنطقة نفسها لتبسيط عملية الربط بين الشبكات. ننصحك باستخدام عناوين IP داخلية.
2. إعداد البيئة
1. اختيار مشروع Google Cloud أو إنشاؤه
انتقِل إلى Google Cloud Console واختَر مشروعًا حاليًا أو أنشِئ مشروعًا جديدًا. دوِّن رقم تعريف المشروع.
2. اختيار منطقة ونطاق
اختَر منطقة ونطاقًا لمواردك. سنستخدم 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
3- تفعيل واجهات برمجة التطبيقات المطلوبة
تأكَّد من تفعيل Compute Engine API وBigtable API لمشروعك.
gcloud services enable compute.googleapis.com bigtable.googleapis.com bigtableadmin.googleapis.com
4. ضبط قواعد جدار الحماية
علينا السماح بالتواصل بين الأجهزة الافتراضية ضمن شبكة السحابة الإلكترونية الافتراضية الخاصة (VPC) التلقائية على عدة منافذ:
- منفذ CQL الخاص بخادم Cassandra/الخوادم الوكيلة: 9042
- منفذ فحص حالة خادم ZDM الوكيل: 14001
- SSH: 22
أنشئ قاعدة جدار حماية للسماح بالزيارات الداخلية على هذه المنافذ. سنستخدم العلامة 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
3- تفعيل مجموعة Cassandra (المصدر)
في هذا الدرس التطبيقي، سنُعدّ مجموعة بسيطة من عقدة واحدة من Cassandra على Compute Engine. في سيناريو واقعي، عليك الاتصال بمجموعتك الحالية.
1. إنشاء جهاز GCE افتراضي لـ Cassandra
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"
تسجيل الدخول إلى نسخة Cassandra باستخدام بروتوكول SSH
gcloud compute ssh --zone="$ZONE" "cassandra-origin"
2. تثبيت 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 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
3- ضبط Cassandra
علينا ضبط Cassandra لتكون متاحة داخل الشبكة الخاصة.
احصل على عنوان IP الخاص بـ cassandra-origin من خلال تنفيذ ما يلي:
hostname -I
عدِّل إعدادات Cassandra، ولن تحتاج إلى إضافة أي أسطر إعدادات جديدة، بل عليك تعديل الأسطر المتوفّرة حاليًا:
sudo vim /etc/cassandra/cassandra.yaml
- اضبط قيمة
seed_provider.parameters.seedsعلى"CASSANDRA_ORIGIN_PRIVATE_IP:7000" - اضبط قيمة
rpc_addressعلىCASSANDRA_ORIGIN_PRIVATE_IP - اضبط قيمة
listen_addressعلىCASSANDRA_ORIGIN_PRIVATE_IP
احفظ الملف.
أخيرًا، أعِد تشغيل Cassandra لتحميل تغييرات الإعدادات:
sudo systemctl restart cassandra
# (Optional) Verify Cassandra is running
sudo systemctl status cassandra
4. إنشاء مساحة مفاتيح وجدول
سنستخدم مثالاً لجدول موظفين وننشئ مساحة مفاتيح باسم "zdmbigtable".
ملاحظة: قد يستغرق بدء قبول Cassandra للاتصالات دقيقة واحدة.
# 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 الخاص بهذه الآلة الافتراضية (اسم المضيف -I).
4. إعداد Bigtable (الجدول المستهدف)
المدة 0:01
أنشئ مثيلاً من 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.
5- إعداد Cassandra-Bigtable Proxy
1. إنشاء جهاز Compute Engine الظاهري لخادم وكيل Cassandra-Bigtable
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، نفِّذ ما يلي:
# 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/
2. بدء Cassandra-Bigtable Proxy
ابدأ تشغيل خادم الوكيل.
# 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)
سيبدأ الخادم الوكيل في الاستماع على المنفذ 9042 للاتصالات الواردة بلغة CQL. يجب إبقاء جلسة الوحدة الطرفية هذه قيد التشغيل. دوِّن عنوان IP الخاص بهذه الآلة الافتراضية (اسم المضيف -I)
3- إنشاء جدول باستخدام 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 من أجل إنشاء الجدول الأساسي. يجب أن تظهر لك الرسالة "تم الاتصال بـ 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;
6. إعداد ZDM Proxy
سننشئ مثيلاً واحدًا من ZDM Proxy لهذا الدرس التطبيقي، ولكن ستحتاج إلى إعداد متعدد العُقد لعملية نقل البيانات في مرحلة الإنتاج.
1. إنشاء الجهاز الافتراضي لخادم وكيل 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 لكل من الأجهزة الافتراضية.
2. إعداد ZDM Proxy
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}
7. إعداد التطبيق وبدء عمليات الكتابة المزدوجة
المدة 0:05
في هذه المرحلة من عملية نقل البيانات الفعلية، عليك إعادة ضبط تطبيقاتك للإشارة إلى عنوان IP الخاص بالجهاز الظاهري لخادم ZDM الوكيل (مثل :9042) بدلاً من الاتصال مباشرةً بـ Cassandra.
بعد ربط التطبيق بخادم ZDM الوكيل، يتم عرض عمليات القراءة من المصدر (Cassandra) تلقائيًا. يتم إرسال عمليات الكتابة إلى كلّ من المصدر (Cassandra) والوجهة (Bigtable، من خلال Cassandra-Bigtable Proxy). يتيح ذلك لتطبيقك مواصلة العمل بشكلٍ طبيعي مع ضمان كتابة البيانات الجديدة في كلتا قاعدتَي البيانات في الوقت نفسه. يمكنك اختبار الاتصال باستخدام 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;
يجب كتابة هذه البيانات في كل من Cassandra وBigtable. يمكنك التأكّد من ذلك في Bigtable من خلال الانتقال إلى وحدة تحكّم Google Cloud وفتح "محرّر طلبات البحث في Bigtable" للمثيل. نفِّذ طلب البحث "SELECT * FROM employee"، وستظهر البيانات التي تم إدراجها مؤخرًا.
8. نقل البيانات السابقة باستخدام أداة Cassandra Data Migrator
بعد تفعيل عمليات الكتابة المزدوجة للبيانات الجديدة، استخدِم أداة Cassandra Data Migrator (CDM) لنسخ البيانات السابقة الحالية من Cassandra إلى Bigtable.
1. إنشاء جهاز Compute Engine الظاهري لإدارة المحتوى الرقمي (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
2. تثبيت المتطلبات الأساسية (Java 11 وSpark)
استخدِم بروتوكول النقل الآمن (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
في المتصفّح، افتح صفحة حِزم CDM وانسخ رابط ملف .jar من لوحة "الأصول". إذا لم يتوفّر الإصدار 5.4.0، اختَر الإصدار الأقرب التالي. الصِق الرابط في الأمر أدناه، ونفِّذه على مثيل cdm-migrator-vm، مع الحفاظ على علامات الاقتباس المفردة حول عنوان URL.
wget 'JAR_URL_GOES_HERE' -O cassandra-data-migrator.jar
تأكَّد من تنزيل ملف jar بشكلٍ صحيح من خلال فحصه باستخدام الأداة jar: من المفترض أن تظهر لك قائمة طويلة من ملفات ".class".
jar tf cassandra-data-migrator.jar
4. إضافة بعض البيانات
علينا إضافة بعض البيانات لنقلها من خلال الكتابة مباشرةً إلى 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);
5- تشغيل مهمة نقل البيانات
نفِّذ عملية نقل البيانات باستخدام spark-submit. يطلب هذا الأمر من Spark تشغيل ملف CDM jar، باستخدام ملف الخصائص وتحديد مساحة المفاتيح والجدول المطلوب نقلهما. اضبط إعدادات الذاكرة (–driver-memory و–executor-memory) استنادًا إلى حجم الجهاز الظاهري وحجم البيانات.
تأكَّد من أنّك في الدليل الذي يحتوي على ملف CDM jar وملف الخصائص.
ملاحظة: يمكنك الحصول على عنوان IP الداخلي لأجهزتك الافتراضية التي تستخدم Cassandra والوكيل من خلال تنفيذ الأوامر التالية من جهازك المحلي:
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
6. التحقّق من عملية نقل البيانات
بعد اكتمال مهمة 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
9- التبديل (مفهومي)
بعد التحقّق بدقة من اتساق البيانات بين Cassandra وBigtable، يمكنك المتابعة لإجراء عملية النقل النهائي.
باستخدام ZDM Proxy، تتضمّن عملية الانتقال إعادة ضبط إعداداته ليقرأ بشكل أساسي من الوجهة (Bigtable) بدلاً من المصدر (Cassandra). يتم ذلك عادةً من خلال إعدادات ZDM Proxy، ما يؤدي إلى نقل عدد الزيارات التي تتضمّن عمليات قراءة في تطبيقك إلى Bigtable.
بعد التأكّد من أنّ Bigtable يعالج جميع الزيارات بشكل صحيح، يمكنك في النهاية إجراء ما يلي:
- أوقِف عمليات الكتابة المزدوجة من خلال إعادة ضبط إعدادات ZDM Proxy.
- إيقاف تشغيل مجموعة Cassandra الأصلية
- أزِل ZDM Proxy واجعل التطبيق يتصل مباشرةً بخادم Cassandra-Bigtable الوكيل أو استخدِم برنامج Bigtable CQL Client الأصلي للغة Java.
لا يتناول هذا الدرس التطبيقي الأساسي تفاصيل إعادة ضبط إعدادات ZDM Proxy لعملية الانتقال، ولكن يمكنك الاطّلاع على التفاصيل في مستندات Datastax ZDM.
10. تَنظيم
لتجنُّب تحمّل رسوم، احذف الموارد التي تم إنشاؤها خلال هذا الدرس العملي.
1. حذف الأجهزة الافتراضية في Compute Engine
gcloud compute instances delete cassandra-origin zdm-proxy-vm bigtable-proxy-vm cdm-migrator-vm --zone=$ZONE --quiet
2. حذف مثيل Bigtable
gcloud bigtable instances delete zdmbigtable
3- حذف قواعد جدار الحماية
gcloud compute firewall-rules delete allow-migration-internal
4. حذف قاعدة بيانات Cassandra (في حال تثبيتها محليًا أو استمرارها)
إذا ثبّت Cassandra خارج جهاز Compute Engine الظاهري الذي تم إنشاؤه هنا، اتّبِع الخطوات المناسبة لإزالة البيانات أو إلغاء تثبيت Cassandra.
11. تهانينا!
لقد أكملت بنجاح عملية إعداد مسار نقل مستند إلى خادم وكيل من Apache Cassandra إلى Bigtable.
لقد تعلّمت كيفية:
نشر Cassandra وBigtable
- اضبط إعدادات Cassandra-Bigtable Proxy لتكون متوافقة مع CQL.
- نشر Datastax ZDM Proxy لإدارة عمليات الكتابة المزدوجة والزيارات
- استخدِم أداة نقل البيانات في Cassandra لنقل البيانات السابقة.
يتيح هذا النهج عمليات نقل البيانات بأقل وقت تعطل ممكن وبدون إجراء أي تغييرات على الرمز البرمجي من خلال الاستفادة من طبقة الخادم الوكيل.
الخطوات التالية
- استكشاف مستندات Bigtable
- راجِع مستندات Datastax ZDM Proxy للحصول على إعدادات متقدّمة وإجراءات التبديل.
- راجِع مستودع Cassandra-Bigtable Proxy للحصول على مزيد من التفاصيل.
- راجِع مستودع Cassandra Data Migrator للاطّلاع على الاستخدام المتقدّم.
- تجربة دروس تطبيقية أخرى حول الترميز في Google Cloud