স্প্যানার ক্যাসান্দ্রা অ্যাডাপ্টারের সাথে শুরু করা,স্প্যানার ক্যাসান্দ্রা অ্যাডাপ্টারের সাথে শুরু করা,স্প্যানার ক্যাসান্দ্রা অ্যাডাপ্টারের সাথে শুরু করা

Spanner Cassandra Adapter দিয়ে শুরু করা হচ্ছে

এই কোডল্যাব সম্পর্কে

subjectমে ২১, ২০২৫-এ শেষবার আপডেট করা হয়েছে
account_circleMayur Kale, Vardhan Thigle-এর লেখা

1. ভূমিকা

স্প্যানার হল একটি সম্পূর্ণরূপে পরিচালিত, অনুভূমিকভাবে স্কেলযোগ্য, বিশ্বব্যাপী বিতরণ করা ডাটাবেস পরিষেবা যা রিলেশনাল এবং অ-রিলেশনাল ওয়ার্কলোডের জন্য দুর্দান্ত।

স্প্যানারের ক্যাসান্ড্রা ইন্টারফেস আপনাকে পরিচিত ক্যাসান্ড্রা টুল এবং সিনট্যাক্স ব্যবহার করে স্প্যানারের সম্পূর্ণরূপে পরিচালিত, মাপযোগ্য, এবং অত্যন্ত উপলব্ধ পরিকাঠামোর সুবিধা নিতে দেয়।

আপনি কি শিখবেন

  • কিভাবে একটি স্প্যানার ইনস্ট্যান্স এবং ডাটাবেস সেটআপ করবেন।
  • আপনার ক্যাসান্দ্রা স্কিমা এবং ডেটা মডেল কীভাবে রূপান্তর করবেন।
  • ইনকামিং ডেটার জন্য ডুয়াল রাইট কীভাবে স্থাপন এবং কনফিগার করবেন।
  • ক্যাসান্দ্রা থেকে স্প্যানারে কীভাবে আপনার ঐতিহাসিক ডেটা বাল্ক এক্সপোর্ট করবেন।
  • মাইগ্রেশন প্রক্রিয়া জুড়ে ডেটা অখণ্ডতা নিশ্চিত করতে কীভাবে ডেটা যাচাই করবেন।
  • ক্যাসান্দ্রার পরিবর্তে কীভাবে আপনার আবেদনটি স্প্যানারে নির্দেশ করবেন।

আপনি কি প্রয়োজন হবে

  • একটি Google ক্লাউড প্রকল্প যা একটি বিলিং অ্যাকাউন্টের সাথে সংযুক্ত৷
  • gcloud সিএলআই ইনস্টল এবং কনফিগার করা মেশিনে অ্যাক্সেস করুন বা Google ক্লাউড শেল ব্যবহার করুন।
  • একটি ওয়েব ব্রাউজার, যেমন ক্রোম বা ফায়ারফক্স

2. সেটআপ এবং প্রয়োজনীয়তা

একটি GCP প্রকল্প তৈরি করুন

Google ক্লাউড কনসোলে সাইন-ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা বিদ্যমান একটি পুনরায় ব্যবহার করুন৷ আপনার যদি ইতিমধ্যেই একটি Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • প্রকল্পের নাম এই প্রকল্পের অংশগ্রহণকারীদের জন্য প্রদর্শনের নাম। এটি একটি অক্ষর স্ট্রিং যা Google API দ্বারা ব্যবহৃত হয় না। আপনি সবসময় এটি আপডেট করতে পারেন.
  • প্রোজেক্ট আইডি সমস্ত Google ক্লাউড প্রোজেক্ট জুড়ে অনন্য এবং অপরিবর্তনীয় (সেট করার পরে পরিবর্তন করা যাবে না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত আপনি এটা কি যত্ন না. বেশিরভাগ কোডল্যাবে, আপনাকে আপনার প্রকল্প আইডি উল্লেখ করতে হবে (সাধারণত PROJECT_ID হিসাবে চিহ্নিত)। আপনি যদি জেনারেট করা আইডি পছন্দ না করেন, তাহলে আপনি অন্য একটি এলোমেলো আইডি তৈরি করতে পারেন। বিকল্পভাবে, আপনি নিজের চেষ্টা করতে পারেন, এবং এটি উপলব্ধ কিনা দেখতে পারেন। এই ধাপের পরে এটি পরিবর্তন করা যাবে না এবং প্রকল্পের সময়কালের জন্য থাকে।
  • আপনার তথ্যের জন্য, একটি তৃতীয় মান আছে, একটি প্রকল্প নম্বর , যা কিছু API ব্যবহার করে। ডকুমেন্টেশনে এই তিনটি মান সম্পর্কে আরও জানুন।

বিলিং সেটআপ

এর পরে, আপনাকে বিলিং ব্যবহারকারী নির্দেশিকা পরিচালনা করতে হবে এবং ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে। নতুন Google ক্লাউড ব্যবহারকারীরা $300 USD বিনামূল্যের ট্রায়াল প্রোগ্রামের জন্য যোগ্য৷ এই টিউটোরিয়ালের বাইরে বিলিং এড়াতে, আপনি "ধাপ 9 পরিষ্কার করা" অনুসরণ করে কোডল্যাবের শেষে স্প্যানার ইনস্ট্যান্স বন্ধ করতে পারেন।

ক্লাউড শেল শুরু করুন

যদিও Google ক্লাউড আপনার ল্যাপটপ থেকে দূরবর্তীভাবে পরিচালিত হতে পারে, এই কোডল্যাবে আপনি Google ক্লাউড শেল ব্যবহার করবেন, একটি কমান্ড লাইন পরিবেশ যা ক্লাউডে চলছে।

Google ক্লাউড কনসোল থেকে, উপরের ডানদিকে টুলবারে ক্লাউড শেল আইকনে ক্লিক করুন:

55efc1aaa7a4d3ad.png

পরিবেশের ব্যবস্থা করতে এবং সংযোগ করতে এটি শুধুমাত্র কয়েক মুহূর্ত নিতে হবে। এটি সমাপ্ত হলে, আপনি এই মত কিছু দেখতে হবে:

7ffe5cbb04455448.png

এই ভার্চুয়াল মেশিনটি আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুল দিয়ে লোড করা হয়েছে। এটি একটি ক্রমাগত 5GB হোম ডিরেক্টরি অফার করে এবং Google ক্লাউডে চলে, যা নেটওয়ার্ক কর্মক্ষমতা এবং প্রমাণীকরণকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার সমস্ত কাজ একটি ব্রাউজারে করা যেতে পারে। আপনার কিছু ইন্সটল করার দরকার নেই।

পরবর্তী আপ

এর পরে, আপনি ক্যাসান্দ্রা ক্লাস্টার স্থাপন করবেন।

3. ক্যাসান্দ্রা ক্লাস্টার স্থাপন করুন (উৎস)

এই কোডল্যাবের জন্য, আমরা কম্পিউট ইঞ্জিনে একটি একক-নোড ক্যাসান্দ্রা ক্লাস্টার সেট আপ করব।

1. ক্যাসান্দ্রার জন্য একটি GCE VM তৈরি করুন৷

একটি উদাহরণ তৈরি করতে, gcloud compute instances create কমান্ডটি ব্যবহার করুন।

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. ক্যাসান্ড্রা ইনস্টল করুন

# 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. একটি কীস্পেস এবং টেবিল তৈরি করুন

আমরা একটি ব্যবহারকারী টেবিল উদাহরণ ব্যবহার করব এবং "বিশ্লেষণ" নামে একটি কীস্পেস তৈরি করব।

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

cqlsh এর ভিতরে:

-- Create keyspace (adjust replication for production)
CREATE KEYSPACE analytics WITH replication = {'class':'SimpleStrategy', 'replication_factor':1};

-- Use the keyspace
USE analytics;

-- Create the users table
CREATE TABLE users (
    id  int PRIMARY KEY,
    active  boolean,
    username  text,
);

-- Exit cqlsh
EXIT;

SSH সেশন খোলা রাখুন বা এই VM (হোস্টনেম -I) এর IP ঠিকানাটি নোট করুন।

পরবর্তী আপ

এর পরে, আপনি একটি ক্লাউড স্প্যানার ইনস্ট্যান্স এবং ডেটাবেস সেটআপ করবেন।

4. একটি স্প্যানার উদাহরণ এবং ডাটাবেস তৈরি করুন (লক্ষ্য)

স্প্যানারে, একটি উদাহরণ হল কম্পিউটিং এবং স্টোরেজ সংস্থানগুলির একটি ক্লাস্টার যা এক বা একাধিক স্প্যানার ডাটাবেস হোস্ট করে। এই কোডল্যাবের জন্য একটি স্প্যানার ডাটাবেস হোস্ট করতে আপনার কমপক্ষে 1টি উদাহরণের প্রয়োজন হবে৷

জিক্লাউড এসডিকে সংস্করণ পরীক্ষা করুন

একটি উদাহরণ তৈরি করার আগে, নিশ্চিত করুন যে Google ক্লাউড শেলের gcloud SDK প্রয়োজনীয় সংস্করণে আপডেট করা হয়েছে - gcloud SDK 493.0.0 । আপনি নীচের কমান্ড অনুসরণ করে আপনার gcloud SDK সংস্করণ খুঁজে পেতে পারেন।

$ gcloud version | grep Google

এখানে একটি উদাহরণ আউটপুট:

Google Cloud SDK 489.0.0

আপনি যে সংস্করণটি ব্যবহার করছেন তা যদি প্রয়োজনীয় 493.0.0 সংস্করণের (পূর্ববর্তী উদাহরণে 489.0.0 ) এর চেয়ে আগের হয় তবে আপনাকে নিম্নলিখিত কমান্ডটি চালিয়ে আপনার Google ক্লাউড SDK আপগ্রেড করতে হবে:

sudo apt-get update \
  && sudo apt-get --only-upgrade install google-cloud-cli-anthoscli google-cloud-cli-cloud-run-proxy kubectl google-cloud-cli-skaffold google-cloud-cli-cbt google-cloud-cli-docker-credential-gcr google-cloud-cli-spanner-migration-tool google-cloud-cli-cloud-build-local google-cloud-cli-pubsub-emulator google-cloud-cli-app-engine-python google-cloud-cli-kpt google-cloud-cli-bigtable-emulator google-cloud-cli-datastore-emulator google-cloud-cli-spanner-emulator google-cloud-cli-app-engine-go google-cloud-cli-app-engine-python-extras google-cloud-cli-config-connector google-cloud-cli-package-go-module google-cloud-cli-istioctl google-cloud-cli-anthos-auth google-cloud-cli-gke-gcloud-auth-plugin google-cloud-cli-app-engine-grpc google-cloud-cli-kubectl-oidc google-cloud-cli-terraform-tools google-cloud-cli-nomos google-cloud-cli-local-extract google-cloud-cli-firestore-emulator google-cloud-cli-harbourbridge google-cloud-cli-log-streaming google-cloud-cli-minikube google-cloud-cli-app-engine-java google-cloud-cli-enterprise-certificate-proxy google-cloud-cli

স্প্যানার API সক্ষম করুন

ক্লাউড শেলের ভিতরে, নিশ্চিত করুন যে আপনার প্রকল্প আইডি সেটআপ করা আছে। বর্তমানে কনফিগার করা প্রকল্প আইডি খুঁজে পেতে নীচের প্রথম কমান্ডটি ব্যবহার করুন। ফলাফল প্রত্যাশিত না হলে, নীচের দ্বিতীয় কমান্ডটি সঠিকটি সেট করে।

gcloud config get-value project
gcloud config set project [YOUR-DESIRED-PROJECT-ID]

us-central1 এ আপনার ডিফল্ট অঞ্চল কনফিগার করুন। স্প্যানার আঞ্চলিক কনফিগারেশন দ্বারা সমর্থিত একটি ভিন্ন অঞ্চলে এটিকে নির্দ্বিধায় পরিবর্তন করুন৷

gcloud config set compute/region us-central1

স্প্যানার API সক্ষম করুন:

gcloud services enable spanner.googleapis.com

স্প্যানার উদাহরণ তৈরি করুন

এই বিভাগে, আপনি একটি ফ্রি ট্রায়াল ইনস্ট্যান্স বা একটি প্রভিশনড ইনস্ট্যান্স তৈরি করবেন। এই কোডল্যাব জুড়ে, স্প্যানার ক্যাসান্দ্রা অ্যাডাপ্টার ইনস্ট্যান্স আইডিটি হল cassandra-adapter-demo , export কমান্ড লাইন ব্যবহার করে SPANNER_INSTANCE_ID ভেরিয়েবল হিসাবে সেট করা হয়েছে। ঐচ্ছিকভাবে, আপনি নিজের ইন্সট্যান্স আইডি নাম বেছে নিতে পারেন।

একটি ফ্রি-ট্রায়াল স্প্যানার ইনস্ট্যান্স তৈরি করুন

একটি স্প্যানার 90-দিনের বিনামূল্যের ট্রায়াল ইনস্ট্যান্স একটি Google অ্যাকাউন্ট সহ যে কেউ তাদের প্রকল্পে ক্লাউড বিলিং সক্ষম করা আছে তাদের জন্য উপলব্ধ৷ আপনি চার্জ করা হবে না যদি না আপনি আপনার বিনামূল্যের ট্রায়াল ইনস্ট্যান্সকে একটি প্রদত্ত দৃষ্টান্তে আপগ্রেড করতে চান৷ স্প্যানার ক্যাসান্দ্রা অ্যাডাপ্টার বিনামূল্যে ট্রায়াল উদাহরণে সমর্থিত। যোগ্য হলে, ক্লাউড শেল খুলে এই কমান্ডটি চালিয়ে একটি বিনামূল্যের ট্রায়ালের উদাহরণ তৈরি করুন:

export SPANNER_INSTANCE_ID=cassandra-adapter-demo
export SPANNER_REGION=regional-us-central1
gcloud spanner instances create $SPANNER_INSTANCE_ID \
  --config=$SPANNER_REGION \
  --instance-type=free-instance \
  --description="Spanner Cassandra Adapter demo"

কমান্ড আউটপুট:

$ gcloud spanner instances create $SPANNER_INSTANCE_ID \
  --config=$SPANNER_REGION \
  --instance-type=free-instance \
  --description="Spanner Cassandra Adapter demo"
Creating instance...done.

ডাটাবেস তৈরি করুন

একবার আপনার দৃষ্টান্ত চালু হলে, আপনি ডাটাবেস তৈরি করতে পারেন। ডাটাবেস হল যেখানে আপনি আপনার স্কিমা সংজ্ঞায়িত করেন। আপনি ডাটাবেসে কার অ্যাক্সেস আছে তা নিয়ন্ত্রণ করতে পারেন, কাস্টম এনক্রিপশন সেট আপ করতে পারেন, অপ্টিমাইজার কনফিগার করতে পারেন এবং ধরে রাখার সময়কাল সেট করতে পারেন।

SPANNER_INSTANCE_ID আইডি দিয়ে ডাটাবেস তৈরি করা হবে।

একটি ডাটাবেস তৈরি করতে, gcloud কমান্ড লাইন টুল ব্যবহার করুন:

export SPANNER_DATABASE=analytics
gcloud spanner databases create $SPANNER_DATABASE \
 --instance=$SPANNER_INSTANCE_ID

কমান্ড আউটপুট:

$ gcloud spanner databases create $SPANNER_DATABASE \
 --instance=$SPANNER_INSTANCE_ID
Creating database...done.

5. ক্যাসান্দ্রা স্কিমা এবং ডেটা মডেল স্প্যানারে স্থানান্তর করুন

ক্যাসান্ড্রা ডাটাবেস থেকে স্প্যানারে ডেটা স্থানান্তরের প্রাথমিক এবং গুরুত্বপূর্ণ ধাপে স্প্যানারের কাঠামোগত এবং ডেটা টাইপ প্রয়োজনীয়তার সাথে সারিবদ্ধ করার জন্য বিদ্যমান ক্যাসান্দ্রা স্কিমাকে রূপান্তর করা জড়িত।

এই জটিল স্কিমা মাইগ্রেশন প্রক্রিয়াটিকে স্ট্রীমলাইন করার জন্য, স্প্যানার একটি মূল্যবান ওপেন-সোর্স টুল সরবরাহ করে যা স্প্যানার ক্যাসান্দ্রা স্কিমা টুল নামে পরিচিত।

স্প্যানার ক্যাসান্দ্রা স্কিমা টুল

স্প্যানার ক্যাসান্ড্রা স্কিমা টুল হল স্প্যানার মূল্যায়ন এবং স্কিমা স্থানান্তরের জন্য একটি স্বতন্ত্র ওপেন সোর্স টুল। এটির প্রাথমিক কাজ হল স্বয়ংক্রিয়ভাবে একটি বিদ্যমান ক্যাসান্দ্রা স্কিমায় পাওয়া সংজ্ঞাগুলির উপর ভিত্তি করে একটি স্প্যানার স্কিমা তৈরি করা। ক্যাসান্ড্রা টেবিলের কাঠামো, ডেটার ধরন এবং প্রাথমিক কী কনফিগারেশন বিশ্লেষণ করে, টুলটি সমতুল্য স্প্যানার টেবিল সংজ্ঞা তৈরি করে, যা সাধারণত স্কিমা অনুবাদে জড়িত ম্যানুয়াল প্রচেষ্টাকে উল্লেখযোগ্যভাবে হ্রাস করে।

ক্যাসান্দ্রা স্কিমা রপ্তানি করুন

স্প্যানার ক্যাসান্দ্রা স্কিমা টুল ব্যবহার করার আগে, প্রথম কংক্রিট পদক্ষেপ হল আপনার বর্তমান ক্যাসান্দ্রা ক্লাস্টার থেকে স্কিমা বের করা। এটি cqlsh মাধ্যমে আপনার বিদ্যমান ক্যাসান্দ্রা ক্লাস্টারের সাথে সংযোগ করে এবং ক্যাসান্দ্রা থেকে স্কিমা রপ্তানি করে অর্জন করা যেতে পারে:

cqlsh [IP] "-e DESC SCHEMA" > orig_schema.cql

এই কমান্ডে, আপনার Cassandra ক্লাস্টারের একটি নোডের IP ঠিকানা বা হোস্টনাম দিয়ে [IP] প্রতিস্থাপন করা উচিত। কমান্ডের -e DESC SCHEMA অংশটি cqlsh কে ক্যাসান্ড্রা ক্লাস্টারের সম্পূর্ণ স্কিমা বর্ণনা করার নির্দেশ দেয়। এই কমান্ডের আউটপুট, যাতে CREATE KEYSPACE এবং CREATE TABLE স্টেটমেন্ট থাকে, তারপর orig_schema.cql নামের একটি ফাইলে রিডাইরেক্ট করা হয়।

এই orig_schema.cql ফাইলের বিষয়বস্তু মূলত আপনার ক্যাসান্দ্রা স্কিমার একটি পাঠ্য ব্লুপ্রিন্ট উপস্থাপন করবে। orig_schema.cql ফাইলের বিষয়বস্তু এইরকম হওয়া উচিত:

CREATE KEYSPACE analytics WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'}  AND durable_writes = true;

CREATE TABLE analytics.users (
    id int PRIMARY KEY,
    active boolean,
    username text
) WITH additional_write_policy = '99p'
    AND allow_auto_snapshot = true
    AND bloom_filter_fp_chance = 0.01
    AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
    AND cdc = false
    AND comment = ''
    AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
    AND compression = {'chunk_length_in_kb': '16', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
    AND memtable = 'default'
    AND crc_check_chance = 1.0
    AND default_time_to_live = 0
    AND extensions = {}
    AND gc_grace_seconds = 864000
    AND incremental_backups = true
    AND max_index_interval = 2048
    AND memtable_flush_period_in_ms = 0
    AND min_index_interval = 128
    AND read_repair = 'BLOCKING'
    AND speculative_retry = '99p';

সংগ্রহস্থল ক্লোন করুন

স্প্যানার ক্যাসান্ড্রা স্কিমা টুল ব্যবহার করতে, পরবর্তী ধাপে টুলের সোর্স কোড প্রাপ্ত করা জড়িত। GitHub-এ হোস্ট করা রিপোজিটরি ক্লোন করে এটি করা হয়। ক্লাউড শেলে নিম্নলিখিত কমান্ডটি টাইপ করে গিটহাব থেকে স্প্যানার ক্যাসান্ড্রা স্কিমা টুলটি ক্লোন করুন:

git clone https://github.com/cloudspannerecosystem/spanner-cassandra-schema-tool.git

তারপরে "স্প্যানার-ক্যাসান্ড্রা-স্কিমা-টুল" ডিরেক্টরিতে ডিরেক্টরি পরিবর্তন করুন যেখানে আপনি কমান্ডটি চালাবেন।

cd spanner-cassandra-schema-tool

নির্ভরতা ইনস্টল করুন

স্প্যানার ক্যাসান্দ্রা স্কিমা টুলটি গো প্রোগ্রামিং ভাষায় লেখা। টুল ফাংশন সঠিকভাবে নিশ্চিত করতে, এটি নির্দিষ্ট বাহ্যিক Go মডিউল (লাইব্রেরি) উপর নির্ভর করে। আপনি টুলটি চালানোর আগে এই নির্ভরতাগুলি ডাউনলোড এবং পরিচালনা করতে হবে। spanner-cassandra-schema-tool ডিরেক্টরির মধ্যে, নিম্নলিখিত কমান্ডটি চালান:

go mod download

Google ক্লাউড শংসাপত্র সেট আপ করুন৷

এই টুলটি স্প্যানার ডাটাবেসের সাথে সংযোগ করার জন্য শংসাপত্রের উৎস হিসাবে অ্যাপ্লিকেশন ডিফল্ট শংসাপত্র (ADC) ব্যবহার করে। আপনার পরিষেবা অ্যাকাউন্ট কী ফাইলের পাথে GOOGLE_APPLICATION_CREDENTIALS পরিবেশ পরিবর্তনশীল সেট করুন৷

export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-file.json"

/path/to/your/service-account-file.json আপনার ডাউনলোড করা সার্ভিস অ্যাকাউন্ট কী ফাইলের প্রকৃত পাথ দিয়ে প্রতিস্থাপন করুন। এই এনভায়রনমেন্ট ভেরিয়েবল সেট করা নিশ্চিত করে যে স্প্যানার ক্যাসান্ড্রা স্কিমা টুলটি আপনার Google ক্লাউড প্রোজেক্ট এবং স্প্যানার ইনস্ট্যান্সের সাথে নিরাপদে প্রমাণীকরণ করতে পারে।

ব্যবহার

নির্ভরতাগুলি ইনস্টল হয়ে গেলে এবং Google ক্লাউড শংসাপত্রগুলি কনফিগার হয়ে গেলে, আপনি রপ্তানি করা ক্যাসান্দ্রা স্কিমা ফাইল থেকে স্প্যানার স্কিমা তৈরি করতে স্প্যানার ক্যাসান্দ্রা স্কিমা টুল চালানোর জন্য প্রস্তুত৷ আপনার টার্মিনাল বা ক্লাউড শেলের spanner-cassandra-schema-tool ডিরেক্টরিতে নেভিগেট করুন এবং নিম্নলিখিত go run কমান্ডটি চালান:

go run schema_converter.go \
    --project $PROJECT_ID \
    --instance $SPANNER_INSTANCE_ID \
    --database $SPANNER_DATABASE \
    --cql orig_schema.cql \
    --dry-run

--dry-run বিকল্পের সাথে চলমান স্কিমা তৈরি করে। টুল দ্বারা উত্পন্ন ডেটা টাইপ ম্যাপিং এবং প্রাথমিক কী কলামগুলি পর্যালোচনা এবং পরিমার্জন করুন। নিশ্চিত করুন যে স্প্যানার ডেটা টাইপগুলি সংশ্লিষ্ট ক্যাসান্ড্রা ডাটাবেসের প্রকারের পরিসীমা, নির্ভুলতা এবং শব্দার্থকে সঠিকভাবে উপস্থাপন করে।

এই টুলটি ক্যাসান্দ্রা প্রকারগুলিকে স্প্যানার প্রকারগুলিকে মানচিত্র করে যেমন সমর্থিত ক্যাসান্দ্রা ডেটা প্রকারগুলিতে নথিভুক্ত করা হয়েছে৷

কমান্ড আউটপুট এই মত কিছু দেখতে হবে:

.....

[Converted Spanner statement]
CREATE TABLE users (
 id INT64 NOT NULL OPTIONS (cassandra_type = 'int'),
 active BOOL OPTIONS (cassandra_type = 'boolean'),
 username STRING(MAX) OPTIONS (cassandra_type = 'text'),
) PRIMARY KEY (id)
----------------------------------------------
Writing converted Spanner schema to: schema.txt
Dry run enabled. Skipping schema execution.
Schema conversion completed!

যদি আপনি স্পেনারে প্রয়োগের স্কিমা স্বয়ংক্রিয়ভাবে প্রয়োগ করতে চান তবে আপনার --dry-run বিকল্প ছাড়াই cli চালানো উচিত।

7B2FCQSrtHfveuc.png

Google ক্লাউড কনসোলে যাচাই করুন যে টেবিল এবং মেটাডেটা টেবিল ক্লাউড স্প্যানার ডাটাবেসে বিদ্যমান।

9. আপনার আবেদনটি স্প্যানারে নির্দেশ করুন (কাটওভার)

মাইগ্রেশন পর্বের পরে আপনার ডেটার নির্ভুলতা এবং অখণ্ডতা সতর্কতার সাথে যাচাই করার পরে, মূল পদক্ষেপটি হল আপনার উত্তরাধিকারী ক্যাসান্ড্রা সিস্টেম থেকে নতুন জনবহুল Google ক্লাউড স্প্যানার ডাটাবেসে আপনার অ্যাপ্লিকেশনটির অপারেশনাল ফোকাস স্থানান্তর করা। এই জটিল রূপান্তর সময়টিকে সাধারণত " কাটওভার " বলা হয়।

কাটওভার ফেজ সেই মুহূর্তটিকে চিহ্নিত করে যখন লাইভ অ্যাপ্লিকেশন ট্র্যাফিক মূল ক্যাসান্ড্রা ক্লাস্টার থেকে দূরে পুনঃনির্দেশিত হয় এবং সরাসরি শক্তিশালী এবং মাপযোগ্য স্প্যানার পরিকাঠামোর সাথে সংযুক্ত হয়। এই রূপান্তরটি প্রদর্শন করে যে সহজে অ্যাপ্লিকেশনগুলি স্প্যানারের শক্তিকে কাজে লাগাতে পারে, বিশেষ করে যখন স্প্যানার ক্যাসান্ড্রা ইন্টারফেস ব্যবহার করা হয়।

স্প্যানার ক্যাসান্ড্রা ইন্টারফেসের সাথে, কাটওভার প্রক্রিয়াটি সুগম করা হয়েছে। এটি প্রাথমিকভাবে সমস্ত ডেটা ইন্টারঅ্যাকশনের জন্য নেটিভ স্প্যানার ক্যাসান্ড্রা ক্লায়েন্ট ব্যবহার করার জন্য আপনার ক্লায়েন্ট অ্যাপ্লিকেশনগুলিকে কনফিগার করা জড়িত। আপনার ক্যাসান্ড্রা (অরিজিন) ডাটাবেসের সাথে যোগাযোগ করার পরিবর্তে, আপনার অ্যাপ্লিকেশনগুলি নির্বিঘ্নে স্প্যানার (লক্ষ্য) এ সরাসরি ডেটা পড়া এবং লেখা শুরু করবে। সংযোগের এই মৌলিক পরিবর্তনটি সাধারণত SpannerCqlSessionBuilder ব্যবহারের মাধ্যমে অর্জন করা হয়, স্প্যানার ক্যাসান্ড্রা ক্লায়েন্ট লাইব্রেরির একটি মূল উপাদান যা আপনার স্প্যানার উদাহরণের সাথে সংযোগ স্থাপনের সুবিধা দেয়। এটি কার্যকরভাবে আপনার অ্যাপ্লিকেশানের সমগ্র ডেটা ট্রাফিক প্রবাহকে স্প্যানারে পুনরায় রুট করে।

জাভা অ্যাপ্লিকেশনগুলির জন্য ইতিমধ্যেই cassandra-java-driver লাইব্রেরি ব্যবহার করছে, স্প্যানার ক্যাসান্দ্রা জাভা ক্লায়েন্টকে একীভূত করার জন্য CqlSession প্রারম্ভিকতায় শুধুমাত্র ছোটখাটো পরিবর্তন প্রয়োজন।

গুগল-ক্লাউড-স্প্যানার-ক্যাসান্ড্রা নির্ভরতা পাওয়া

স্প্যানার ক্যাসান্দ্রা ক্লায়েন্ট ব্যবহার শুরু করতে, আপনাকে প্রথমে আপনার প্রকল্পে এর নির্ভরতা অন্তর্ভুক্ত করতে হবে। google-cloud-spanner-cassandra artifacts com.google.cloud গ্রুপ আইডির অধীনে মাভেন সেন্ট্রালে প্রকাশিত হয়েছে। আপনার জাভা প্রকল্পে বিদ্যমান <dependencies> বিভাগের অধীনে নিম্নলিখিত নতুন নির্ভরতা যোগ করুন। আপনি কীভাবে google-cloud-spanner-cassandra নির্ভরতা অন্তর্ভুক্ত করবেন তার একটি সরলীকৃত উদাহরণ এখানে দেওয়া হল:

<!-- native Spanner Cassandra Client -->
<dependencies>
 
<dependency>
   
<groupId>com.google.cloud</groupId>
   
<artifactId>google-cloud-spanner-cassandra</artifactId>
   
<version>0.2.0</version>
 
</dependency>
</dependencies>

স্প্যানারে সংযোগ করতে সংযোগ কনফিগারেশন পরিবর্তন করুন

একবার আপনি প্রয়োজনীয় নির্ভরতা যোগ করলে, পরবর্তী ধাপ হল স্প্যানার ডাটাবেসের সাথে সংযোগ করতে আপনার সংযোগ কনফিগারেশন পরিবর্তন করা।

ক্যাসান্ড্রা ক্লাস্টারের সাথে ইন্টারঅ্যাক্ট করা একটি সাধারণ অ্যাপ্লিকেশন প্রায়শই একটি সংযোগ স্থাপন করতে নিম্নলিখিতগুলির মতো কোড ব্যবহার করে:

CqlSession session = CqlSession.builder()
       
.addContactPoint(new InetSocketAddress("127.0.0.1", 9042))
       
.withLocalDatacenter("datacenter1")
       
.withAuthCredentials("username", "password")
       
.build();

এই সংযোগটি স্প্যানারে পুনঃনির্দেশিত করতে, আপনাকে আপনার CqlSession সৃষ্টির যুক্তি পরিবর্তন করতে হবে। cassandra-java-driver থেকে সরাসরি স্ট্যান্ডার্ড CqlSessionBuilder ব্যবহার করার পরিবর্তে, আপনি Spanner Cassandra ক্লায়েন্ট দ্বারা প্রদত্ত SpannerCqlSession.builder() ব্যবহার করবেন। আপনার সংযোগ কোডটি কীভাবে পরিবর্তন করবেন তার একটি উদাহরণমূলক উদাহরণ এখানে দেওয়া হল:

String databaseUri = "projects/<your-gcp-project>/instances/<your-spanner-instance>/databases/<your-spanner-database>";

CqlSession session = SpannerCqlSession.builder()
       
.setDatabaseUri(databaseUri)
       
.addContactPoint(new InetSocketAddress("localhost", 9042))
       
.withLocalDatacenter("datacenter1")
       
.build();

SpannerCqlSession.builder() ব্যবহার করে CqlSession চালু করে এবং সঠিক databaseUri প্রদান করে, আপনার অ্যাপ্লিকেশনটি এখন আপনার লক্ষ্য স্প্যানার ডাটাবেসের সাথে স্প্যানার ক্যাসান্দ্রা ক্লায়েন্টের মাধ্যমে একটি সংযোগ স্থাপন করবে। এই গুরুত্বপূর্ণ পরিবর্তনটি নিশ্চিত করে যে আপনার অ্যাপ্লিকেশন দ্বারা সম্পাদিত পরবর্তী সমস্ত পঠন এবং লেখার ক্রিয়াকলাপগুলি স্প্যানার দ্বারা পরিচালিত হবে এবং পরিবেশন করা হবে, কার্যকরভাবে প্রাথমিক কাটওভারটি সম্পূর্ণ করবে। এই মুহুর্তে, আপনার অ্যাপ্লিকেশনটি প্রত্যাশিত হিসাবে কাজ করা চালিয়ে যাওয়া উচিত, এখন স্প্যানারের মাপযোগ্যতা এবং নির্ভরযোগ্যতা দ্বারা চালিত।

আন্ডার দ্য হুড: কিভাবে স্প্যানার ক্যাসান্দ্রা ক্লায়েন্ট কাজ করে

স্প্যানার ক্যাসান্দ্রা ক্লায়েন্ট একটি স্থানীয় টিসিপি প্রক্সি হিসাবে কাজ করে, ড্রাইভার বা ক্লায়েন্ট টুল দ্বারা প্রেরিত কাঁচা ক্যাসান্ড্রা প্রোটোকল বাইটগুলিকে বাধা দেয়। তারপরে এটি স্প্যানারের সাথে যোগাযোগের জন্য প্রয়োজনীয় মেটাডেটা সহ এই বাইটগুলিকে জিআরপিসি বার্তাগুলিতে মোড়ানো হয়। স্প্যানার থেকে প্রতিক্রিয়াগুলি ক্যাসান্দ্রা তারের ফর্ম্যাটে আবার অনুবাদ করা হয় এবং মূল ড্রাইভার বা টুলে ফেরত পাঠানো হয়।

26D34akkBHcMFFe.png

একবার আপনি নিশ্চিত হন যে স্প্যানার সমস্ত ট্রাফিক সঠিকভাবে পরিবেশন করছে, আপনি শেষ পর্যন্ত:

  • দ্বৈত লেখা বন্ধ করুন।
  • মূল ক্যাসান্দ্রা ক্লাস্টার বাতিল করুন।

10. পরিষ্কার করা (ঐচ্ছিক)

পরিষ্কার করতে, কেবল ক্লাউড কনসোলের স্প্যানার বিভাগে যান এবং কোডল্যাবে আমরা তৈরি করা cassandra-adapter-demo উদাহরণটি মুছুন।

76D34akkJRcMFMr.png

ক্যাসান্ড্রা ডাটাবেস মুছুন (যদি স্থানীয়ভাবে ইনস্টল করা থাকে বা অব্যাহত থাকে)

আপনি যদি এখানে তৈরি করা কম্পিউট ইঞ্জিন VM-এর বাইরে Cassandra ইনস্টল করেন, তাহলে ডেটা সরাতে বা Cassandra আনইনস্টল করার জন্য উপযুক্ত পদক্ষেপগুলি অনুসরণ করুন।

11. অভিনন্দন!

এরপর কি?

,
Spanner Cassandra Adapter দিয়ে শুরু করা হচ্ছে

এই কোডল্যাব সম্পর্কে

subjectমে ২১, ২০২৫-এ শেষবার আপডেট করা হয়েছে
account_circleMayur Kale, Vardhan Thigle-এর লেখা

1. ভূমিকা

স্প্যানার হল একটি সম্পূর্ণরূপে পরিচালিত, অনুভূমিকভাবে স্কেলযোগ্য, বিশ্বব্যাপী বিতরণ করা ডাটাবেস পরিষেবা যা রিলেশনাল এবং অ-রিলেশনাল ওয়ার্কলোডের জন্য দুর্দান্ত।

স্প্যানারের ক্যাসান্ড্রা ইন্টারফেস আপনাকে পরিচিত ক্যাসান্ড্রা টুল এবং সিনট্যাক্স ব্যবহার করে স্প্যানারের সম্পূর্ণরূপে পরিচালিত, মাপযোগ্য, এবং অত্যন্ত উপলব্ধ পরিকাঠামোর সুবিধা নিতে দেয়।

আপনি কি শিখবেন

  • কিভাবে একটি স্প্যানার ইনস্ট্যান্স এবং ডাটাবেস সেটআপ করবেন।
  • আপনার ক্যাসান্দ্রা স্কিমা এবং ডেটা মডেল কীভাবে রূপান্তর করবেন।
  • ইনকামিং ডেটার জন্য ডুয়াল রাইট কীভাবে স্থাপন এবং কনফিগার করবেন।
  • ক্যাসান্দ্রা থেকে স্প্যানারে কীভাবে আপনার ঐতিহাসিক ডেটা বাল্ক এক্সপোর্ট করবেন।
  • মাইগ্রেশন প্রক্রিয়া জুড়ে ডেটা অখণ্ডতা নিশ্চিত করতে কীভাবে ডেটা যাচাই করবেন।
  • ক্যাসান্দ্রার পরিবর্তে কীভাবে আপনার আবেদনটি স্প্যানারে নির্দেশ করবেন।

আপনি কি প্রয়োজন হবে

  • একটি Google ক্লাউড প্রকল্প যা একটি বিলিং অ্যাকাউন্টের সাথে সংযুক্ত৷
  • gcloud সিএলআই ইনস্টল এবং কনফিগার করা মেশিনে অ্যাক্সেস করুন বা Google ক্লাউড শেল ব্যবহার করুন।
  • একটি ওয়েব ব্রাউজার, যেমন ক্রোম বা ফায়ারফক্স

2. সেটআপ এবং প্রয়োজনীয়তা

একটি GCP প্রকল্প তৈরি করুন

Google ক্লাউড কনসোলে সাইন-ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা বিদ্যমান একটি পুনরায় ব্যবহার করুন৷ আপনার যদি ইতিমধ্যেই একটি Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • প্রকল্পের নাম এই প্রকল্পের অংশগ্রহণকারীদের জন্য প্রদর্শনের নাম। এটি একটি অক্ষর স্ট্রিং যা Google API দ্বারা ব্যবহৃত হয় না। আপনি সবসময় এটি আপডেট করতে পারেন.
  • প্রোজেক্ট আইডি সমস্ত Google ক্লাউড প্রোজেক্ট জুড়ে অনন্য এবং অপরিবর্তনীয় (সেট করার পরে পরিবর্তন করা যাবে না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত আপনি এটা কি যত্ন না. বেশিরভাগ কোডল্যাবে, আপনাকে আপনার প্রকল্প আইডি উল্লেখ করতে হবে (সাধারণত PROJECT_ID হিসাবে চিহ্নিত)। আপনি যদি জেনারেট করা আইডি পছন্দ না করেন, তাহলে আপনি অন্য একটি এলোমেলো আইডি তৈরি করতে পারেন। বিকল্পভাবে, আপনি নিজের চেষ্টা করতে পারেন, এবং এটি উপলব্ধ কিনা দেখতে পারেন। এই ধাপের পরে এটি পরিবর্তন করা যাবে না এবং প্রকল্পের সময়কালের জন্য থাকে।
  • আপনার তথ্যের জন্য, একটি তৃতীয় মান আছে, একটি প্রকল্প নম্বর , যা কিছু API ব্যবহার করে। ডকুমেন্টেশনে এই তিনটি মান সম্পর্কে আরও জানুন।

বিলিং সেটআপ

এর পরে, আপনাকে বিলিং ব্যবহারকারী নির্দেশিকা পরিচালনা করতে হবে এবং ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে। নতুন Google ক্লাউড ব্যবহারকারীরা $300 USD বিনামূল্যের ট্রায়াল প্রোগ্রামের জন্য যোগ্য৷ এই টিউটোরিয়ালের বাইরে বিলিং এড়াতে, আপনি "ধাপ 9 পরিষ্কার করা" অনুসরণ করে কোডল্যাবের শেষে স্প্যানার ইনস্ট্যান্স বন্ধ করতে পারেন।

ক্লাউড শেল শুরু করুন

যদিও Google ক্লাউড আপনার ল্যাপটপ থেকে দূরবর্তীভাবে পরিচালিত হতে পারে, এই কোডল্যাবে আপনি Google ক্লাউড শেল ব্যবহার করবেন, একটি কমান্ড লাইন পরিবেশ যা ক্লাউডে চলছে।

Google ক্লাউড কনসোল থেকে, উপরের ডানদিকে টুলবারে ক্লাউড শেল আইকনে ক্লিক করুন:

55efc1aaa7a4d3ad.png

পরিবেশের ব্যবস্থা করতে এবং সংযোগ করতে এটি শুধুমাত্র কয়েক মুহূর্ত নিতে হবে। এটি সমাপ্ত হলে, আপনি এই মত কিছু দেখতে হবে:

7ffe5cbb04455448.png

এই ভার্চুয়াল মেশিনটি আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুল দিয়ে লোড করা হয়েছে। এটি একটি ক্রমাগত 5GB হোম ডিরেক্টরি অফার করে এবং Google ক্লাউডে চলে, যা নেটওয়ার্ক কর্মক্ষমতা এবং প্রমাণীকরণকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার সমস্ত কাজ একটি ব্রাউজারে করা যেতে পারে। আপনার কিছু ইন্সটল করার দরকার নেই।

পরবর্তী আপ

এর পরে, আপনি ক্যাসান্দ্রা ক্লাস্টার স্থাপন করবেন।

3. ক্যাসান্দ্রা ক্লাস্টার স্থাপন করুন (উৎস)

এই কোডল্যাবের জন্য, আমরা কম্পিউট ইঞ্জিনে একটি একক-নোড ক্যাসান্দ্রা ক্লাস্টার সেট আপ করব।

1. ক্যাসান্দ্রার জন্য একটি GCE VM তৈরি করুন৷

একটি উদাহরণ তৈরি করতে, gcloud compute instances create কমান্ডটি ব্যবহার করুন।

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. ক্যাসান্ড্রা ইনস্টল করুন

# 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. একটি কীস্পেস এবং টেবিল তৈরি করুন

আমরা একটি ব্যবহারকারী টেবিল উদাহরণ ব্যবহার করব এবং "বিশ্লেষণ" নামে একটি কীস্পেস তৈরি করব।

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

cqlsh এর ভিতরে:

-- Create keyspace (adjust replication for production)
CREATE KEYSPACE analytics WITH replication = {'class':'SimpleStrategy', 'replication_factor':1};

-- Use the keyspace
USE analytics;

-- Create the users table
CREATE TABLE users (
    id  int PRIMARY KEY,
    active  boolean,
    username  text,
);

-- Exit cqlsh
EXIT;

SSH সেশন খোলা রাখুন বা এই VM (হোস্টনেম -I) এর IP ঠিকানাটি নোট করুন।

পরবর্তী আপ

এর পরে, আপনি একটি ক্লাউড স্প্যানার ইনস্ট্যান্স এবং ডেটাবেস সেটআপ করবেন।

4. একটি স্প্যানার উদাহরণ এবং ডাটাবেস তৈরি করুন (লক্ষ্য)

স্প্যানারে, একটি উদাহরণ হল কম্পিউটিং এবং স্টোরেজ সংস্থানগুলির একটি ক্লাস্টার যা এক বা একাধিক স্প্যানার ডাটাবেস হোস্ট করে। এই কোডল্যাবের জন্য একটি স্প্যানার ডাটাবেস হোস্ট করতে আপনার কমপক্ষে 1টি উদাহরণের প্রয়োজন হবে৷

জিক্লাউড এসডিকে সংস্করণ পরীক্ষা করুন

একটি উদাহরণ তৈরি করার আগে, নিশ্চিত করুন যে Google ক্লাউড শেলের gcloud SDK প্রয়োজনীয় সংস্করণে আপডেট করা হয়েছে - gcloud SDK 493.0.0 । আপনি নীচের কমান্ড অনুসরণ করে আপনার gcloud SDK সংস্করণ খুঁজে পেতে পারেন।

$ gcloud version | grep Google

এখানে একটি উদাহরণ আউটপুট:

Google Cloud SDK 489.0.0

আপনি যে সংস্করণটি ব্যবহার করছেন তা যদি প্রয়োজনীয় 493.0.0 সংস্করণের (পূর্ববর্তী উদাহরণে 489.0.0 ) এর চেয়ে আগের হয় তবে আপনাকে নিম্নলিখিত কমান্ডটি চালিয়ে আপনার Google ক্লাউড SDK আপগ্রেড করতে হবে:

sudo apt-get update \
  && sudo apt-get --only-upgrade install google-cloud-cli-anthoscli google-cloud-cli-cloud-run-proxy kubectl google-cloud-cli-skaffold google-cloud-cli-cbt google-cloud-cli-docker-credential-gcr google-cloud-cli-spanner-migration-tool google-cloud-cli-cloud-build-local google-cloud-cli-pubsub-emulator google-cloud-cli-app-engine-python google-cloud-cli-kpt google-cloud-cli-bigtable-emulator google-cloud-cli-datastore-emulator google-cloud-cli-spanner-emulator google-cloud-cli-app-engine-go google-cloud-cli-app-engine-python-extras google-cloud-cli-config-connector google-cloud-cli-package-go-module google-cloud-cli-istioctl google-cloud-cli-anthos-auth google-cloud-cli-gke-gcloud-auth-plugin google-cloud-cli-app-engine-grpc google-cloud-cli-kubectl-oidc google-cloud-cli-terraform-tools google-cloud-cli-nomos google-cloud-cli-local-extract google-cloud-cli-firestore-emulator google-cloud-cli-harbourbridge google-cloud-cli-log-streaming google-cloud-cli-minikube google-cloud-cli-app-engine-java google-cloud-cli-enterprise-certificate-proxy google-cloud-cli

স্প্যানার API সক্ষম করুন

ক্লাউড শেলের ভিতরে, নিশ্চিত করুন যে আপনার প্রকল্প আইডি সেটআপ করা আছে। বর্তমানে কনফিগার করা প্রকল্প আইডি খুঁজে পেতে নীচের প্রথম কমান্ডটি ব্যবহার করুন। ফলাফল প্রত্যাশিত না হলে, নীচের দ্বিতীয় কমান্ডটি সঠিকটি সেট করে।

gcloud config get-value project
gcloud config set project [YOUR-DESIRED-PROJECT-ID]

us-central1 এ আপনার ডিফল্ট অঞ্চল কনফিগার করুন। স্প্যানার আঞ্চলিক কনফিগারেশন দ্বারা সমর্থিত একটি ভিন্ন অঞ্চলে এটিকে নির্দ্বিধায় পরিবর্তন করুন৷

gcloud config set compute/region us-central1

স্প্যানার API সক্ষম করুন:

gcloud services enable spanner.googleapis.com

স্প্যানার উদাহরণ তৈরি করুন

এই বিভাগে, আপনি একটি ফ্রি ট্রায়াল ইনস্ট্যান্স বা একটি প্রভিশনড ইনস্ট্যান্স তৈরি করবেন। এই কোডল্যাব জুড়ে, স্প্যানার ক্যাসান্দ্রা অ্যাডাপ্টার ইনস্ট্যান্স আইডিটি হল cassandra-adapter-demo , export কমান্ড লাইন ব্যবহার করে SPANNER_INSTANCE_ID ভেরিয়েবল হিসাবে সেট করা হয়েছে। ঐচ্ছিকভাবে, আপনি নিজের ইন্সট্যান্স আইডি নাম বেছে নিতে পারেন।

একটি ফ্রি-ট্রায়াল স্প্যানার ইনস্ট্যান্স তৈরি করুন

একটি স্প্যানার 90-দিনের বিনামূল্যের ট্রায়াল ইনস্ট্যান্স একটি Google অ্যাকাউন্ট সহ যে কেউ তাদের প্রকল্পে ক্লাউড বিলিং সক্ষম করা আছে তাদের জন্য উপলব্ধ৷ আপনি চার্জ করা হবে না যদি না আপনি আপনার বিনামূল্যের ট্রায়াল ইনস্ট্যান্সকে একটি প্রদত্ত দৃষ্টান্তে আপগ্রেড করতে চান৷ স্প্যানার ক্যাসান্দ্রা অ্যাডাপ্টার বিনামূল্যে ট্রায়াল উদাহরণে সমর্থিত। যোগ্য হলে, ক্লাউড শেল খুলে এই কমান্ডটি চালিয়ে একটি বিনামূল্যের ট্রায়ালের উদাহরণ তৈরি করুন:

export SPANNER_INSTANCE_ID=cassandra-adapter-demo
export SPANNER_REGION=regional-us-central1
gcloud spanner instances create $SPANNER_INSTANCE_ID \
  --config=$SPANNER_REGION \
  --instance-type=free-instance \
  --description="Spanner Cassandra Adapter demo"

কমান্ড আউটপুট:

$ gcloud spanner instances create $SPANNER_INSTANCE_ID \
  --config=$SPANNER_REGION \
  --instance-type=free-instance \
  --description="Spanner Cassandra Adapter demo"
Creating instance...done.

ডাটাবেস তৈরি করুন

একবার আপনার দৃষ্টান্ত চালু হলে, আপনি ডাটাবেস তৈরি করতে পারেন। ডাটাবেস হল যেখানে আপনি আপনার স্কিমা সংজ্ঞায়িত করেন। আপনি ডাটাবেসে কার অ্যাক্সেস আছে তা নিয়ন্ত্রণ করতে পারেন, কাস্টম এনক্রিপশন সেট আপ করতে পারেন, অপ্টিমাইজার কনফিগার করতে পারেন এবং ধরে রাখার সময়কাল সেট করতে পারেন।

SPANNER_INSTANCE_ID আইডি দিয়ে ডাটাবেস তৈরি করা হবে।

একটি ডাটাবেস তৈরি করতে, gcloud কমান্ড লাইন টুল ব্যবহার করুন:

export SPANNER_DATABASE=analytics
gcloud spanner databases create $SPANNER_DATABASE \
 --instance=$SPANNER_INSTANCE_ID

কমান্ড আউটপুট:

$ gcloud spanner databases create $SPANNER_DATABASE \
 --instance=$SPANNER_INSTANCE_ID
Creating database...done.

5. ক্যাসান্দ্রা স্কিমা এবং ডেটা মডেল স্প্যানারে স্থানান্তর করুন

ক্যাসান্ড্রা ডাটাবেস থেকে স্প্যানারে ডেটা স্থানান্তরের প্রাথমিক এবং গুরুত্বপূর্ণ ধাপে স্প্যানারের কাঠামোগত এবং ডেটা টাইপ প্রয়োজনীয়তার সাথে সারিবদ্ধ করার জন্য বিদ্যমান ক্যাসান্দ্রা স্কিমাকে রূপান্তর করা জড়িত।

এই জটিল স্কিমা মাইগ্রেশন প্রক্রিয়াটিকে স্ট্রীমলাইন করার জন্য, স্প্যানার একটি মূল্যবান ওপেন-সোর্স টুল সরবরাহ করে যা স্প্যানার ক্যাসান্দ্রা স্কিমা টুল নামে পরিচিত।

স্প্যানার ক্যাসান্দ্রা স্কিমা টুল

স্প্যানার ক্যাসান্ড্রা স্কিমা টুল হল স্প্যানার মূল্যায়ন এবং স্কিমা স্থানান্তরের জন্য একটি স্বতন্ত্র ওপেন সোর্স টুল। এটির প্রাথমিক কাজ হল স্বয়ংক্রিয়ভাবে একটি বিদ্যমান ক্যাসান্দ্রা স্কিমায় পাওয়া সংজ্ঞাগুলির উপর ভিত্তি করে একটি স্প্যানার স্কিমা তৈরি করা। ক্যাসান্ড্রা টেবিলের কাঠামো, ডেটার ধরন এবং প্রাথমিক কী কনফিগারেশন বিশ্লেষণ করে, টুলটি সমতুল্য স্প্যানার টেবিল সংজ্ঞা তৈরি করে, যা সাধারণত স্কিমা অনুবাদে জড়িত ম্যানুয়াল প্রচেষ্টাকে উল্লেখযোগ্যভাবে হ্রাস করে।

ক্যাসান্দ্রা স্কিমা রপ্তানি করুন

স্প্যানার ক্যাসান্দ্রা স্কিমা টুল ব্যবহার করার আগে, প্রথম কংক্রিট পদক্ষেপ হল আপনার বর্তমান ক্যাসান্দ্রা ক্লাস্টার থেকে স্কিমা বের করা। এটি cqlsh মাধ্যমে আপনার বিদ্যমান ক্যাসান্দ্রা ক্লাস্টারের সাথে সংযোগ করে এবং ক্যাসান্দ্রা থেকে স্কিমা রপ্তানি করে অর্জন করা যেতে পারে:

cqlsh [IP] "-e DESC SCHEMA" > orig_schema.cql

এই কমান্ডে, [IP] আপনার ক্যাসান্ড্রা ক্লাস্টারের একটি নোডের IP ঠিকানা বা হোস্টনাম দিয়ে প্রতিস্থাপন করা উচিত। কমান্ডের -e DESC SCHEMA অংশটি cqlsh কে ক্যাসান্ড্রা ক্লাস্টারের সম্পূর্ণ স্কিমা বর্ণনা করার নির্দেশ দেয়। এই কমান্ডের আউটপুট, যাতে CREATE KEYSPACE এবং CREATE TABLE স্টেটমেন্ট থাকে, তারপর orig_schema.cql নামের একটি ফাইলে রিডাইরেক্ট করা হয়।

এই orig_schema.cql ফাইলের বিষয়বস্তু মূলত আপনার ক্যাসান্দ্রা স্কিমার একটি পাঠ্য ব্লুপ্রিন্ট উপস্থাপন করবে। orig_schema.cql ফাইলের বিষয়বস্তু এইরকম হওয়া উচিত:

CREATE KEYSPACE analytics WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'}  AND durable_writes = true;

CREATE TABLE analytics.users (
    id int PRIMARY KEY,
    active boolean,
    username text
) WITH additional_write_policy = '99p'
    AND allow_auto_snapshot = true
    AND bloom_filter_fp_chance = 0.01
    AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
    AND cdc = false
    AND comment = ''
    AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
    AND compression = {'chunk_length_in_kb': '16', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
    AND memtable = 'default'
    AND crc_check_chance = 1.0
    AND default_time_to_live = 0
    AND extensions = {}
    AND gc_grace_seconds = 864000
    AND incremental_backups = true
    AND max_index_interval = 2048
    AND memtable_flush_period_in_ms = 0
    AND min_index_interval = 128
    AND read_repair = 'BLOCKING'
    AND speculative_retry = '99p';

সংগ্রহস্থল ক্লোন করুন

স্প্যানার ক্যাসান্ড্রা স্কিমা টুল ব্যবহার করতে, পরবর্তী ধাপে টুলের সোর্স কোড প্রাপ্ত করা জড়িত। এটি গিটহাবে হোস্ট করা সংগ্রহস্থল ক্লোন করে করা হয়। ক্লাউড শেলে নিম্নলিখিত কমান্ডটি টাইপ করে গিটহাব থেকে স্প্যানার ক্যাসান্ড্রা স্কিমা টুলটি ক্লোন করুন:

git clone https://github.com/cloudspannerecosystem/spanner-cassandra-schema-tool.git

তারপরে "স্প্যানার-ক্যাসান্ড্রা-স্কিমা-টুল" ডিরেক্টরিতে ডিরেক্টরি পরিবর্তন করুন যেখানে আপনি কমান্ডটি চালাবেন।

cd spanner-cassandra-schema-tool

নির্ভরতা ইনস্টল করুন

স্প্যানার ক্যাসান্দ্রা স্কিমা টুলটি গো প্রোগ্রামিং ভাষায় লেখা। টুল ফাংশন সঠিকভাবে নিশ্চিত করতে, এটি নির্দিষ্ট বাহ্যিক Go মডিউল (লাইব্রেরি) উপর নির্ভর করে। আপনি টুলটি চালানোর আগে এই নির্ভরতাগুলি ডাউনলোড এবং পরিচালনা করতে হবে। spanner-cassandra-schema-tool ডিরেক্টরির মধ্যে, নিম্নলিখিত কমান্ডটি চালান:

go mod download

Google ক্লাউড শংসাপত্র সেট আপ করুন৷

এই টুলটি স্প্যানার ডাটাবেসের সাথে সংযোগ করার জন্য শংসাপত্রের উৎস হিসাবে অ্যাপ্লিকেশন ডিফল্ট শংসাপত্র (ADC) ব্যবহার করে। আপনার পরিষেবা অ্যাকাউন্ট কী ফাইলের পাথে GOOGLE_APPLICATION_CREDENTIALS পরিবেশ পরিবর্তনশীল সেট করুন৷

export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-file.json"

/path/to/your/service-account-file.json আপনার ডাউনলোড করা সার্ভিস অ্যাকাউন্ট কী ফাইলের প্রকৃত পাথ দিয়ে প্রতিস্থাপন করুন। এই এনভায়রনমেন্ট ভেরিয়েবল সেট করা নিশ্চিত করে যে স্প্যানার ক্যাসান্ড্রা স্কিমা টুলটি আপনার Google ক্লাউড প্রোজেক্ট এবং স্প্যানার ইনস্ট্যান্সের সাথে নিরাপদে প্রমাণীকরণ করতে পারে।

ব্যবহার

নির্ভরতাগুলি ইনস্টল হয়ে গেলে এবং Google ক্লাউড শংসাপত্রগুলি কনফিগার হয়ে গেলে, আপনি রপ্তানি করা ক্যাসান্দ্রা স্কিমা ফাইল থেকে স্প্যানার স্কিমা তৈরি করতে স্প্যানার ক্যাসান্দ্রা স্কিমা টুল চালানোর জন্য প্রস্তুত৷ আপনার টার্মিনাল বা ক্লাউড শেলের spanner-cassandra-schema-tool ডিরেক্টরিতে নেভিগেট করুন এবং নিম্নলিখিত go run কমান্ডটি চালান:

go run schema_converter.go \
    --project $PROJECT_ID \
    --instance $SPANNER_INSTANCE_ID \
    --database $SPANNER_DATABASE \
    --cql orig_schema.cql \
    --dry-run

--dry-run বিকল্পের সাথে চলমান স্কিমা তৈরি করে। টুল দ্বারা উত্পন্ন ডেটা টাইপ ম্যাপিং এবং প্রাথমিক কী কলামগুলি পর্যালোচনা এবং পরিমার্জন করুন। নিশ্চিত করুন যে স্প্যানার ডেটা টাইপগুলি সংশ্লিষ্ট ক্যাসান্ড্রা ডাটাবেসের প্রকারের পরিসীমা, নির্ভুলতা এবং শব্দার্থকে সঠিকভাবে উপস্থাপন করে।

এই টুলটি ক্যাসান্দ্রা প্রকারগুলিকে স্প্যানার প্রকারগুলিকে মানচিত্র করে যেমন সমর্থিত ক্যাসান্দ্রা ডেটা প্রকারগুলিতে নথিভুক্ত করা হয়েছে৷

কমান্ড আউটপুট এই মত কিছু দেখতে হবে:

.....

[Converted Spanner statement]
CREATE TABLE users (
 id INT64 NOT NULL OPTIONS (cassandra_type = 'int'),
 active BOOL OPTIONS (cassandra_type = 'boolean'),
 username STRING(MAX) OPTIONS (cassandra_type = 'text'),
) PRIMARY KEY (id)
----------------------------------------------
Writing converted Spanner schema to: schema.txt
Dry run enabled. Skipping schema execution.
Schema conversion completed!

যদি আপনি স্পেনারে প্রয়োগের স্কিমা স্বয়ংক্রিয়ভাবে প্রয়োগ করতে চান তবে আপনার --dry-run বিকল্প ছাড়াই cli চালানো উচিত।

7B2FCQSrtHfveuc.png

Google ক্লাউড কনসোলে যাচাই করুন যে টেবিল এবং মেটাডেটা টেবিল ক্লাউড স্প্যানার ডাটাবেসে বিদ্যমান।

9. আপনার আবেদনটি স্প্যানারে নির্দেশ করুন (কাটওভার)

মাইগ্রেশন পর্বের পরে আপনার ডেটার নির্ভুলতা এবং অখণ্ডতা সতর্কতার সাথে যাচাই করার পরে, মূল পদক্ষেপটি হল আপনার উত্তরাধিকারী ক্যাসান্ড্রা সিস্টেম থেকে নতুন জনবহুল Google ক্লাউড স্প্যানার ডাটাবেসে আপনার অ্যাপ্লিকেশনটির অপারেশনাল ফোকাস স্থানান্তর করা। এই জটিল রূপান্তর সময়টিকে সাধারণত " কাটওভার " বলা হয়।

কাটওভার ফেজ সেই মুহূর্তটিকে চিহ্নিত করে যখন লাইভ অ্যাপ্লিকেশন ট্র্যাফিক মূল ক্যাসান্ড্রা ক্লাস্টার থেকে দূরে পুনঃনির্দেশিত হয় এবং সরাসরি শক্তিশালী এবং মাপযোগ্য স্প্যানার পরিকাঠামোর সাথে সংযুক্ত হয়। এই রূপান্তরটি প্রদর্শন করে যে সহজে অ্যাপ্লিকেশনগুলি স্প্যানারের শক্তিকে কাজে লাগাতে পারে, বিশেষ করে যখন স্প্যানার ক্যাসান্ড্রা ইন্টারফেস ব্যবহার করা হয়।

স্প্যানার ক্যাসান্ড্রা ইন্টারফেসের সাথে, কাটওভার প্রক্রিয়াটি সুগম করা হয়েছে। এটি প্রাথমিকভাবে সমস্ত ডেটা ইন্টারঅ্যাকশনের জন্য নেটিভ স্প্যানার ক্যাসান্ড্রা ক্লায়েন্ট ব্যবহার করার জন্য আপনার ক্লায়েন্ট অ্যাপ্লিকেশনগুলিকে কনফিগার করা জড়িত। আপনার ক্যাসান্ড্রা (অরিজিন) ডাটাবেসের সাথে যোগাযোগ করার পরিবর্তে, আপনার অ্যাপ্লিকেশনগুলি নির্বিঘ্নে স্প্যানার (লক্ষ্য) এ সরাসরি ডেটা পড়া এবং লেখা শুরু করবে। সংযোগের এই মৌলিক পরিবর্তনটি সাধারণত SpannerCqlSessionBuilder ব্যবহারের মাধ্যমে অর্জন করা হয়, স্প্যানার ক্যাসান্ড্রা ক্লায়েন্ট লাইব্রেরির একটি মূল উপাদান যা আপনার স্প্যানার উদাহরণের সাথে সংযোগ স্থাপনের সুবিধা দেয়। এটি কার্যকরভাবে আপনার অ্যাপ্লিকেশানের সমগ্র ডেটা ট্রাফিক প্রবাহকে স্প্যানারে পুনরায় রুট করে।

জাভা অ্যাপ্লিকেশনগুলির জন্য ইতিমধ্যেই cassandra-java-driver লাইব্রেরি ব্যবহার করছে, স্প্যানার ক্যাসান্দ্রা জাভা ক্লায়েন্টকে একীভূত করার জন্য CqlSession প্রারম্ভিকতায় শুধুমাত্র ছোটখাটো পরিবর্তন প্রয়োজন।

গুগল-ক্লাউড-স্প্যানার-ক্যাসান্ড্রা নির্ভরতা পাওয়া

স্প্যানার ক্যাসান্দ্রা ক্লায়েন্ট ব্যবহার শুরু করতে, আপনাকে প্রথমে আপনার প্রকল্পে এর নির্ভরতা অন্তর্ভুক্ত করতে হবে। google-cloud-spanner-cassandra artifacts com.google.cloud গ্রুপ আইডির অধীনে মাভেন সেন্ট্রালে প্রকাশিত হয়েছে। আপনার জাভা প্রকল্পে বিদ্যমান <dependencies> বিভাগের অধীনে নিম্নলিখিত নতুন নির্ভরতা যোগ করুন। আপনি কীভাবে google-cloud-spanner-cassandra নির্ভরতা অন্তর্ভুক্ত করবেন তার একটি সরলীকৃত উদাহরণ এখানে দেওয়া হল:

<!-- native Spanner Cassandra Client -->
<dependencies>
 
<dependency>
   
<groupId>com.google.cloud</groupId>
   
<artifactId>google-cloud-spanner-cassandra</artifactId>
   
<version>0.2.0</version>
 
</dependency>
</dependencies>

স্প্যানারে সংযোগ করতে সংযোগ কনফিগারেশন পরিবর্তন করুন

একবার আপনি প্রয়োজনীয় নির্ভরতা যোগ করলে, পরবর্তী ধাপ হল স্প্যানার ডাটাবেসের সাথে সংযোগ করতে আপনার সংযোগ কনফিগারেশন পরিবর্তন করা।

ক্যাসান্ড্রা ক্লাস্টারের সাথে ইন্টারঅ্যাক্ট করা একটি সাধারণ অ্যাপ্লিকেশন প্রায়শই একটি সংযোগ স্থাপন করতে নিম্নলিখিতগুলির মতো কোড ব্যবহার করে:

CqlSession session = CqlSession.builder()
       
.addContactPoint(new InetSocketAddress("127.0.0.1", 9042))
       
.withLocalDatacenter("datacenter1")
       
.withAuthCredentials("username", "password")
       
.build();

এই সংযোগটি স্প্যানারে পুনঃনির্দেশিত করতে, আপনাকে আপনার CqlSession সৃষ্টির যুক্তি পরিবর্তন করতে হবে। cassandra-java-driver থেকে সরাসরি স্ট্যান্ডার্ড CqlSessionBuilder ব্যবহার করার পরিবর্তে, আপনি Spanner Cassandra ক্লায়েন্ট দ্বারা প্রদত্ত SpannerCqlSession.builder() ব্যবহার করবেন। আপনার সংযোগ কোডটি কীভাবে পরিবর্তন করবেন তার একটি উদাহরণমূলক উদাহরণ এখানে দেওয়া হল:

String databaseUri = "projects/<your-gcp-project>/instances/<your-spanner-instance>/databases/<your-spanner-database>";

CqlSession session = SpannerCqlSession.builder()
       
.setDatabaseUri(databaseUri)
       
.addContactPoint(new InetSocketAddress("localhost", 9042))
       
.withLocalDatacenter("datacenter1")
       
.build();

SpannerCqlSession.builder() ব্যবহার করে CqlSession চালু করে এবং সঠিক databaseUri প্রদান করে, আপনার অ্যাপ্লিকেশনটি এখন আপনার লক্ষ্য স্প্যানার ডাটাবেসের সাথে স্প্যানার ক্যাসান্দ্রা ক্লায়েন্টের মাধ্যমে একটি সংযোগ স্থাপন করবে। এই গুরুত্বপূর্ণ পরিবর্তনটি নিশ্চিত করে যে আপনার অ্যাপ্লিকেশন দ্বারা সম্পাদিত পরবর্তী সমস্ত পঠন এবং লেখার ক্রিয়াকলাপগুলি স্প্যানার দ্বারা পরিচালিত হবে এবং পরিবেশন করা হবে, কার্যকরভাবে প্রাথমিক কাটওভারটি সম্পূর্ণ করবে। এই মুহুর্তে, আপনার অ্যাপ্লিকেশনটি প্রত্যাশিত হিসাবে কাজ করা চালিয়ে যাওয়া উচিত, এখন স্প্যানারের মাপযোগ্যতা এবং নির্ভরযোগ্যতা দ্বারা চালিত।

আন্ডার দ্য হুড: কিভাবে স্প্যানার ক্যাসান্দ্রা ক্লায়েন্ট কাজ করে

স্প্যানার ক্যাসান্দ্রা ক্লায়েন্ট একটি স্থানীয় টিসিপি প্রক্সি হিসাবে কাজ করে, ড্রাইভার বা ক্লায়েন্ট টুল দ্বারা প্রেরিত কাঁচা ক্যাসান্ড্রা প্রোটোকল বাইটগুলিকে বাধা দেয়। এরপরে এটি স্প্যানারের সাথে যোগাযোগের জন্য জিআরপিসি বার্তাগুলিতে প্রয়োজনীয় মেটাডেটা সহ এই বাইটগুলি মোড়ানো। স্প্যানারের প্রতিক্রিয়াগুলি ক্যাসান্দ্রা তারের ফর্ম্যাটে আবার অনুবাদ করা হয় এবং উত্সাহী ড্রাইভার বা সরঞ্জামে ফেরত পাঠানো হয়।

26d34akkbhcmffe.png

একবার আপনি আত্মবিশ্বাসী হয়ে গেলে যে স্প্যানার সমস্ত ট্র্যাফিক সঠিকভাবে পরিবেশন করছে, আপনি শেষ পর্যন্ত করতে পারেন:

  • দ্বৈত লেখা বন্ধ করুন।
  • মূল ক্যাসান্দ্রা ক্লাস্টারটি ডিকোমিশন।

10. পরিষ্কার করা (al চ্ছিক)

পরিষ্কার করার জন্য, কেবল ক্লাউড কনসোলের স্প্যানার বিভাগে যান এবং cassandra-adapter-demo উদাহরণটি মুছুন আমরা কোডল্যাবটিতে তৈরি করেছি।

76D34AKKJRCMFMR.PNG

ক্যাসান্দ্রা ডাটাবেস মুছুন (যদি স্থানীয়ভাবে ইনস্টল করা হয় বা স্থির থাকে)

আপনি যদি এখানে তৈরি একটি গণনা ইঞ্জিন ভিএম এর বাইরে ক্যাসান্দ্রা ইনস্টল করেন তবে ডেটা অপসারণ করতে বা ক্যাসান্দ্রা আনইনস্টল করার জন্য উপযুক্ত পদক্ষেপগুলি অনুসরণ করুন।

11. অভিনন্দন!

এরপর কি?

,
স্প্যানার ক্যাসান্দ্রা অ্যাডাপ্টার দিয়ে শুরু করা

এই কোডল্যাব সম্পর্কে

subjectমে ২১, ২০২৫-এ শেষবার আপডেট করা হয়েছে
account_circleMayur Kale, Vardhan Thigle-এর লেখা

1. ভূমিকা

স্প্যানার একটি সম্পূর্ণরূপে পরিচালিত, অনুভূমিকভাবে স্কেলযোগ্য, বিশ্বব্যাপী বিতরণ করা ডাটাবেস পরিষেবা যা সম্পর্কযুক্ত এবং অ-সম্পর্কিত সম্পর্কিত কাজের চাপ উভয়ের জন্যই দুর্দান্ত।

স্প্যানারের ক্যাসান্দ্রা ইন্টারফেস আপনাকে স্প্যানারের সম্পূর্ণরূপে পরিচালিত, স্কেলযোগ্য এবং পরিচিত ক্যাসান্দ্রা সরঞ্জাম এবং সিনট্যাক্স ব্যবহার করে অত্যন্ত উপলভ্য অবকাঠামোগুলির সুবিধা নিতে দেয়।

আপনি কি শিখবেন

  • কীভাবে একটি স্প্যানার উদাহরণ এবং ডাটাবেস সেটআপ করবেন।
  • কীভাবে আপনার ক্যাসান্দ্রা স্কিমা এবং ডেটা মডেল রূপান্তর করবেন।
  • আগত ডেটার জন্য ডুয়াল রাইটিংগুলি কীভাবে স্থাপন এবং কনফিগার করবেন।
  • কীভাবে আপনার historical তিহাসিক ডেটা ক্যাসান্দ্রা থেকে স্প্যানারে রফতানি করবেন।
  • মাইগ্রেশন প্রক্রিয়া জুড়ে ডেটা অখণ্ডতা নিশ্চিত করতে কীভাবে ডেটা বৈধকরণ করবেন।
  • কীভাবে আপনার অ্যাপ্লিকেশনটি ক্যাসান্দ্রার পরিবর্তে স্প্যানারে নির্দেশ করবেন।

আপনি কি প্রয়োজন হবে

  • একটি গুগল ক্লাউড প্রকল্প যা একটি বিলিং অ্যাকাউন্টের সাথে সংযুক্ত।
  • gcloud সিএলআই ইনস্টল এবং কনফিগার করা সহ কোনও মেশিনে অ্যাক্সেস করুন বা গুগল ক্লাউড শেল ব্যবহার করুন।
  • একটি ওয়েব ব্রাউজার, যেমন ক্রোম বা ফায়ারফক্স

2. সেটআপ এবং প্রয়োজনীয়তা

একটি জিসিপি প্রকল্প তৈরি করুন

গুগল ক্লাউড কনসোলে সাইন ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা একটি বিদ্যমান একটি পুনরায় ব্যবহার করুন। আপনার যদি ইতিমধ্যে কোনও জিমেইল বা গুগল ওয়ার্কস্পেস অ্যাকাউন্ট না থাকে তবে আপনাকে অবশ্যই একটি তৈরি করতে হবে।

fbef9caa1602edd0.png

A99B7ACE416376C4.png

5e3ff691252acf41.png

  • প্রকল্পের নামটি এই প্রকল্পের অংশগ্রহণকারীদের প্রদর্শনের নাম। এটি একটি চরিত্রের স্ট্রিং যা গুগল এপিআই দ্বারা ব্যবহৃত হয় না। আপনি সর্বদা এটি আপডেট করতে পারেন।
  • প্রকল্পের আইডিটি সমস্ত গুগল ক্লাউড প্রকল্পগুলিতে অনন্য এবং এটি অপরিবর্তনীয় (এটি সেট করার পরে পরিবর্তন করা যায় না)। ক্লাউড কনসোল অটো-জেনারেট করে একটি অনন্য স্ট্রিং; সাধারণত আপনি এটি কি যত্নশীল না। বেশিরভাগ কোডল্যাবগুলিতে, আপনাকে আপনার প্রকল্পের আইডি (সাধারণত PROJECT_ID হিসাবে চিহ্নিত) রেফারেন্স করতে হবে। আপনি যদি উত্পন্ন আইডি পছন্দ না করেন তবে আপনি অন্য একটি এলোমেলো উত্পন্ন করতে পারেন। বিকল্পভাবে, আপনি নিজের চেষ্টা করতে পারেন এবং এটি উপলব্ধ কিনা তা দেখতে পারেন। এই পদক্ষেপের পরে এটি পরিবর্তন করা যায় না এবং প্রকল্পের সময়কালের জন্য থেকে যায়।
  • আপনার তথ্যের জন্য, একটি তৃতীয় মান রয়েছে, একটি প্রকল্প নম্বর , যা কিছু এপিআই ব্যবহার করে। ডকুমেন্টেশনে এই তিনটি মান সম্পর্কে আরও জানুন।

বিলিং সেটআপ

এরপরে, আপনাকে বিলিং ব্যবহারকারী গাইড পরিচালনা করতে এবং ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে। নতুন গুগল ক্লাউড ব্যবহারকারীরা $ 300 মার্কিন ডলার ফ্রি ট্রায়াল প্রোগ্রামের জন্য যোগ্য। এই টিউটোরিয়ালটি ছাড়িয়ে বিলিং ব্যয় এড়াতে, আপনি "ধাপ 9 পরিষ্কার আপ" অনুসরণ করে কোডল্যাবের শেষে স্প্যানার উদাহরণটি বন্ধ করতে পারেন।

ক্লাউড শেল শুরু করুন

গুগল ক্লাউড আপনার ল্যাপটপ থেকে দূরবর্তীভাবে পরিচালিত হতে পারে, এই কোডল্যাবটিতে আপনি গুগল ক্লাউড শেল ব্যবহার করবেন, মেঘে চলমান একটি কমান্ড লাইন পরিবেশ।

গুগল ক্লাউড কনসোল থেকে, উপরের ডান সরঞ্জামদণ্ডে ক্লাউড শেল আইকনটি ক্লিক করুন:

55EFC1AAA7A4D3AD.PNG

পরিবেশের সাথে বিধান এবং সংযোগ স্থাপনে এটি কেবল কয়েক মুহুর্ত সময় নেওয়া উচিত। এটি শেষ হয়ে গেলে আপনার এই জাতীয় কিছু দেখতে হবে:

7ffe5cbb04455448.png

এই ভার্চুয়াল মেশিনটি আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুল দিয়ে লোড করা হয়েছে। এটি একটি অবিরাম 5 জিবি হোম ডিরেক্টরি সরবরাহ করে এবং গুগল ক্লাউডে চলে, নেটওয়ার্কের কার্যকারিতা এবং প্রমাণীকরণকে ব্যাপকভাবে বাড়িয়ে তোলে। এই কোডল্যাবের আপনার সমস্ত কাজ একটি ব্রাউজারের মধ্যে করা যেতে পারে। আপনার কিছু ইনস্টল করার দরকার নেই।

পরবর্তী আপ

এরপরে, আপনি ক্যাসান্দ্রা ক্লাস্টার স্থাপন করবেন।

3. ক্যাসান্দ্রা ক্লাস্টার স্থাপন করুন (উত্স)

এই কোডল্যাবের জন্য, আমরা গণনা ইঞ্জিনে একটি একক নোড ক্যাসান্দ্রা ক্লাস্টার সেট আপ করব।

1। ক্যাসান্দ্রার জন্য একটি জিসিই ভিএম তৈরি করুন

একটি উদাহরণ তৈরি করতে, gcloud compute instances create

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। ক্যাসান্দ্রা ইনস্টল করুন

# 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। একটি কীস্পেস এবং টেবিল তৈরি করুন

আমরা একটি ব্যবহারকারীর টেবিল উদাহরণ ব্যবহার করব এবং "অ্যানালিটিক্স" নামে একটি কীস্পেস তৈরি করব।

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

সিকিউএলএসএইচ এর ভিতরে:

-- Create keyspace (adjust replication for production)
CREATE KEYSPACE analytics WITH replication = {'class':'SimpleStrategy', 'replication_factor':1};

-- Use the keyspace
USE analytics;

-- Create the users table
CREATE TABLE users (
    id  int PRIMARY KEY,
    active  boolean,
    username  text,
);

-- Exit cqlsh
EXIT;

এসএসএইচ সেশনটি খোলা ছেড়ে দিন বা এই ভিএম (হোস্টনাম -আই) এর আইপি ঠিকানাটি নোট করুন।

পরবর্তী আপ

এরপরে, আপনি একটি ক্লাউড স্প্যানার উদাহরণ এবং ডাটাবেস সেটআপ করবেন।

4. একটি স্প্যানার উদাহরণ এবং ডাটাবেস তৈরি করুন (লক্ষ্য)

স্প্যানারে, একটি উদাহরণ হ'ল কম্পিউটিং এবং স্টোরেজ সংস্থানগুলির একটি ক্লাস্টার যা এক বা একাধিক স্প্যানার ডাটাবেসকে হোস্ট করে। এই কোডল্যাবের জন্য একটি স্প্যানার ডাটাবেস হোস্ট করার জন্য আপনার কমপক্ষে 1 টি উদাহরণ প্রয়োজন।

GCloud sdk সংস্করণ পরীক্ষা করুন

উদাহরণ তৈরি করার আগে, নিশ্চিত হয়ে নিন যে গুগল ক্লাউড শেলটিতে GCLAUD SDK প্রয়োজনীয় সংস্করণে আপডেট হয়েছে - GCLAUD SDK 493.0.0 । নীচের কমান্ডটি অনুসরণ করে আপনি আপনার GCloud sdk সংস্করণটি খুঁজে পেতে পারেন।

$ gcloud version | grep Google

এখানে একটি উদাহরণ আউটপুট:

Google Cloud SDK 489.0.0

আপনি যে সংস্করণটি ব্যবহার করছেন তা যদি প্রয়োজনীয় 493.0.0 সংস্করণ (পূর্ববর্তী উদাহরণে 489.0.0 ) এর চেয়ে আগের হয় তবে আপনাকে নিম্নলিখিত কমান্ডটি চালিয়ে আপনার গুগল ক্লাউড এসডিকে আপগ্রেড করতে হবে:

sudo apt-get update \
  && sudo apt-get --only-upgrade install google-cloud-cli-anthoscli google-cloud-cli-cloud-run-proxy kubectl google-cloud-cli-skaffold google-cloud-cli-cbt google-cloud-cli-docker-credential-gcr google-cloud-cli-spanner-migration-tool google-cloud-cli-cloud-build-local google-cloud-cli-pubsub-emulator google-cloud-cli-app-engine-python google-cloud-cli-kpt google-cloud-cli-bigtable-emulator google-cloud-cli-datastore-emulator google-cloud-cli-spanner-emulator google-cloud-cli-app-engine-go google-cloud-cli-app-engine-python-extras google-cloud-cli-config-connector google-cloud-cli-package-go-module google-cloud-cli-istioctl google-cloud-cli-anthos-auth google-cloud-cli-gke-gcloud-auth-plugin google-cloud-cli-app-engine-grpc google-cloud-cli-kubectl-oidc google-cloud-cli-terraform-tools google-cloud-cli-nomos google-cloud-cli-local-extract google-cloud-cli-firestore-emulator google-cloud-cli-harbourbridge google-cloud-cli-log-streaming google-cloud-cli-minikube google-cloud-cli-app-engine-java google-cloud-cli-enterprise-certificate-proxy google-cloud-cli

স্প্যানার এপিআই সক্ষম করুন

ক্লাউড শেলের ভিতরে, নিশ্চিত হয়ে নিন যে আপনার প্রকল্পের আইডি সেটআপ রয়েছে। বর্তমানে কনফিগার করা প্রজেক্ট আইডি খুঁজতে নীচের প্রথম কমান্ডটি ব্যবহার করুন। যদি ফলাফলটি প্রত্যাশিত না হয় তবে নীচের দ্বিতীয় কমান্ডটি সঠিকটি সেট করে।

gcloud config get-value project
gcloud config set project [YOUR-DESIRED-PROJECT-ID]

আপনার ডিফল্ট অঞ্চলটি us-central1 এ কনফিগার করুন। স্প্যানার আঞ্চলিক কনফিগারেশন দ্বারা সমর্থিত একটি ভিন্ন অঞ্চলে এটি পরিবর্তন করতে নির্দ্বিধায়।

gcloud config set compute/region us-central1

স্প্যানার এপিআই সক্ষম করুন:

gcloud services enable spanner.googleapis.com

স্প্যানার উদাহরণ তৈরি করুন

এই বিভাগে, আপনি একটি নিখরচায় পরীক্ষার উদাহরণ বা একটি বিধান উদাহরণ তৈরি করবেন। এই কোডল্যাব জুড়ে, স্প্যানার ক্যাসান্দ্রা অ্যাডাপ্টার উদাহরণ আইডি ব্যবহৃত cassandra-adapter-demo , export কমান্ড লাইনটি ব্যবহার করে SPANNER_INSTANCE_ID ভেরিয়েবল হিসাবে সেট করা। Ally চ্ছিকভাবে, আপনি নিজের উদাহরণ আইডি নামটি চয়ন করতে পারেন।

একটি ফ্রি-ট্রায়াল স্প্যানার উদাহরণ তৈরি করুন

একটি স্প্যানার 90-দিনের ফ্রি ট্রায়াল উদাহরণ একটি গুগল অ্যাকাউন্ট সহ যে কেউ তাদের প্রকল্পে ক্লাউড বিলিং সক্ষম করেছে তাদের জন্য উপলব্ধ। আপনি যদি আপনার নিখরচায় পরীক্ষার উদাহরণটি কোনও অর্থ প্রদানের উদাহরণে আপগ্রেড করতে না চান তবে আপনাকে চার্জ করা হবে না। স্প্যানার ক্যাসান্দ্রা অ্যাডাপ্টারটি ফ্রি ট্রায়াল উদাহরণে সমর্থিত। যদি যোগ্য হয় তবে ক্লাউড শেলটি খোলার মাধ্যমে এবং এই কমান্ডটি চালিয়ে একটি নিখরচায় পরীক্ষার উদাহরণ তৈরি করুন:

export SPANNER_INSTANCE_ID=cassandra-adapter-demo
export SPANNER_REGION=regional-us-central1
gcloud spanner instances create $SPANNER_INSTANCE_ID \
  --config=$SPANNER_REGION \
  --instance-type=free-instance \
  --description="Spanner Cassandra Adapter demo"

কমান্ড আউটপুট:

$ gcloud spanner instances create $SPANNER_INSTANCE_ID \
  --config=$SPANNER_REGION \
  --instance-type=free-instance \
  --description="Spanner Cassandra Adapter demo"
Creating instance...done.

ডাটাবেস তৈরি করুন

আপনার উদাহরণটি চলার পরে, আপনি ডাটাবেস তৈরি করতে পারেন। ডাটাবেসটি যেখানে আপনি নিজের স্কিমা সংজ্ঞায়িত করেন। কারা ডাটাবেসে অ্যাক্সেস রয়েছে তা নিয়ন্ত্রণ করতে পারেন, কাস্টম এনক্রিপশন সেট আপ করতে পারেন, অপ্টিমাইজারটি কনফিগার করতে পারেন এবং ধরে রাখার সময়কাল সেট করতে পারেন।

ডাটাবেসটি আইডি SPANNER_INSTANCE_ID দিয়ে উদাহরণে তৈরি করা হবে।

একটি ডাটাবেস তৈরি করতে, GCloud কমান্ড লাইন সরঞ্জামটি ব্যবহার করুন:

export SPANNER_DATABASE=analytics
gcloud spanner databases create $SPANNER_DATABASE \
 --instance=$SPANNER_INSTANCE_ID

কমান্ড আউটপুট:

$ gcloud spanner databases create $SPANNER_DATABASE \
 --instance=$SPANNER_INSTANCE_ID
Creating database...done.

5. স্প্যানারে ক্যাসান্দ্রা স্কিমা এবং ডেটা মডেল স্থানান্তর করুন

ক্যাসান্দ্রা ডাটাবেস থেকে স্প্যানারের কাছে ডেটা স্থানান্তর করার প্রাথমিক এবং গুরুত্বপূর্ণ পর্যায়ে স্প্যানারের কাঠামোগত এবং ডেটা ধরণের প্রয়োজনীয়তার সাথে একত্রিত করার জন্য বিদ্যমান ক্যাসান্দ্রা স্কিমাকে রূপান্তরিত করা জড়িত।

এই জটিল স্কিমা মাইগ্রেশন প্রক্রিয়াটি প্রবাহিত করতে, স্প্যানার স্প্যানার ক্যাসান্দ্রা স্কিমা সরঞ্জাম হিসাবে পরিচিত একটি মূল্যবান ওপেন-সোর্স সরঞ্জাম সরবরাহ করে।

স্প্যানার ক্যাসান্দ্রা স্কিমা সরঞ্জাম

স্প্যানার ক্যাসান্দ্রা স্কিমা সরঞ্জামটি স্প্যানার মূল্যায়ন এবং স্কিমা মাইগ্রেশনের জন্য একা একা ওপেন সোর্স সরঞ্জাম। এর প্রাথমিক ফাংশনটি হ'ল বিদ্যমান ক্যাসান্দ্রা স্কিমাতে পাওয়া সংজ্ঞাগুলির ভিত্তিতে স্বয়ংক্রিয়ভাবে একটি স্প্যানার স্কিমা তৈরি করা। ক্যাসান্দ্রা টেবিল কাঠামো, ডেটা প্রকার এবং প্রাথমিক কী কনফিগারেশনগুলি বিশ্লেষণ করে, সরঞ্জামটি সমতুল্য স্প্যানার টেবিল সংজ্ঞা তৈরি করে, সাধারণত স্কিমা অনুবাদে জড়িত ম্যানুয়াল প্রচেষ্টা উল্লেখযোগ্যভাবে হ্রাস করে।

ক্যাসান্দ্রা স্কিমা রফতানি করুন

স্প্যানার ক্যাসান্দ্রা স্কিমা সরঞ্জামটি ব্যবহার করার আগে, প্রথম কংক্রিটের পদক্ষেপটি আপনার বর্তমান ক্যাসান্দ্রা ক্লাস্টার থেকে স্কিমাটি বের করা। cqlsh মাধ্যমে আপনার বিদ্যমান ক্যাসান্দ্রা ক্লাস্টারের সাথে সংযোগ স্থাপন এবং ক্যাসান্দ্রা থেকে স্কিমা রফতানি করে এটি অর্জন করা যেতে পারে:

cqlsh [IP] "-e DESC SCHEMA" > orig_schema.cql

এই কমান্ডে, [IP] আপনার ক্যাসান্দ্রা ক্লাস্টারের কোনও নোডের আইপি ঠিকানা বা হোস্টনাম দিয়ে প্রতিস্থাপন করা উচিত। কমান্ডের -e DESC SCHEMA অংশটি সিকিউএলএসএইচকে ক্যাসান্দ্রা ক্লাস্টারের পুরো স্কিমা বর্ণনা করার নির্দেশ দেয়। এই কমান্ডের আউটপুট, যাতে তৈরি কীপেস তৈরি করে এবং সারণী বিবৃতি তৈরি করে, তারপরে orig_schema.cql নামের একটি ফাইলে পুনঃনির্দেশিত হয়।

এই orig_schema.cql ফাইলের সামগ্রীটি মূলত আপনার ক্যাসান্দ্রা স্কিমার একটি পাঠ্য নীলনকশা উপস্থাপন করবে। orig_schema.cql ফাইলের সামগ্রীটি দেখতে এটির মতো হওয়া উচিত:

CREATE KEYSPACE analytics WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'}  AND durable_writes = true;

CREATE TABLE analytics.users (
    id int PRIMARY KEY,
    active boolean,
    username text
) WITH additional_write_policy = '99p'
    AND allow_auto_snapshot = true
    AND bloom_filter_fp_chance = 0.01
    AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
    AND cdc = false
    AND comment = ''
    AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
    AND compression = {'chunk_length_in_kb': '16', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
    AND memtable = 'default'
    AND crc_check_chance = 1.0
    AND default_time_to_live = 0
    AND extensions = {}
    AND gc_grace_seconds = 864000
    AND incremental_backups = true
    AND max_index_interval = 2048
    AND memtable_flush_period_in_ms = 0
    AND min_index_interval = 128
    AND read_repair = 'BLOCKING'
    AND speculative_retry = '99p';

সংগ্রহস্থল ক্লোন করুন

স্প্যানার ক্যাসান্দ্রা স্কিমা সরঞ্জামটি ব্যবহার করতে, পরবর্তী পদক্ষেপে সরঞ্জামটির উত্স কোডটি প্রাপ্তিতে জড়িত। এটি গিটহাবের হোস্ট করা সংগ্রহস্থলটি ক্লোন করে করা হয়। ক্লাউড শেলটিতে নিম্নলিখিত কমান্ডটি টাইপ করে গিথুব থেকে স্প্যানার ক্যাসান্দ্রা স্কিমা সরঞ্জামটি ক্লোন করুন:

git clone https://github.com/cloudspannerecosystem/spanner-cassandra-schema-tool.git

তারপরে ডিরেক্টরিটি "স্প্যানার-ক্যাসান্দ্রা-স্কিমা-সরঞ্জাম" ডিরেক্টরিতে পরিবর্তন করুন যেখানে আপনি কমান্ডটি চালাবেন।

cd spanner-cassandra-schema-tool

নির্ভরতা ইনস্টল করুন

স্প্যানার ক্যাসান্দ্রা স্কিমা সরঞ্জামটি জিও প্রোগ্রামিং ভাষায় লেখা আছে। সরঞ্জামটি সঠিকভাবে নিশ্চিত করার জন্য, এটি নির্দিষ্ট বাহ্যিক গো মডিউলগুলির (গ্রন্থাগার) উপর নির্ভর করে। আপনি সরঞ্জামটি চালানোর আগে এই নির্ভরতাগুলি ডাউনলোড এবং পরিচালনা করা দরকার। spanner-cassandra-schema-tool ডিরেক্টরিগুলির মধ্যে, নিম্নলিখিত কমান্ডটি কার্যকর করুন:

go mod download

গুগল ক্লাউড শংসাপত্রগুলি সেট আপ করুন

এই সরঞ্জামটি স্প্যানার ডাটাবেসগুলির সাথে সংযোগের জন্য শংসাপত্রের উত্স হিসাবে অ্যাপ্লিকেশন ডিফল্ট শংসাপত্রগুলি (এডিসি) ব্যবহার করে। আপনার পরিষেবা অ্যাকাউন্ট কী ফাইলের পথে GOOGLE_APPLICATION_CREDENTIALS পরিবেশের পরিবর্তনশীল সেট করুন।

export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-file.json"

আপনার ডাউনলোড করা পরিষেবা অ্যাকাউন্ট কী ফাইলের আসল পথের সাথে /path/to/your/service-account-file.json সেরভিস-অ্যাকাউন্ট-ফাইল.জসনকে প্রতিস্থাপন করুন। এই পরিবেশের পরিবর্তনশীল সেট করা নিশ্চিত করে যে স্প্যানার ক্যাসান্দ্রা স্কিমা সরঞ্জামটি আপনার গুগল ক্লাউড প্রকল্প এবং স্প্যানার উদাহরণের সাথে সুরক্ষিতভাবে প্রমাণীকরণ করতে পারে।

ব্যবহার

একবার নির্ভরতা ইনস্টল হয়ে গেলে এবং গুগল ক্লাউড শংসাপত্রগুলি কনফিগার করা হয়ে গেলে, আপনি রফতানি ক্যাসান্দ্রা স্কিমা ফাইল থেকে স্প্যানার স্কিমা তৈরি করতে স্প্যানার ক্যাসান্দ্রা স্কিমা সরঞ্জামটি চালাতে প্রস্তুত। আপনার টার্মিনাল বা ক্লাউড শেলটিতে spanner-cassandra-schema-tool ডিরেক্টরিতে নেভিগেট করুন এবং নিম্নলিখিত go run কমান্ডটি কার্যকর করুন:

go run schema_converter.go \
    --project $PROJECT_ID \
    --instance $SPANNER_INSTANCE_ID \
    --database $SPANNER_DATABASE \
    --cql orig_schema.cql \
    --dry-run

--dry-run বিকল্পের সাথে চলমান কেবল স্কিমা উত্পন্ন করে। ডেটা টাইপ ম্যাপিং এবং সরঞ্জাম দ্বারা উত্পাদিত প্রাথমিক কী কলামগুলি পর্যালোচনা এবং পরিমার্জন করুন। নিশ্চিত করুন যে স্প্যানার ডেটা প্রকারগুলি সংশ্লিষ্ট ক্যাসান্দ্রা ডাটাবেস প্রকারের পরিসীমা, নির্ভুলতা এবং শব্দার্থবিজ্ঞানের সঠিকভাবে উপস্থাপন করে।

সমর্থিত ক্যাসান্দ্রা ডেটা প্রকারগুলিতে নথিভুক্ত হিসাবে এই সরঞ্জামটি স্প্যানার প্রকারগুলিতে ক্যাসান্দ্রা প্রকারগুলিতে মানচিত্র করে।

কমান্ড আউটপুট এরকম কিছু দেখতে হবে:

.....

[Converted Spanner statement]
CREATE TABLE users (
 id INT64 NOT NULL OPTIONS (cassandra_type = 'int'),
 active BOOL OPTIONS (cassandra_type = 'boolean'),
 username STRING(MAX) OPTIONS (cassandra_type = 'text'),
) PRIMARY KEY (id)
----------------------------------------------
Writing converted Spanner schema to: schema.txt
Dry run enabled. Skipping schema execution.
Schema conversion completed!

আপনি যদি প্রয়োগ স্কিমাটি স্বয়ংক্রিয়ভাবে স্প্যানারে প্রয়োগ করতে চান তবে আপনার --dry-run বিকল্প ছাড়াই সিএলআই চালানো উচিত।

7B2FCQSRTHFVEUC.PNG

গুগল ক্লাউড কনসোলে যাচাই করুন যে ক্লাউড স্প্যানার ডাটাবেসে টেবিল এবং মেটাডেটা টেবিল বিদ্যমান।

9. আপনার অ্যাপ্লিকেশনটি স্প্যানারে নির্দেশ করুন (কাটওভার)

মাইগ্রেশন পর্বের পরে আপনার ডেটার যথার্থতা এবং অখণ্ডতাটিকে সাবধানতার সাথে বৈধ করার পরে, মূল পদক্ষেপটি আপনার লিগ্যাসি ক্যাসান্দ্রা সিস্টেম থেকে সদ্য জনবহুল গুগল ক্লাউড স্প্যানার ডাটাবেসে আপনার অ্যাপ্লিকেশনটির অপারেশনাল ফোকাসকে স্থানান্তরিত করা। এই সমালোচনামূলক রূপান্তর সময়কাল সাধারণত " কাটওভার " হিসাবে উল্লেখ করা হয়।

কাটাওভার ফেজটি সেই মুহুর্তটিকে চিহ্নিত করে যখন লাইভ অ্যাপ্লিকেশন ট্র্যাফিকটি মূল ক্যাসান্দ্রা ক্লাস্টার থেকে দূরে পুনঃনির্দেশিত হয় এবং দৃ ust ় এবং স্কেলযোগ্য স্প্যানার অবকাঠামোর সাথে সরাসরি সংযুক্ত থাকে। এই রূপান্তরটি স্বাচ্ছন্দ্যকে প্রদর্শন করে যে অ্যাপ্লিকেশনগুলি স্প্যানারের শক্তি অর্জন করতে পারে, বিশেষত স্প্যানার ক্যাসান্দ্রা ইন্টারফেসটি ব্যবহার করার সময়।

স্প্যানার ক্যাসান্দ্রা ইন্টারফেসের সাথে, কাটওভার প্রক্রিয়াটি প্রবাহিত করা হয়েছে। এটি মূলত সমস্ত ডেটা ইন্টারঅ্যাকশনটির জন্য নেটিভ স্প্যানার ক্যাসান্দ্রা ক্লায়েন্টকে ব্যবহার করতে আপনার ক্লায়েন্ট অ্যাপ্লিকেশনগুলি কনফিগার করা জড়িত। আপনার ক্যাসান্দ্রা (উত্স) ডাটাবেসের সাথে যোগাযোগের পরিবর্তে, আপনার অ্যাপ্লিকেশনগুলি নির্বিঘ্নে স্প্যানার (লক্ষ্য) এ সরাসরি ডেটা পড়া এবং লেখা শুরু করবে। সংযোগের এই মৌলিক পরিবর্তনটি সাধারণত স্প্যানার ক্যাসান্দ্রা ক্লায়েন্ট লাইব্রেরির একটি মূল উপাদান যা আপনার স্প্যানার উদাহরণে সংযোগ স্থাপনের সুবিধার্থে একটি মূল উপাদান SpannerCqlSessionBuilder ব্যবহারের মাধ্যমে অর্জন করা হয়। এটি কার্যকরভাবে আপনার অ্যাপ্লিকেশনটির পুরো ডেটা ট্র্যাফিক প্রবাহকে স্প্যানারে পুনরায় তৈরি করে।

জাভা অ্যাপ্লিকেশনগুলির জন্য ইতিমধ্যে cassandra-java-driver লাইব্রেরি ব্যবহার করে, স্প্যানার ক্যাসান্দ্রা জাভা ক্লায়েন্টকে সংহত করার জন্য CqlSession আরম্ভের ক্ষেত্রে কেবলমাত্র সামান্য পরিবর্তন প্রয়োজন।

গুগল-ক্লাউড-স্প্যানার-ক্যাসান্দ্রা নির্ভরতা পাচ্ছেন

স্প্যানার ক্যাসান্দ্রা ক্লায়েন্ট ব্যবহার শুরু করার জন্য, আপনাকে প্রথমে আপনার প্রকল্পে এর নির্ভরতা অন্তর্ভুক্ত করতে হবে। google-cloud-spanner-cassandra শিল্পকর্মগুলি ম্যাভেন সেন্ট্রালে আইডি com.google.cloud গ্রুপের অধীনে প্রকাশিত হয়। আপনার জাভা প্রকল্পে বিদ্যমান <dependencies> বিভাগের অধীনে নিম্নলিখিত নতুন নির্ভরতা যুক্ত করুন। আপনি কীভাবে google-cloud-spanner-cassandra নির্ভরতা অন্তর্ভুক্ত করবেন তার একটি সরল উদাহরণ এখানে:

<!-- native Spanner Cassandra Client -->
<dependencies>
 
<dependency>
   
<groupId>com.google.cloud</groupId>
   
<artifactId>google-cloud-spanner-cassandra</artifactId>
   
<version>0.2.0</version>
 
</dependency>
</dependencies>

স্প্যানারের সাথে সংযোগ করতে সংযোগ কনফিগারেশন পরিবর্তন করুন

একবার আপনি প্রয়োজনীয় নির্ভরতা যুক্ত করার পরে, পরবর্তী পদক্ষেপটি স্প্যানার ডাটাবেসের সাথে সংযোগ স্থাপনের জন্য আপনার সংযোগ কনফিগারেশনটি পরিবর্তন করা।

ক্যাসান্দ্রা ক্লাস্টারের সাথে ইন্টারঅ্যাক্ট করা একটি সাধারণ অ্যাপ্লিকেশন প্রায়শই সংযোগ স্থাপনের জন্য নিম্নলিখিতগুলির অনুরূপ কোড নিয়োগ করে:

CqlSession session = CqlSession.builder()
       
.addContactPoint(new InetSocketAddress("127.0.0.1", 9042))
       
.withLocalDatacenter("datacenter1")
       
.withAuthCredentials("username", "password")
       
.build();

স্প্যানারের কাছে এই সংযোগটি পুনর্নির্দেশ করতে, আপনাকে আপনার CqlSession ক্রিয়েশন লজিকটি সংশোধন করতে হবে। cassandra-java-driver থেকে সরাসরি স্ট্যান্ডার্ড CqlSessionBuilder ব্যবহার করার পরিবর্তে, আপনি স্প্যানার ক্যাসান্দ্রা ক্লায়েন্ট দ্বারা সরবরাহিত SpannerCqlSession.builder() ব্যবহার করবেন। আপনার সংযোগ কোডটি কীভাবে সংশোধন করবেন তার একটি চিত্রণমূলক উদাহরণ এখানে:

String databaseUri = "projects/<your-gcp-project>/instances/<your-spanner-instance>/databases/<your-spanner-database>";

CqlSession session = SpannerCqlSession.builder()
       
.setDatabaseUri(databaseUri)
       
.addContactPoint(new InetSocketAddress("localhost", 9042))
       
.withLocalDatacenter("datacenter1")
       
.build();

SpannerCqlSession.builder() ব্যবহার করে CqlSession তাত্ক্ষণিক করে এবং সঠিক databaseUri সরবরাহ করে, আপনার অ্যাপ্লিকেশনটি এখন আপনার টার্গেট স্প্যানার ডাটাবেসে স্প্যানার ক্যাসান্দ্রা ক্লায়েন্টের মাধ্যমে একটি সংযোগ স্থাপন করবে। এই গুরুত্বপূর্ণ পরিবর্তনটি নিশ্চিত করে যে আপনার অ্যাপ্লিকেশন দ্বারা সম্পাদিত সমস্ত পরবর্তী পঠন এবং লেখার ক্রিয়াকলাপগুলি স্প্যানার দ্বারা পরিচালিত এবং পরিবেশন করা হবে, কার্যকরভাবে প্রাথমিক কাটওভারটি সম্পূর্ণ করে। এই মুহুর্তে, আপনার অ্যাপ্লিকেশনটি প্রত্যাশার মতো কাজ করা চালিয়ে যাওয়া উচিত, এখন স্প্যানারের স্কেলাবিলিটি এবং নির্ভরযোগ্যতা দ্বারা চালিত।

হুডের নীচে: স্প্যানার ক্যাসান্দ্রা ক্লায়েন্ট কীভাবে পরিচালনা করে

স্প্যানার ক্যাসান্দ্রা ক্লায়েন্ট একটি স্থানীয় টিসিপি প্রক্সি হিসাবে কাজ করে, কোনও ড্রাইভার বা ক্লায়েন্ট সরঞ্জাম দ্বারা প্রেরিত কাঁচা ক্যাসান্দ্রা প্রোটোকল বাইটকে বাধা দেয়। এরপরে এটি স্প্যানারের সাথে যোগাযোগের জন্য জিআরপিসি বার্তাগুলিতে প্রয়োজনীয় মেটাডেটা সহ এই বাইটগুলি মোড়ানো। স্প্যানারের প্রতিক্রিয়াগুলি ক্যাসান্দ্রা তারের ফর্ম্যাটে আবার অনুবাদ করা হয় এবং উত্সাহী ড্রাইভার বা সরঞ্জামে ফেরত পাঠানো হয়।

26d34akkbhcmffe.png

একবার আপনি আত্মবিশ্বাসী হয়ে গেলে যে স্প্যানার সমস্ত ট্র্যাফিক সঠিকভাবে পরিবেশন করছে, আপনি শেষ পর্যন্ত করতে পারেন:

  • দ্বৈত লেখা বন্ধ করুন।
  • মূল ক্যাসান্দ্রা ক্লাস্টারটি ডিকোমিশন।

10. পরিষ্কার করা (al চ্ছিক)

পরিষ্কার করার জন্য, কেবল ক্লাউড কনসোলের স্প্যানার বিভাগে যান এবং cassandra-adapter-demo উদাহরণটি মুছুন আমরা কোডল্যাবটিতে তৈরি করেছি।

76D34AKKJRCMFMR.PNG

ক্যাসান্দ্রা ডাটাবেস মুছুন (যদি স্থানীয়ভাবে ইনস্টল করা হয় বা স্থির থাকে)

আপনি যদি এখানে তৈরি একটি গণনা ইঞ্জিন ভিএম এর বাইরে ক্যাসান্দ্রা ইনস্টল করেন তবে ডেটা অপসারণ করতে বা ক্যাসান্দ্রা আনইনস্টল করার জন্য উপযুক্ত পদক্ষেপগুলি অনুসরণ করুন।

11. অভিনন্দন!

এরপর কি?