গুগল ক্লাউড স্প্যানার ডাটাবেস এক্সটেনশন

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান
তথ্য

সংস্করণ 2.0.2

ক্লাউড স্প্যানার ডাটাবেসে সন্নিবেশ, কোয়েরি এবং আপডেটের কাজ সম্পাদন করুন।

এই কন্টেন্টটি এই এক্সটেনশনটি কনফিগার এবং ব্যবহারের জন্য রেফারেন্স প্রদান করে। ExtensionCallout নীতি ব্যবহার করে একটি API প্রক্সি থেকে এক্সটেনশনটি ব্যবহার করার আগে, আপনাকে অবশ্যই:

  1. Creating and Managing Instances -এ বর্ণিত একটি Cloud Spanner ইনস্ট্যান্স তৈরি করুন এবং একটি ডাটাবেস তৈরি করুন।

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

  3. যখন আপনার এমন একটি পরিষেবা অ্যাকাউন্ট থাকে যার কাছে আপনার পছন্দসই ডাটাবেসে অ্যাক্সেসের স্তরের অনুমতি থাকে, তখন পরিষেবা অ্যাকাউন্টের জন্য একটি কী তৈরি করতে Google Cloud Console ব্যবহার করুন । এই এক্সটেনশনটি কনফিগার করার সময় ফলাফল কী JSON ফাইলের বিষয়বস্তু ব্যবহার করুন।

  4. কনফিগারেশন রেফারেন্স ব্যবহার করে এক্সটেনশন যোগ এবং কনফিগার করার সময় ফলাফল কী JSON ফাইলের বিষয়বস্তু ব্যবহার করুন।

ক্লাউড স্প্যানার সম্পর্কে

ক্লাউড স্প্যানার হল একটি রিলেশনাল ডাটাবেস পরিষেবা যা রিলেশনাল, স্ট্রাকচার্ড এবং সেমি-স্ট্রাকচার্ড ডেটার জন্য উপযোগী যার জন্য উচ্চ প্রাপ্যতা, শক্তিশালী ধারাবাহিকতা এবং লেনদেনমূলক পঠন এবং লেখার প্রয়োজন।

আপনি যদি ক্লাউড স্প্যানার দিয়ে শুরু করেন, তাহলে ক্লাউড স্প্যানার ডকুমেন্টেশনের কুইকস্টার্টটি শুরু করার জন্য একটি ভালো জায়গা।

নমুনা

নিম্নলিখিত উদাহরণগুলি ExtensionCallout নীতি ব্যবহার করে ক্লাউড স্প্যানার এক্সটেনশন অ্যাকশনের জন্য সমর্থন কীভাবে কনফিগার করতে হয় তা ব্যাখ্যা করে।

ডেটা যোগ করুন

নিম্নলিখিত উদাহরণে, এক্সটেনশনের insert ক্রিয়া ব্যবহারকারী টেবিলে একটি নতুন ব্যবহারকারী যুক্ত করে।

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Insert-New-User">
    <DisplayName>Insert New User</DisplayName>
    <Connector>spanner-users-products</Connector>
    <Action>insert</Action>
    <Input><![CDATA[{
        "tableName" : "user",
        "rows" : [{
          "username": "jonesy42",
          "firstName": "Floyd",
          "lastName": "Jones",
          "address": "3695 Auctor Street",
          "city": "Gresham",
          "region": "OR",
          "postalCode": "12693",
          "email": "floydster@example.com"
      }]
  }]]></Input>
</ConnectorCallout>

তথ্য পান

এই উদাহরণে, একটি কোয়েরি user টেবিল থেকে ব্যবহারকারীর নাম এবং ইমেল মান পুনরুদ্ধার করে।

প্রথমত, একটি AssignMessage নীতি একটি কোয়েরি WHERE ধারায় ব্যবহারের জন্য একটি postal.code.value ভেরিয়েবল নির্ধারণ করে। এটি একটি উদাহরণ। আপনার নীতি সম্ভবত ক্লায়েন্ট অনুরোধ প্যারামিটারের উপর ভিত্তি করে মান নির্ধারণ করবে।

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Postal-Code">
    <AssignTo createNew="true" transport="http" type="request"/>
    <AssignVariable>
        <Name>postal.code</Name>
        <Value>86519</Value>
    </AssignVariable>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</AssignMessage>

নিম্নলিখিত ExtensionCallout নীতিটি WHERE ধারার postal.code.value ভেরিয়েবলের বিষয়বস্তু ব্যবহার করে ডাটাবেসের বিরুদ্ধে একটি কোয়েরি কার্যকর করে।

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Get-User-Data">
    <DisplayName>Get User Data</DisplayName>
    <Connector>spanner-users-products</Connector>
    <Action>querySQL</Action>
    <Input><![CDATA[{
      "sql" : "SELECT username, email FROM user WHERE postalCode = @postalCode",
      "params" : {
        "postalCode" : "{postal.code.value}"
      }
    }]]></Input>
  <Output>spanner.userdata.retrieved</Output>
</ConnectorCallout>

নিম্নলিখিত AssignMessage নীতিটি তখন এক্সটেনশনের প্রতিক্রিয়া ব্যবহার করে, যা spanner.userdata.retrieved ভেরিয়েবলে সংরক্ষিত থাকে, কারণ প্রতিক্রিয়াটি ক্লায়েন্টের কাছে ফিরে আসে।

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-Query-Response-Data">
    <DisplayName>Get Query Response Data</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <Set>
        <Payload contentType="application/json">{spanner.userdata.retrieved}</Payload>
    </Set>
</AssignMessage>

এই উদাহরণে, প্রতিক্রিয়া ডেটা JSON হিসাবে ফেরত পাঠানো হয়েছে যেমন নিম্নলিখিত।

{
  "rows": [
    {
      "username": "freewill444",
      "email": "freewill@example.com"
    }
  ]
}

ডেটা আপডেট করুন

এই উদাহরণে, <Input> উপাদানটিতে username -- টেবিলের প্রাথমিক কী -- এবং email কলামের জন্য একটি নতুন মান রয়েছে।

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Update-User-Data">
    <DisplayName>Update User Data</DisplayName>
    <Connector>spanner-users-products</Connector>
    <Action>update</Action>
    <Input><![CDATA[{
        "tableName" : "user",
        "rows": [{
            "username":"Liz456",
            "email":"lizzard@example.com"
        }]
    }]]></Input>
</ConnectorCallout>

কর্ম

ঢোকান

ডাটাবেসে নির্দিষ্ট সারি সন্নিবেশ করায়।

বাক্য গঠন

<Action>insert</Action>
<Input><![CDATA[{
  "tableName" : "table-to-insert-into",
  "rows" : "rows-to-insert"
}]]></Input>

উদাহরণ

নিম্নলিখিত উদাহরণে, এক্সটেনশনের insert ক্রিয়া ব্যবহারকারী টেবিলে একটি নতুন ব্যবহারকারী যুক্ত করে। একটি সারি যুক্ত করা হয়।

<Action>insert</Action>
<Input><![CDATA[{
    "tableName" : "user",
    "rows" : [{
      "username": "jonesy42",
      "firstName": "Floyd",
      "lastName": "Jones",
      "address": "3695 Auctor Street",
      "city": "Gresham",
      "region": "OR",
      "postalCode": "12693",
      "email": "floydster@example.com"
  }]
}]]></Input>

অনুরোধের প্যারামিটার

প্যারামিটার বিবরণ আদর্শ ডিফল্ট প্রয়োজনীয়
টেবিলের নাম ডাটাবেসের টেবিল যেখানে সারিগুলি সন্নিবেশ করা উচিত। স্ট্রিং কোনোটিই নয়। হ্যাঁ।
সারি একটি rows JSON অবজেক্টে অ্যারে হিসেবে যে সারিগুলি সন্নিবেশ করাতে হবে। অ্যারে কোনোটিই নয়। হ্যাঁ।

প্রতিক্রিয়া

কোনোটিই নয়।

কোয়েরিএসকিউএল

নির্দিষ্ট প্যারামিটার সহ SQL স্টেটমেন্ট ব্যবহার করে ডাটাবেসকে জিজ্ঞাসা করে। @-prepended নামের সাথে SQL স্টেটমেন্টে প্যারামিটারগুলি দেওয়া হয়; এই অ্যাকশনের params প্যারামিটারে প্যারামিটার মানগুলি নির্দিষ্ট করা হয়।

ক্লাউড স্প্যানার কোয়েরি সিনট্যাক্স সম্পর্কে বিস্তারিত জানার জন্য, কোয়েরি সিনট্যাক্স দেখুন।

বাক্য গঠন

<Action>querySQL</Action>
<Input><![CDATA[{
  "sql" : "sql-query-statement",
  "params" : {
    "param1" : "columnValue"
  }
}]]></Input>

উদাহরণ

এই উদাহরণে, একটি কোয়েরি user টেবিল থেকে username এবং email কলামের মান পুনরুদ্ধার করে। SQL স্টেটমেন্টটি একটি postalCode প্যারামিটার নির্দিষ্ট করে যা flow ভেরিয়েবল postal.code.value থেকে সেট করা হয়।

<Action>querySQL</Action>
<Input><![CDATA[{
  "sql" : "SELECT username, email FROM user WHERE postalCode = @postalCode",
  "params" : {
    "postalCode" : "{postal.code.value}"
  }
}]]></Input>

অনুরোধের প্যারামিটার

প্যারামিটার বিবরণ আদর্শ ডিফল্ট প্রয়োজনীয়
এসকিউএল যে SQL কোয়েরিটি চালানো হবে। আপনি @-prepended প্যারামিটার নাম দিয়ে প্যারামিটার নির্দিষ্ট করতে পারেন। এই প্যারামিটার নামগুলি অবশ্যই এই অ্যাকশনের params কীগুলির সাথে সঙ্গতিপূর্ণ হতে হবে। স্ট্রিং কোনোটিই নয়। হ্যাঁ।
প্যারামিটার একটি অবজেক্ট যার কী এবং মান হল SQL কোয়েরিতে ব্যবহৃত প্যারামিটারের নাম এবং মান। আপনি এখানে একাধিক প্যারামিটার তালিকাভুক্ত করতে পারেন। বস্তু কোনোটিই নয়। না।

প্রতিক্রিয়া

ক্যোয়ারী দ্বারা ফেরত পাঠানো কলামের নাম-মান জোড়ার একটি অ্যারে ধারণকারী একটি rows বস্তু। উদাহরণস্বরূপ:

{
  "rows": [
    {
      "username": "freewill444",
      "email": "freewill@example.com"
    }
  ]
}

আপডেট

নির্দিষ্ট ডেটা দিয়ে ডাটাবেসের সারি আপডেট করে।

বাক্য গঠন

<Input><![CDATA[{
  "tableName" : "table-with-rows-to-update",
  "rows" : "rows-to-update"
}]]></Input>

উদাহরণ

এই উদাহরণে, Liz456 username ইমেল ঠিকানাটি একটি নতুন মান দিয়ে আপডেট করা হয়েছে। একটি সারি আপডেট করা হয়েছে।

<Action>update</Action>
<Input><![CDATA[{
  "tableName" : "user",
  "rows": [{
      "username":"Liz456",
      "email":"lizzard@example.com"
  }]
}]]></Input>

অনুরোধের প্যারামিটার

প্যারামিটার বিবরণ আদর্শ ডিফল্ট প্রয়োজনীয়
টেবিলের নাম ডাটাবেসের টেবিল যেখানে সারি আপডেট করা উচিত। স্ট্রিং কোনোটিই নয়। হ্যাঁ।
সারি আপডেট করার জন্য সারি ডেটার একটি অ্যারে। অ্যারের প্রতিটি সত্তায় আপডেট করার জন্য সারিটির অনন্য আইডি (যেমন প্রাথমিক কী) মান থাকা উচিত। অ্যারে কোনোটিই নয়। হ্যাঁ।

প্রতিক্রিয়া

কোনোটিই নয়।

কনফিগারেশন রেফারেন্স

API প্রক্সিতে ব্যবহারের জন্য এই এক্সটেনশনটি কনফিগার এবং স্থাপন করার সময় নিম্নলিখিতগুলি ব্যবহার করুন। Apigee কনসোল ব্যবহার করে একটি এক্সটেনশন কনফিগার করার পদক্ষেপগুলির জন্য, একটি এক্সটেনশন যোগ করা এবং কনফিগার করা দেখুন।

সাধারণ এক্সটেনশন বৈশিষ্ট্য

নিম্নলিখিত বৈশিষ্ট্যগুলি প্রতিটি এক্সটেনশনের জন্য উপস্থিত রয়েছে।

সম্পত্তি বর্ণনা ডিফল্ট প্রয়োজন
name আপনি এক্সটেনশনের এই কনফিগারেশনের নাম দিন। কোনোটিই নয় হ্যাঁ
packageName Apigee Edge দ্বারা প্রদত্ত এক্সটেনশন প্যাকেজের নাম। কোনোটিই নয় হ্যাঁ
version যে এক্সটেনশন প্যাকেজ থেকে আপনি একটি এক্সটেনশন কনফিগার করছেন তার সংস্করণ নম্বর। কোনোটিই নয় হ্যাঁ
configuration আপনি যে এক্সটেনশনটি যোগ করছেন তার জন্য নির্দিষ্ট কনফিগারেশন মান। এই এক্সটেনশন প্যাকেজের বৈশিষ্ট্য দেখুন কোনোটিই নয় হ্যাঁ

এই এক্সটেনশন প্যাকেজের বৈশিষ্ট্যাবলী

এই এক্সটেনশনের জন্য নির্দিষ্ট নিম্নলিখিত কনফিগারেশন বৈশিষ্ট্যের জন্য মান নির্দিষ্ট করুন।

সম্পত্তি বিবরণ ডিফল্ট প্রয়োজনীয়
প্রজেক্ট আইডি ডাটাবেস ধারণকারী Google ক্লাউড প্রকল্পের আইডি। কোনোটিই নয়। হ্যাঁ।
উদাহরণ আইডি আপনার Google ক্লাউড প্রোজেক্টে ক্লাউড স্প্যানার ইনস্ট্যান্সের আইডি। কোনোটিই নয়। হ্যাঁ।
ডাটাবেস আইডি ক্লাউড স্প্যানার ডাটাবেসের আইডি। কোনোটিই নয়। হ্যাঁ।
শংসাপত্র Apigee Edge কনসোলে প্রবেশ করালে, এটি আপনার পরিষেবা অ্যাকাউন্ট কী ফাইলের বিষয়বস্তু। ম্যানেজমেন্ট API ব্যবহার করে পাঠানো হলে, এটি পরিষেবা অ্যাকাউন্ট কী ফাইল থেকে তৈরি একটি base64-এনকোডেড মান। কোনোটিই নয়। হ্যাঁ।