SQL Connect পরিষেবা এবং ডেটাবেস পরিচালনা করুন

আপনার SQL Connect প্রজেক্ট দুটি প্রধান অবকাঠামোগত উপাদান নিয়ে গঠিত:

  • এক বা একাধিক SQL Connect পরিষেবা ইনস্ট্যান্স
  • এক বা একাধিক ক্লাউড এসকিউএল ফর পোস্টগ্রেসকিউএল ইনস্ট্যান্স

এই নির্দেশিকায় আপনার SQL Connect পরিষেবা ইনস্ট্যান্সগুলি কীভাবে সেট আপ এবং পরিচালনা করবেন তা আলোচনা করা হয়েছে এবং আপনার সংশ্লিষ্ট Cloud SQL ইনস্ট্যান্সগুলি কীভাবে পরিচালনা করবেন তার একটি পরিচিতি দেওয়া হয়েছে।

Firebase SQL Connect এর জন্য অঞ্চলগুলি কনফিগার করুন

যেসব প্রজেক্টে SQL Connect ব্যবহার করা হয়, সেগুলোর জন্য একটি লোকেশন সেটিং প্রয়োজন।

যখন আপনি একটি নতুন SQL Connect পরিষেবা ইনস্ট্যান্স তৈরি করেন, তখন আপনাকে পরিষেবাটির অবস্থান নির্বাচন করতে বলা হয়।

উপলব্ধ স্থান

নিম্নলিখিত অঞ্চলগুলিতে SQL Connect পরিষেবা তৈরি করা যেতে পারে।

  • এশিয়া-পূর্ব১
  • এশিয়া-পূর্ব২
  • এশিয়া-উত্তরপূর্ব১
  • এশিয়া-উত্তরপূর্ব২
  • এশিয়া-উত্তরপূর্ব৩
  • এশিয়া-দক্ষিণ১
  • এশিয়া-দক্ষিণ-পূর্ব১ (স্পার্ক প্ল্যান ট্রায়ালের জন্য অনুপলব্ধ)
  • এশিয়া-দক্ষিণ-পূর্ব২ (স্পার্ক প্ল্যান ট্রায়ালের জন্য অনুপলব্ধ)
  • অস্ট্রেলিয়া-দক্ষিণপূর্ব১
  • অস্ট্রেলিয়া-দক্ষিণপূর্ব২
  • ইউরোপ-মধ্য২
  • ইউরোপ-উত্তর১
  • ইউরোপ-দক্ষিণপশ্চিম১
  • ইউরোপ-পশ্চিম১
  • ইউরোপ-পশ্চিম২
  • ইউরোপ-পশ্চিম৩
  • ইউরোপ-পশ্চিম৪
  • ইউরোপ-পশ্চিম৬
  • ইউরোপ-পশ্চিম৮
  • ইউরোপ-পশ্চিম৯
  • me-west1
  • উত্তর আমেরিকা-উত্তরপূর্ব১
  • উত্তর আমেরিকা-উত্তরপূর্ব২
  • দক্ষিণ আমেরিকা-পূর্ব১
  • দক্ষিণ আমেরিকা-পশ্চিম১
  • ইউএস-সেন্ট্রাল১
  • us-east1
  • us-east4
  • আমাদের-দক্ষিণ১
  • আমাদের-পশ্চিম১
  • ইউএস-ওয়েস্ট২
  • ইউএস-ওয়েস্ট৩
  • ইউএস-ওয়েস্ট৪

SQL Connect পরিষেবা ইনস্ট্যান্সগুলি পরিচালনা করুন

পরিষেবা তৈরি করুন

একটি নতুন সার্ভিস তৈরি করতে, Firebase কনসোল ব্যবহার করুন অথবা Firebase CLI ব্যবহার করে লোকাল প্রজেক্ট ইনিশিয়ালাইজেশন চালান। এই ওয়ার্কফ্লোগুলো একটি নতুন SQL Connect সার্ভিস তৈরি করে।

এই প্রবাহগুলো আপনাকে নিম্নলিখিত বিষয়গুলোতেও পথ দেখায়:

  • একটি নতুন ক্লাউড এসকিউএল ইনস্ট্যান্স প্রোভিশনিং (বিনামূল্যের স্তর)
  • বিদ্যমান ক্লাউড এসকিউএল ইনস্ট্যান্সকে SQL Connect (ব্লেজ প্ল্যান) এর সাথে সংযুক্ত করা

ব্যবহারকারীদের পরিচালনা করুন

SQL Connect ব্যবহারকারীর অ্যাক্সেস পরিচালনার জন্য এমন টুল সরবরাহ করে যা ‘লিস্ট প্রিভিলেজ’ ( সর্বনিম্ন বিশেষাধিকারের নীতি ) (প্রয়োজনীয় কার্যকারিতা সমর্থন করার জন্য প্রতিটি ব্যবহারকারী বা পরিষেবা অ্যাকাউন্টকে ন্যূনতম প্রয়োজনীয় অনুমতি প্রদান করা) এবং ‘রোল-বেসড অ্যাক্সেস কন্ট্রোল’ (RBAC) (ডাটাবেস অনুমতি পরিচালনার জন্য পূর্বনির্ধারিত রোলের মাধ্যমে নিরাপত্তা ব্যবস্থাপনা সহজ করা)-এর ধারণা অনুসরণ করে।

আপনার প্রোজেক্টে SQL Connect ইনস্ট্যান্স পরিবর্তন করতে সক্ষম ব্যবহারকারী হিসেবে প্রোজেক্ট সদস্যদের যুক্ত করতে, Firebase কনসোল ব্যবহার করে উপযুক্ত পূর্বনির্ধারিত ব্যবহারকারী ভূমিকা (user roles) নির্বাচন করুন।

এই রোলগুলো আইডেন্টিটি অ্যান্ড অ্যাক্সেস ম্যানেজমেন্ট (IAM) ব্যবহার করে অনুমতি প্রদান করে। একটি রোল হলো একাধিক অনুমতির সমষ্টি। যখন আপনি কোনো প্রজেক্ট সদস্যকে একটি রোল অ্যাসাইন করেন, তখন আপনি সেই রোলের অন্তর্ভুক্ত সমস্ত অনুমতি সেই প্রজেক্ট সদস্যকে প্রদান করেন। আরও তথ্য দেখুন:

নির্দিষ্ট ওয়ার্কফ্লো সক্রিয় করতে ভূমিকা নির্বাচন করুন

IAM রোলগুলি Firebase CLI ওয়ার্কফ্লো সক্ষম করে, যার মাধ্যমে আপনি আপনার SQL Connect প্রোজেক্টগুলি পরিচালনা করতে পারেন।

CLI কমান্ড, অন্যান্য ওয়ার্কফ্লো প্রয়োজনীয় ভূমিকা(গুলি)
firebase init dataconnect
  • কোনো অনুমতি নেই (যখন কোনো ক্লাউড SQL ইনস্ট্যান্স লিঙ্ক করা হচ্ছে না)
  • roles/cloudsql.admin (একটি ক্লাউড এসকিউএল ইনস্ট্যান্স তৈরি করার সময়)
firebase deploy -–only dataconnect
  • firebasedataconnect.connectors.*
  • firebasedataconnect.services.*
  • firebasedataconnect.schemas.*
  • ভূমিকা/ক্লাউডএসকিউএল অ্যাডমিন
firebase dataconnect:sql:diff
  • firebasedataconnect.services.*
  • firebasedataconnect.schemas.*
firebase dataconnect:sql:migrate
  • টার্গেট ক্লাউড SQL ইনস্ট্যান্সে roles/cloudsql.admin
firebase dataconnect:sql:grant
  • টার্গেট ক্লাউড SQL ইনস্ট্যান্সে roles/cloudsql.admin

SQL Connect পরিষেবার কর্মক্ষমতা নিরীক্ষণ করুন

পরিষেবার কর্মক্ষমতা বুঝুন

SQL Connect পরিষেবা এবং Cloud SQL for PostgreSQL পরিষেবা উভয়ের পারফরম্যান্স আপনার অভিজ্ঞতাকে প্রভাবিত করতে পারে।

  • Cloud SQL for PostgreSQL পরিষেবার জন্য, কোটা এবং সীমা সংক্রান্ত ডকুমেন্টেশনে দেওয়া সাধারণ নির্দেশিকা দেখুন।
  • SQL Connect সার্ভিসের জন্য GraphQL অনুরোধের একটি কোটা রয়েছে, যা কোয়েরি কল এবং এক্সিকিউট করার হারকে প্রভাবিত করে:

    • প্রতি প্রকল্প ও অঞ্চলের জন্য প্রতি মিনিটে ২৪০০০ GraphQL অনুরোধের কোটা।

    আপনি যদি কোটার সীমাবদ্ধতার সম্মুখীন হন, তাহলে প্রাসঙ্গিক কোটা সমন্বয় করার জন্য অনুগ্রহ করে Firebase সাপোর্টের সাথে যোগাযোগ করুন।

পরিষেবার কার্যকারিতা, ব্যবহার এবং বিলিং নিরীক্ষণ করুন

আপনি Firebase কনসোলে বিশ্বব্যাপী এবং প্রতিটি অপারেশনের জন্য অনুরোধ, ত্রুটি এবং অপারেশনের হার নিরীক্ষণ করতে পারেন।

ক্লাউড SQL ইনস্ট্যান্সগুলি পরিচালনা করুন

বিনামূল্যে ট্রায়ালের সীমাবদ্ধতা

Spark বা Blaze-এর ফ্রি ট্রায়ালে নিম্নলিখিত Cloud SQL for PostgreSQL ফিচারগুলো সমর্থিত নয়:

  • db-f1-micro থেকে ভিন্ন মেশিন টিয়ার।
  • আপনার ইনস্ট্যান্সের রিসোর্স পরিবর্তন করা, যেমন অঞ্চল, স্টোরেজ, মেমরি, সিপিইউ
  • PostgreSQL 15.x ব্যতীত অন্যান্য সংস্করণ
  • প্রতিলিপি পড়ুন
  • ব্যক্তিগত ইনস্ট্যান্স আইপি ঠিকানা
  • উচ্চ-উপলভ্যতা (মাল্টি-জোন); শুধুমাত্র সিঙ্গেল-জোন ইনস্ট্যান্স সমর্থিত।
  • এন্টারপ্রাইজ প্লাস সংস্করণ
  • স্বয়ংক্রিয় ব্যাকআপ
  • স্বয়ংক্রিয়ভাবে সঞ্চয় বৃদ্ধি।

অস্থায়ী অনবোর্ডিং ডেটাবেসের সীমাবদ্ধতা

যখন আপনি আপনার Firebase প্রজেক্টে SQL Connect যোগ করবেন, তখন আপনি সাথে সাথেই আপনার ডেটা মডেলের প্রোটোটাইপ তৈরি করা এবং ডেটা লোড করা শুরু করতে পারবেন, কারণ ডেটা একটি অস্থায়ী ডেটাবেসে সংরক্ষিত থাকবে। মনে রাখবেন যে, আপনার স্থায়ী Cloud SQL for PostgreSQL ইনস্ট্যান্সটি প্রোভিশন হতে ৫ থেকে ২০ মিনিট সময় লাগবে। আপনার লোড করা যেকোনো প্রাথমিক ডেটা, সেটি প্রোভিশন হয়ে গেলেই স্বয়ংক্রিয়ভাবে আপনার স্থায়ী PostgreSQL ডেটাবেসে স্থানান্তরিত হয়ে যাবে।

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

আপনি যদি অস্থায়ী ডেটাবেসটি ব্যবহার করতে না চান, তাহলে আপনার ক্লাউড এসকিউএল ইনস্ট্যান্সটি প্রোভিশন হওয়া পর্যন্ত অপেক্ষা করুন।

অস্থায়ী ডেটাবেসটি কোনো PostgreSQL ডেটাবেস নয় এবং এটি PostgreSQL-এর সকল বৈশিষ্ট্য প্রদান করে না।

উল্লেখযোগ্য সীমাবদ্ধতাগুলো হলো:

  • ডাটাবেসের আকার অবশ্যই ১ মেগাবাইটের কম হতে হবে।
  • প্রতিটি টেবিলের সারির সংখ্যা অবশ্যই ১০০০ এর কম হতে হবে।
  • প্রতি সেকেন্ডে ১টিরও কম কোয়েরি
  • পূর্ণ-পাঠ্য অনুসন্ধানের জন্য কোনো সমর্থন নেই
  • ভেক্টর এমবেডিং জেনারেশনের জন্য কোনো সমর্থন নেই
  • @view , @col(dataType) , বা নেটিভ SQL-এর মতো SQL ফিচারগুলোর জন্য কোনো সমর্থন নেই।

ক্লাউড SQL ইনস্ট্যান্স পরিচালনা করুন

সাধারণত, আপনি Google Cloud কনসোল ব্যবহার করে আপনার ক্লাউড এসকিউএল ইনস্ট্যান্সগুলো পরিচালনা করতে এবং নিম্নলিখিত কার্যপ্রবাহগুলো সম্পাদন করতে পারেন।

  • ক্লাউড SQL ইনস্ট্যান্সগুলি বন্ধ করুন এবং পুনরায় চালু করুন
  • ক্লাউড SQL ডেটাবেস তৈরি এবং মুছে ফেলুন (ইনস্ট্যান্সের মধ্যে)
  • ফ্ল্যাগ ব্যবহার করে PostgreSQL ডাটাবেস ইনস্ট্যান্স চালু করুন এবং বিভিন্ন এক্সটেনশন ব্যবহার করুন।
  • Google Cloud কনসোলে ক্লাউড এসকিউএল অবজার্ভেবিলিটি ফিচার ব্যবহার করে পারফরম্যান্স নিরীক্ষণ করুন।
  • IAM, সিক্রেট ম্যানেজার, ডেটা এনক্রিপশন এবং অথ প্রক্সির মতো ফিচারগুলির মাধ্যমে ক্লাউড SQL অ্যাক্সেস ও নিরাপত্তা পরিচালনা করুন।
  • ক্লাউড এসকিউএল ব্যবহারকারীদের যুক্ত করুন, মুছে ফেলুন এবং পরিচালনা করুন।

এই এবং অন্যান্য ওয়ার্কফ্লো-এর জন্য, Cloud SQL for PostgreSQL ডকুমেন্টেশন দেখুন।

PostgreSQL ব্যবহারকারীর ভূমিকা মঞ্জুর করুন

SQL Connect ব্যবহারকারীর অ্যাক্সেস পরিচালনার জন্য এমন টুল সরবরাহ করে যা ‘লিস্ট প্রিভিলেজ’ ( সর্বনিম্ন বিশেষাধিকারের নীতি ) (প্রয়োজনীয় কার্যকারিতা সমর্থন করার জন্য প্রতিটি ব্যবহারকারী বা পরিষেবা অ্যাকাউন্টকে ন্যূনতম প্রয়োজনীয় অনুমতি প্রদান করা) এবং ‘রোল-বেসড অ্যাক্সেস কন্ট্রোল’ (RBAC) (ডাটাবেস অনুমতি পরিচালনার জন্য পূর্বনির্ধারিত রোলের মাধ্যমে নিরাপত্তা ব্যবস্থাপনা সহজ করা)-এর ধারণা অনুসরণ করে।

কিছু ক্ষেত্রে, আপনি আপনার পছন্দের কোনো SQL ক্লায়েন্ট, যেমন Cloud Run , Cloud Functions বা GKE ব্যবহার করে সরাসরি SQL Connect দ্বারা পরিচালিত Cloud SQL ডেটাবেসের সাথে সংযোগ করতে চাইতে পারেন।

এই ধরনের সংযোগগুলি সক্ষম করতে, আপনাকে নিম্নলিখিত উপায়ে SQL অনুমতি প্রদান করতে হবে:

  • Google Cloud কনসোল থেকে অথবা gcloud CLI ব্যবহার করে, ইনস্ট্যান্সের সাথে সংযোগ করতে হবে এমন ব্যবহারকারী বা পরিষেবা অ্যাকাউন্টে roles/cloudsql.client IAM রোলটি অ্যাসাইন করা।
  • Firebase CLI ব্যবহার করে প্রয়োজনীয় PostgreSQL রোল প্রদান করা

ক্লাউড SQL IAM ভূমিকা বরাদ্দ করুন

Cloud SQL for PostgreSQL ব্যবহার করে roles/cloudsql.client IAM রোলটি নির্ধারণ করার বিষয়ে তথ্যের জন্য, রোল এবং অনুমতিসমূহ দেখুন।

PostgreSQL ভূমিকা মঞ্জুর করুন

Firebase CLI ব্যবহার করে, আপনি ` firebase dataconnect:sql:grant কমান্ডের মাধ্যমে আপনার প্রোজেক্টের সাথে যুক্ত ব্যবহারকারী বা পরিষেবা অ্যাকাউন্টগুলিকে পূর্বনির্ধারিত PostgreSQL রোল প্রদান করতে পারেন।

উদাহরণস্বরূপ, লেখক ভূমিকা প্রদান করতে, CLI-তে এই কমান্ডটি চালান:

firebase dataconnect:sql:grant --role writer

বিস্তারিত জানতে সিএলআই রেফারেন্স গাইডটি দেখুন।

বিদ্যমান ক্লাউড এসকিউএল ফর পোস্টগ্রেসকিউএল ডেটাবেসগুলিকে একীভূত করুন

ডিফল্ট ডাটাবেস প্রোভিশনিং এবং ম্যানেজমেন্ট ফ্লো ধরে নেয় যে আপনার প্রজেক্ট একটি নতুন (গ্রিনফিল্ড) ডাটাবেস ব্যবহার করছে, এবং যখন আপনি firebase deploy চালান, তখন SQL Connect ডাটাবেস স্কিমাতে করণীয় পরিবর্তনগুলো প্রদর্শন করে এবং আপনার অনুমোদনের পর যেকোনো মাইগ্রেশন সম্পন্ন করে।

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

এই বিভাগে দ্বিতীয় ক্ষেত্রটি সম্পর্কে নির্দেশনা দেওয়া হয়েছে: SQL Connect সাথে বিদ্যমান ডেটাবেসগুলিকে একীভূত করা।

একটি বিদ্যমান ডেটাবেসকে একটি SQL Connect প্রোজেক্টে একীভূত করুন

বিদ্যমান ডেটাবেস একীভূত করার কার্যপ্রবাহে সাধারণত এই ধাপগুলো অন্তর্ভুক্ত থাকে:

  1. Firebase কনসোলে SQL Connect প্রজেক্ট সেটআপ করার সময় ইনস্ট্যান্স এবং ডাটাবেস নির্বাচন করুন।
  2. Firebase CLI ব্যবহার করে firebase dataconnect:sql:setup কমান্ডটি চালান এবং SQL Connect SQL মাইগ্রেশন পরিচালনা করার অনুমতি দেওয়ার বিকল্পটি প্রত্যাখ্যান করুন।

    আপনার নিজস্ব টুলিং দ্বারা চালিত নয় এমন কোনো পরিবর্তন যাতে আপনার ডাটাবেস স্কিমাতে না ঘটে, সেজন্য setup কমান্ডটি উপযুক্ত রিডার এবং রাইটার রোল নির্ধারণ করবে, কিন্তু owner রোল নির্ধারণ করবে না। setup কমান্ড এবং PostgreSQL রোল সম্পর্কে আরও তথ্য CLI রেফারেন্স গাইডে পাওয়া যাবে।

  3. আপনার ডাটাবেস স্কিমার সাথে মেলে এমন একটি SQL Connect GraphQL স্কিমা লিখুন।

    আপনার GraphQL স্কিমা, কোয়েরি এবং মিউটেশনগুলো কেবল তখনই ডেপ্লয় করা যাবে, যখন আপনার GraphQL স্কিমাটি আপনার PostgreSQL স্কিমার সাথে সামঞ্জস্যপূর্ণ হবে।

    উভয় স্কিমা মেলানোর প্রক্রিয়া সহজ করার জন্য, আমরা ` firebase dataconnect:sql:diff কমান্ডটি দিয়েছি, যা আপনার ডাটাবেস মাইগ্রেট করার জন্য প্রয়োজনীয় SQL স্টেটমেন্টগুলো সরবরাহ করবে। আপনার বিদ্যমান ডাটাবেস স্কিমার সাথে মেলানোর জন্য, আপনি এটি ব্যবহার করে পর্যায়ক্রমে আপনার GraphQL স্কিমাটিকে পরিমার্জন করতে পারেন।

  4. এরপরে, আপনি আপনার স্থানীয় ডেভেলপমেন্ট পরিবেশে আপনার GraphQL স্কিমা, কোয়েরি এবং মিউটেশন দ্রুত পরিমার্জন করতে পারবেন। তারপর, সন্তুষ্ট হলে, আপনি firebase dataconnect:sql:diff ব্যবহার করে SQL মাইগ্রেশন স্টেটমেন্টগুলো পেতে পারেন, যা আপনি আপনার নিজস্ব টুলিং এবং ফ্লো ব্যবহার করে PostgreSQL-এ প্রয়োগ করতে পারবেন।

  5. বিকল্পভাবে, আপনি প্রথমে সরাসরি আপনার PostgreSQL ডেটাবেসে পরিবর্তন করতে পারেন, তারপর সেগুলোকে আপনার GraphQL স্কিমাতে পোর্ট করার চেষ্টা করতে পারেন। আমরা GraphQL-first পদ্ধতিটির সুপারিশ করি, কারণ এমন পরিস্থিতিও হতে পারে যেখানে স্কিমার পরিবর্তনগুলো সমর্থিত নাও হতে পারে। এছাড়াও, আপনি যদি এমন কোনো পরিবর্তন প্রয়োগ করেন যা আপনার PostgreSQL স্কিমাকে ডেপ্লয় করা কানেক্টর কোয়েরি বা মিউটেশনের সাথে বেমানান করে তোলে, তাহলে সেই কানেক্টরগুলো কাজ করা বন্ধ করে দিতে পারে বা ভুল আচরণ করতে পারে।