1. परिचय
Bigtable, पूरी तरह से मैनेज की गई, ज़्यादा परफ़ॉर्म करने वाली NoSQL डेटाबेस सेवा है. इसे बड़े डेटा का विश्लेषण करने और ऑपरेशनल वर्कलोड के लिए डिज़ाइन किया गया है. Apache Cassandra जैसे मौजूदा डेटाबेस से Bigtable पर माइग्रेट करने के लिए, अक्सर सावधानीपूर्वक प्लानिंग की ज़रूरत होती है. इससे डाउनटाइम और ऐप्लिकेशन पर पड़ने वाले असर को कम किया जा सकता है.
इस कोडलैब में, प्रॉक्सी टूल के कॉम्बिनेशन का इस्तेमाल करके, Cassandra से Bigtable पर माइग्रेट करने की रणनीति दिखाई गई है:
- Cassandra-Bigtable प्रॉक्सी: यह Cassandra क्लाइंट और टूल (जैसे कि
cqlshया ड्राइवर) को क्वेरी का अनुवाद करके, Cassandra Query Language (CQL) प्रोटोकॉल का इस्तेमाल करके Bigtable के साथ इंटरैक्ट करने की अनुमति देता है. - Datastax Zero Downtime Migration (ZDM) प्रॉक्सी: यह एक ओपन-सोर्स प्रॉक्सी है. यह आपके ऐप्लिकेशन और डेटाबेस सेवाओं (Cassandra से Bigtable पर माइग्रेट करने के लिए, Cassandra-Bigtable प्रॉक्सी के ज़रिए ओरिजनल Cassandra और टारगेट Bigtable) के बीच काम करती है. यह डुअल राइट की प्रोसेस को मैनेज करता है और ट्रैफ़िक को रूट करता है. इससे ऐप्लिकेशन में कम से कम बदलाव करके और कम से कम डाउनटाइम के साथ माइग्रेट किया जा सकता है.
- Cassandra Data Migrator (CDM): यह एक ओपन-सोर्स टूल है. इसका इस्तेमाल, सोर्स Cassandra क्लस्टर से टारगेट Bigtable इंस्टेंस में पुराने डेटा को बल्क में माइग्रेट करने के लिए किया जाता है.
आपको क्या सीखने को मिलेगा
- Compute Engine पर बुनियादी Cassandra क्लस्टर सेट अप करने का तरीका.
- Bigtable इंस्टेंस बनाने का तरीका.
- Cassandra-Bigtable प्रॉक्सी को डिप्लॉय और कॉन्फ़िगर करने का तरीका, ताकि Cassandra स्कीमा को Bigtable से मैप किया जा सके.
- डुअल राइट के लिए, Datastax ZDM प्रॉक्सी को डिप्लॉय और कॉन्फ़िगर करने का तरीका.
- मौजूदा डेटा को एक साथ माइग्रेट करने के लिए, Cassandra Data Migrator टूल का इस्तेमाल कैसे करें.
- प्रॉक्सी पर आधारित, Cassandra से Bigtable पर माइग्रेट करने का पूरा वर्कफ़्लो.
आपको किन चीज़ों की ज़रूरत होगी
- बिलिंग की सुविधा वाला Google Cloud प्रोजेक्ट. नए उपयोगकर्ता, बिना शुल्क दिए आज़माने की सुविधा का इस्तेमाल कर सकते हैं.
- Google Cloud के कॉन्सेप्ट के बारे में बुनियादी जानकारी होनी चाहिए. जैसे, प्रोजेक्ट, Compute Engine, वीपीसी नेटवर्क, और फ़ायरवॉल के नियम. Linux कमांड-लाइन टूल के बारे में बुनियादी जानकारी.
- आपके पास ऐसी मशीन का ऐक्सेस होना चाहिए जिस पर
gcloudसीएलआई इंस्टॉल और कॉन्फ़िगर किया गया हो. इसके अलावा, Google Cloud Shell का इस्तेमाल भी किया जा सकता है.
इस कोडलैब के लिए, हम मुख्य रूप से Compute Engine पर वर्चुअल मशीन (वीएम) का इस्तेमाल करेंगे. ये वीएम, एक ही वीपीसी नेटवर्क और क्षेत्र में मौजूद होंगे, ताकि नेटवर्किंग को आसान बनाया जा सके. हमारा सुझाव है कि आप इंटरनल आईपी पतों का इस्तेमाल करें.
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. फ़ायरवॉल के नियमों को कॉन्फ़िगर करना
हमें कई पोर्ट पर, डिफ़ॉल्ट वीपीसी नेटवर्क में मौजूद अपने वीएम के बीच कम्यूनिकेशन की अनुमति देनी होगी:
- Cassandra/Proxies CQL पोर्ट: 9042
- ZDM प्रॉक्सी की परफ़ॉर्मेंस की जांच करने वाला पोर्ट: 14001
- एसएसएच: 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 क्लस्टर (ओरिजन) डिप्लॉय करना
इस कोडलैब के लिए, हम Compute Engine पर एक सामान्य सिंगल-नोड Cassandra क्लस्टर सेट अप करेंगे. असल दुनिया में, आपको अपने मौजूदा क्लस्टर से कनेक्ट करना होगा.
1. Cassandra के लिए 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"
अपने Cassandra इंस्टेंस में एसएसएच करें
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 को कॉन्फ़िगर करना होगा, ताकि इसे प्राइवेट नेटवर्क में ऐक्सेस किया जा सके.
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;
एसएसएच सेशन को खुला रखें या इस वीएम का आईपी पता (होस्टनेम -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 प्रॉक्सी सेट अप करना
1. Cassandra-Bigtable प्रॉक्सी के लिए Compute Engine VM बनाना
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"
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/
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)
प्रॉक्सी शुरू हो जाएगी और आने वाले CQL कनेक्शन के लिए, पोर्ट 9042 पर सुनेगी. इस टर्मिनल सेशन को चालू रखें. इस वीएम का आईपी पता नोट करें (hostname -I)
3. CQL की मदद से टेबल बनाना
CQLSH को Cassandra-Bigtable प्रॉक्सी वीएम के आईपी पते से कनेक्ट करें. आईपी पते का पता लगाने के लिए, स्थानीय तौर पर यह कमांड चलाएं:
gcloud compute instances describe bigtable-proxy-vm --format='get(networkInterfaces[0].networkIP)'
किसी दूसरी विंडो में, cassandra-origin वीएम पर एसएसएच करें और bigtable-proxy के लिए cqlsh का इस्तेमाल करें. ध्यान दें कि हमने अनुरोध के लिए डिफ़ॉल्ट टाइमआउट से ज़्यादा समय सेट किया है, ताकि Bigtable को टेबल बनाने के लिए काफ़ी समय मिल सके. आपको "Connected to cassandra-bigtable-proxy-v0.2.3" या इसी तरह का कोई मैसेज दिखेगा. इससे पता चलता है कि आपने लोकल कैसेंड्रा सर्वर के बजाय, Bigtable प्रॉक्सी से कनेक्ट किया है.
# 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 प्रॉक्सी सेट अप करना
हम इस लैब के लिए, ZDM प्रॉक्सी का एक इंस्टेंस बनाएंगे. हालांकि, प्रोडक्शन माइग्रेशन के लिए आपको मल्टी-नोड सेट अप की ज़रूरत होगी.
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
दोनों वर्चुअल मशीन (वीएम) के आईपी पते नोट करें.
2. 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}
7. ऐप्लिकेशन कॉन्फ़िगर करना और डुअल राइटिंग शुरू करना
कुल समय 0:05
असल माइग्रेशन के इस चरण में, आपको अपने ऐप्लिकेशन को ZDM प्रॉक्सी वीएम के आईपी पते पर पॉइंट करने के लिए फिर से कॉन्फ़िगर करना होगा. उदाहरण के लिए, :9042) का इस्तेमाल करता है.
ऐप्लिकेशन के ZDM प्रॉक्सी से कनेक्ट होने के बाद: डिफ़ॉल्ट रूप से, ओरिजिन (Cassandra) से डेटा पढ़ा जाता है. राइट ऑपरेशन, ओरिजिन (Cassandra) और टारगेट (Cassandra-Bigtable प्रॉक्सी के ज़रिए Bigtable) दोनों को भेजे जाते हैं. इससे आपका ऐप्लिकेशन सामान्य तरीके से काम करता रहता है. साथ ही, यह पक्का होता है कि नया डेटा दोनों डेटाबेस में एक साथ लिखा जाए. ZDM प्रॉक्सी की ओर इशारा करने वाले cqlsh का इस्तेमाल करके, कनेक्शन की जांच की जा सकती है:
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 Console पर जाएं और अपने इंस्टेंस के लिए Bigtable क्वेरी एडिटर खोलें. "SELECT * FROM employee" क्वेरी चलाएं. इससे हाल ही में डाला गया डेटा दिखेगा.
8. Cassandra Data Migrator का इस्तेमाल करके, पुराने डेटा को माइग्रेट करना
अब नए डेटा के लिए डुअल राइट की सुविधा चालू हो गई है. इसलिए, Cassandra Data Migrator (CDM) टूल का इस्तेमाल करके, मौजूदा पुराने डेटा को Cassandra से Bigtable में कॉपी करें.
1. सीडीएम के लिए Compute Engine VM बनाना
इस वीएम को 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)
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 Packages पेज खोलें. इसके बाद, ऐसेट पैनल से .jar लिंक कॉपी करें. अगर 5.4.0 उपलब्ध नहीं है, तो इसके बाद वाला वर्शन चुनें. लिंक को नीचे दिए गए कमांड में चिपकाएं. इसके बाद, इसे अपने cdm-migrator-vm इंस्टेंस पर चलाएं. साथ ही, यूआरएल के आस-पास मौजूद सिंगल कोट को बनाए रखें.
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 जार चलाने के लिए कहा जाता है. इसके लिए, आपकी प्रॉपर्टी फ़ाइल का इस्तेमाल किया जाता है. साथ ही, माइग्रेट करने के लिए कीस्पेस और टेबल के बारे में जानकारी दी जाती है. अपनी वर्चुअल मशीन (वीएम) के साइज़ और डेटा वॉल्यूम के हिसाब से, मेमोरी की सेटिंग (–driver-memory, –executor-memory) में बदलाव करें.
पक्का करें कि आप उस डायरेक्ट्री में हों जिसमें CDM जार और प्रॉपर्टी फ़ाइल मौजूद है.
सलाह: अपनी लोकल मशीन से इन कमांड को चलाकर, अपने 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. डेटा माइग्रेशन की पुष्टि करना
सीडीएम जॉब पूरा होने के बाद, पुष्टि करें कि 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 प्रॉक्सी की मदद से कटओवर करने के लिए, इसे फिर से कॉन्फ़िगर करना होता है. ऐसा इसलिए, ताकि यह ओरिजन (Cassandra) के बजाय टारगेट (Bigtable) से डेटा पढ़ सके. आम तौर पर, यह काम ZDM प्रॉक्सी के कॉन्फ़िगरेशन के ज़रिए किया जाता है. इससे आपके ऐप्लिकेशन का रीड ट्रैफ़िक, Bigtable पर ट्रांसफ़र हो जाता है.
जब आपको लगे कि Bigtable सभी ट्रैफ़िक को सही तरीके से मैनेज कर रहा है, तब ये काम किए जा सकते हैं:
- ZDM प्रॉक्सी को फिर से कॉन्फ़िगर करके, डुअल राइट की सुविधा बंद करें.
- ओरिजनल Cassandra क्लस्टर को बंद करें.
- ZDM प्रॉक्सी को हटाएं और ऐप्लिकेशन को सीधे Cassandra-Bigtable प्रॉक्सी से कनेक्ट करें. इसके अलावा, Java के लिए नेटिव Bigtable CQL क्लाइंट का इस्तेमाल करें.
कटओवर के लिए ZDM प्रॉक्सी को फिर से कॉन्फ़िगर करने के बारे में ज़्यादा जानकारी इस बुनियादी कोडलैब में नहीं दी गई है. हालांकि, इसकी पूरी जानकारी 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 VM के बाहर इंस्टॉल किया है, तो डेटा हटाने या Cassandra को अनइंस्टॉल करने के लिए, सही तरीका अपनाएं.
11. बधाई हो!
आपने Apache Cassandra से Bigtable में प्रॉक्सी पर आधारित माइग्रेशन पाथ सेट अप करने की प्रोसेस पूरी कर ली है!
आपने यह सीखा:
Cassandra और Bigtable को डिप्लॉय करें.
- CQL के साथ काम करने के लिए, Cassandra-Bigtable Proxy को कॉन्फ़िगर करें.
- डेटास्टैक ZDM प्रॉक्सी को डिप्लॉय करें, ताकि दो जगहों पर डेटा लिखने और ट्रैफ़िक को मैनेज किया जा सके.
- पुराने डेटा को ट्रांसफ़र करने के लिए, Cassandra Data Migrator का इस्तेमाल करें.
इस तरीके से, प्रॉक्सी लेयर का इस्तेमाल करके, कम से कम डाउनटाइम के साथ माइग्रेट किया जा सकता है. साथ ही, कोड में कोई बदलाव करने की ज़रूरत नहीं होती.
अगले चरण
- Bigtable के दस्तावेज़ देखें
- ऐडवांस कॉन्फ़िगरेशन और कटओवर की प्रक्रियाओं के लिए, Datastax ZDM प्रॉक्सी का दस्तावेज़ देखें.
- ज़्यादा जानकारी के लिए, Cassandra-Bigtable Proxy रिपॉज़िटरी देखें.
- एडवांस तरीके से इस्तेमाल करने के लिए, Cassandra Data Migrator की रिपॉज़िटरी देखें.
- Google Cloud के अन्य कोडलैब आज़माएं