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

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

সংস্করণ 1.4.2

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

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

  1. একটি ক্লাউড স্প্যানার ইনস্ট্যান্স তৈরি করুন, যেমনটি ইনস্ট্যান্স তৈরি এবং পরিচালনায় বর্ণিত হয়েছে এবং একটি ডাটাবেস তৈরি করুন৷

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

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

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

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

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

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

নমুনা

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

ডেটা যোগ করুন

নিম্নলিখিত উদাহরণে, এক্সটেনশনের 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>

পরামিতি অনুরোধ

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

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

কোনোটিই নয়।

querySQL

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

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

সিনট্যাক্স

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

উদাহরণ

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

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

পরামিতি অনুরোধ

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

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

কলামের নাম-মানের জোড়ার একটি অ্যারে সমন্বিত একটি rows বস্তু যা কোয়েরি দ্বারা ফিরে আসে। যেমন:

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

আপডেট

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

সিনট্যাক্স

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

উদাহরণ

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

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

পরামিতি অনুরোধ

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

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

কোনোটিই নয়।

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

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

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

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

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

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

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

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