Knowledge Catalog के मेटाडेटा की मदद से, डेटा फ़ाउंडेशन बनाना

1. परिचय

जनरेटिव एआई मॉडल, तर्क करने में माहिर होते हैं. हालांकि, उनके पास संस्थागत संदर्भ नहीं होता. अगर कोई एग्ज़ेक्यूटिव, एआई एजेंट से पूछता है, "पहली तिमाही में हमारा रेवेन्यू कितना है?", तो एजेंट को आपके डेटा लेक में "रेवेन्यू" नाम की दर्जनों टेबल मिल सकती हैं. इनमें से कुछ फ़ाइलें, वित्तीय रिपोर्ट होती हैं और कुछ रीयल-टाइम मार्केटिंग अनुमान होते हैं. इसके अलावा, कई फ़ाइलें ऐसी होती हैं जो शायद अब इस्तेमाल में न हों.

साफ़ तौर पर ग्राउंडिंग न होने पर, एआई एजेंट सिर्फ़ नाम की समानता के आधार पर टेबल चुन लेगा. इससे, बिना पुष्टि वाले डेटा से "गलत" जवाब मिल सकते हैं.

यह कोडलैब, दो हिस्सों वाली सीरीज़ का हिस्सा है. इसमें, गवर्नेंस के बारे में जानकारी रखने वाला एआई एजेंट बनाने का तरीका बताया गया है.

इस पहले हिस्से में, आपको डेटा फ़ाउंडेशन बनाने का तरीका पता चलेगा. आपको BigQuery में एक असल और "अव्यवस्थित" डेटा लेक सेट अप करना होगा. साथ ही, सही डेटा को ग़ैर-ज़रूरी डेटा से अलग करने के लिए, सख्त मेटाडेटा टैग (नॉलेज कैटलॉग के पहलू) लागू करने होंगे. इसके बाद, Antigravity (AGY) सीएलआई का इस्तेमाल करके, स्थानीय तौर पर यह जांच करनी होगी कि एजेंट, डेटा को मैनेज करने के नियमों का सख्ती से पालन करता है या नहीं.

इस सीरीज़ का दूसरा हिस्सा पढ़ें. इसमें मॉडल कॉन्टेक्स्ट प्रोटोकॉल (एमसीपी) और Cloud Run का इस्तेमाल करके, लोकल एजेंट प्रोटोटाइप को सुरक्षित, एंटरप्राइज़-ग्रेड वेब ऐप्लिकेशन में डिप्लॉय करने का तरीका बताया गया है. दूसरा भाग पढ़ें

आपको क्या सीखने को मिलेगा

  • निर्देशों की स्क्रिप्ट का इस्तेमाल करके, रीयल-वर्ल्ड और मल्टी-टियर डेटा लेक को डिप्लॉय करना.
  • Knowledge Catalog में कस्टम मेटाडेटा टेंप्लेट (आस्पेक्ट टाइप) डिज़ाइन और रजिस्टर करें, ताकि आधिकारिक डेटा प्रॉडक्ट को रॉ सैंडबॉक्स टेबल से अलग किया जा सके.
  • कोई भी ऐप्लिकेशन कोड लिखने से पहले, AGY सीएलआई का इस्तेमाल करके, डेटा को मैनेज करने के नियमों की पुष्टि करें.

आपको किन चीज़ों की ज़रूरत होगी

  • बिलिंग की सुविधा वाला Google क्लाउड प्रोजेक्ट.
  • Google Cloud Shell का ऐक्सेस (AGY CLI, Cloud Shell में पहले से इंस्टॉल होता है).
  • BigQuery और नॉलेज कैटलॉग के बारे में बुनियादी जानकारी.

मुख्य सिद्धांत

  • Knowledge Catalog: यह यूनिफ़ाइड मेटाडेटा मैनेजमेंट सेवा है. हम इसका इस्तेमाल, कारोबार के संदर्भ (गवर्नेंस) के साथ तकनीकी मेटाडेटा (स्कीमा) को बेहतर बनाने के लिए करते हैं.
  • Aspect Type: स्ट्रक्चर्ड मेटाडेटा टेंप्लेट. फ़्री-टेक्स्ट टैग के उलट, आस्पेक्ट में स्ट्रॉन्ग टाइपिंग (enum, बूलियन) का इस्तेमाल किया जाता है. इससे मशीनों के लिए, उनका आकलन करना आसान हो जाता है.

2. सेटअप और ज़रूरी शर्तें

Cloud Shell शुरू करना

Google Cloud को आपके लैपटॉप से रिमोटली ऑपरेट किया जा सकता है. हालांकि, इस कोडलैब में आपको Google Cloud Shell का इस्तेमाल करना होगा. यह क्लाउड में चलने वाला कमांड लाइन एनवायरमेंट है.

Google Cloud Console में जाकर, सबसे ऊपर दाईं ओर मौजूद टूलबार में Cloud Shell आइकॉन पर क्लिक करें:

Cloud Shell चालू करें

एनवायरमेंट को सेट अप करने और उससे कनेक्ट होने में कुछ ही समय लगना चाहिए. इसके पूरा होने पर, आपको कुछ ऐसा दिखेगा:

Google Cloud Shell टर्मिनल का स्क्रीनशॉट, जिसमें दिख रहा है कि एनवायरमेंट कनेक्ट हो गया है

इस वर्चुअल मशीन में, डेवलपमेंट के लिए ज़रूरी सभी टूल मौजूद हैं. यह 5 जीबी की होम डायरेक्ट्री उपलब्ध कराता है. साथ ही, यह Google Cloud पर चलता है. इससे नेटवर्क की परफ़ॉर्मेंस और पुष्टि करने की प्रोसेस बेहतर होती है. इस कोडलैब का सारा काम ब्राउज़र में किया जा सकता है. आपको कुछ भी इंस्टॉल करने की ज़रूरत नहीं है.

एनवायरमेंट शुरू करना

Cloud Shell खोलें और अपने प्रोजेक्ट वैरिएबल सेट करें, ताकि यह पक्का किया जा सके कि सभी कमांड सही इंफ़्रास्ट्रक्चर को टारगेट करें.

export PROJECT_ID=$(gcloud config get-value project)
gcloud config set project $PROJECT_ID
export REGION="us-central1"

एपीआई चालू करें

नीचे दिए गए निर्देश को लागू करने के लिए, Google Cloud की ज़रूरी सेवाएं चालू करें.

gcloud services enable \
  bigquery.googleapis.com \
  dataplex.googleapis.com

डेटाबेस को क्लोन करना

GitHub रिपॉज़िटरी से इन्फ़्रास्ट्रक्चर कोड और ऑटोमेशन स्क्रिप्ट पाएं. Cloud Shell में डिस्क स्पेस बचाने के लिए, हम सिर्फ़ उस फ़ोल्डर को डाउनलोड करेंगे जिसकी ज़रूरत इस लैब के लिए है.

# Perform a shallow clone to get only the latest repository structure without the full history
git clone --depth 1 --filter=blob:none --sparse https://github.com/GoogleCloudPlatform/devrel-demos.git
cd devrel-demos
# Specify and download only the folder we need for this lab
git sparse-checkout set data-analytics/governance-context
cd data-analytics/governance-context

"अव्यवस्थित" डेटा लेक बनाना

असल दुनिया में डेटा एनवायरमेंट शायद ही कभी साफ़ होते हैं. असल दुनिया की तरह काम करने के लिए, हमें "आधिकारिक" डेटा मार्ट और भरोसेमंद न होने वाली "सैंडबॉक्स" टेबल का कॉम्बिनेशन चाहिए.

हम BigQuery डेटासेट और टेबल को डिप्लॉय करने के लिए, सेटअप स्क्रिप्ट का इस्तेमाल करेंगे.

  1. निर्देशों की स्क्रिप्ट को एक्ज़ीक्यूटेबल बनाएं और उसे चलाएं. इससे तीन BigQuery डेटासेट (finance_mart, marketing_prod, analyst_sandbox) बन जाएंगे और उनकी टेबल में सैंपल डेटा भर जाएगा.
chmod +x ./setup_bq_tables.sh
./setup_bq_tables.sh

चेक पॉइंट: अब आपके पास एक ऐसा डेटा लेक है जिसमें पूरा डेटा मौजूद है, लेकिन उसे मैनेज नहीं किया गया है. एआई के लिए, हर टेबल एक जैसी दिखती है.

3. डेटा को मैनेज करने वाला टेंप्लेट (आसपेक्ट टाइप) बनाना

अब हम डेटा को मैनेज करने के कुछ नियम तय करेंगे. Knowledge Catalog में, ऐसा करने के लिए आस्पेक्ट टाइप बनाया जाता है. यह फिर से इस्तेमाल किया जा सकने वाला, स्ट्रॉन्गली-टाइप्ड मेटाडेटा टेंप्लेट होता है.

हम इस टेंप्लेट को gcloud सीएलआई का इस्तेमाल करके रजिस्टर करेंगे, ताकि आप देख सकें कि इसे कैसे तय किया गया है.

आसपेक्ट स्कीमा की जांच करना

स्कीमा की परिभाषा देखने के लिए, aspect_template.json का कॉन्टेंट आउटपुट करें.

cat aspect_template.json

यह आपको यहां दिया गया JSON स्ट्रक्चर दिखाएगा:

{
  "name": "OfficialDataProductSpec",
  "type": "record",
  "recordFields": [
    {
      "name": "product_tier",
      "type": "enum",
      "enumValues": [
        { "name": "GOLD_CRITICAL", "index": 1 },
        { "name": "SILVER_STANDARD", "index": 2 },
        { "name": "BRONZE_ADHOC", "index": 3 }
      ],
      ...
    },
    {
      "name": "is_certified",
      "type": "bool",
      ...
    }
  ]
}

ध्यान दें कि यह स्कीमा, डेटा टाइप को सख्ती से लागू करता है. जैसे, क्रिटिकैलिटी टियर (GOLD_CRITICAL, SILVER_STANDARD, BRONZE_ADHOC) के लिए enum और is_certified के लिए bool. इससे यह पक्का होता है कि मेटाडेटा स्ट्रक्चर्ड रहे और मशीन उसे आसानी से पढ़ सके.

आस्पेक्ट टाइप रजिस्टर करना

इस टेंप्लेट को अपनी नॉलेज कैटलॉग रजिस्ट्री में रजिस्टर करने के लिए, यह gcloud कमांड चलाएं.

gcloud dataplex aspect-types create official-data-product-spec \
    --location="${REGION}" \
    --project="${PROJECT_ID}" \
    --description="Defines the comprehensive profile of a data product for governance agents." \
    --display-name="Official Data Product Spec" \
    --metadata-template-file-name="aspect_template.json"

4. गवर्नेंस लागू करना

यह इंजीनियरिंग का एक अहम चरण है. फ़िलहाल, टेबल finance_mart.fin_monthly_closing_internal और analyst_sandbox.tmp_data_dump_v2_final_real, एलएलएम के लिए एक जैसी दिखती हैं. ये कॉलम वाले ऑब्जेक्ट होते हैं.

गवर्नेंस इंजीनियर के तौर पर, आपको इन टेबल में अंतर करने के लिए, इनमें एक आस्पेक्ट (सर्टिफ़ाइड मेटाडेटा लेबल) अटैच करना होगा. किसी असल एंटरप्राइज़ में, इसे सीआई/सीडी पाइपलाइन के ज़रिए ऑटोमेट किया जा सकता है. हम स्क्रिप्ट की मदद से, उस ऑटोमेशन को सिम्युलेट करेंगे.

गवर्नेंस पेलोड जनरेट करना

Knowledge Catalog की एस्पेक्ट की, दुनिया भर में यूनीक होनी चाहिए. इसके लिए, अपने प्रोजेक्ट आईडी को प्रीफ़िक्स के तौर पर इस्तेमाल करें. ./generate_payloads.sh स्क्रिप्ट, YAML मेटाडेटा फ़ाइलों को डाइनैमिक तौर पर जनरेट करेगी.

chmod +x ./generate_payloads.sh
./generate_payloads.sh

आउटपुट:

इससे "./aspect_payloads" नाम का एक फ़ोल्डर बनता है. इसमें चार YAML फ़ाइलें होती हैं, जो गवर्नेंस के अलग-अलग लेवल (गोल्ड/इंटरनल, गोल्ड/पब्लिक, सिल्वर/रीयलटाइम, ब्रॉन्ज़/सैंडबॉक्स) को तय करती हैं.

सीएलआई की मदद से एस्पेक्ट लागू करना

स्क्रिप्ट को चलाने से पहले, आइए देखें कि हम असल में क्या लागू कर रहे हैं, ताकि प्रोसेस को आसानी से समझा जा सके. इंटरनल फ़ाइनेंस पेलोड का स्ट्रक्चर देखने के लिए, यह कमांड चलाएं:

cat aspect_payloads/fin_internal.yaml

इसमें आपको ये कॉन्टेंट दिखेंगे.

your-project-id.us-central1.official-data-product-spec:
  data:
    product_tier: GOLD_CRITICAL
    data_domain: FINANCE
    usage_scope: INTERNAL_ONLY
    update_frequency: DAILY_BATCH
    is_certified: true

ध्यान दें कि यह YAML, कारोबार के संदर्भ को साफ़ तौर पर कैसे तय करता है. जैसे, is_certified: true फ़्लैग सेट करना और GOLD_CRITICAL टियर असाइन करना. एलएलएम को आकलन करने के लिए साफ़ और स्ट्रक्चर्ड नियम देना, न कि सिर्फ़ टेबल के नामों के आधार पर अनुमान लगाना.

अब ऐप्लिकेशन स्क्रिप्ट चलाएं. यह BigQuery टेबल को बार-बार दोहराता है और इस रिजिड मेटाडेटा को अटैच करने के लिए, gcloud dataplex entries update कमांड को लागू करता है.

chmod +x ./apply_governance.sh
./apply_governance.sh

पुष्टि करना (ज़रूरी नहीं)

आगे बढ़ने से पहले, पुष्टि करें कि कंसोल में मेटाडेटा सही तरीके से लागू किया गया है.

  1. Google Cloud Console में Knowledge Catalog पेज खोलें. अगर आपको बाईं ओर मौजूद नेविगेशन मेन्यू में "Knowledge Catalog" नहीं दिखता है, तो Google Cloud Console विंडो में सबसे ऊपर मौजूद खोज बार का इस्तेमाल करें. इसके बाद, "Knowledge Catalog" टाइप करें और "सबसे काम के नतीजे" या "प्रॉडक्ट और पेज" में जाकर नतीजा चुनें.
  2. fin_monthly_closing_internal खोजें. आपको नतीजों में BigQuery टेबल दिखेगी. टेबल के नाम पर क्लिक करके, ज़्यादा जानकारी वाले पेज पर जाएं.

13d068a8cd0bfda9.png

  1. टेबल की ज़्यादा जानकारी वाले पेज पर, सबसे नीचे मौजूद "ज़रूरी नहीं टैग और पहलू" सेक्शन पर जाएं.
  2. आपको official-data-product-spec पहलू दिखेगा. पुष्टि करें कि वैल्यू, "गोल्ड इंटरनल" वाली स्थिति से मेल खाती हों.

56726f62e1ac311a.png

अब आपने पुष्टि कर ली है कि तकनीकी तौर पर एक जैसी BigQuery टेबल (fin_monthly_closing_internal और tmp_data_dump_v2_final_real) को, मशीन से पढ़े जा सकने वाले मेटाडेटा के आधार पर अलग-अलग किया जाता है.

5. एजेंट को कॉन्फ़िगर करना और उसका प्रोटोटाइप बनाना

ऐप्लिकेशन बनाने से पहले (जो हम दूसरे भाग में करेंगे), हम डेटा को मैनेज करने के लॉजिक की पुष्टि स्थानीय तौर पर करेंगे. हमें Knowledge Catalog प्लगिन इंस्टॉल करना होगा और एजेंट स्किल को कॉन्फ़िगर करना होगा.

एक्सटेंशन इंस्टॉल करना

Cloud Shell में, Knowledge Catalog प्लगिन इंस्टॉल करें. यह आपसे पुष्टि करने और सेटअप की जानकारी देने के लिए कहेगा.

export DATAPLEX_PROJECT="${PROJECT_ID}"

agy plugin install https://github.com/gemini-cli-extensions/dataplex

एजेंट की स्किल की जांच करना

एजेंट स्किल, एक स्टैटिक और फिर से इस्तेमाल की जा सकने वाली डेफ़िनिशन फ़ाइल होती है. यह .agents/skills/knowledge_catalog_governance/SKILL.md में मौजूद होती है. इसमें वह लॉजिक शामिल है जो इंसानों के बनाए गए नियमों (जैसे, "मुझे सुरक्षित डेटा चाहिए") को तकनीकी लुकअप में बदलता है.

एआई को सिखाए जा रहे एल्गोरिदम को समझने के लिए, फ़ाइल की जांच करें:

cat .agents/skills/knowledge_catalog_governance/SKILL.md

ध्यान दें कि यह मॉडल को साफ़ तौर पर निर्देश देता है कि वह पहले चरण (मेटाडेटा की पुष्टि) और दूसरे चरण (क्वेरी को लागू करना) के लूप का सख्ती से पालन करे. कोई भी SQL बनाने से पहले, मॉडल को मेटाडेटा खोजना और उसकी पुष्टि करनी होगी.

एजेंट को चालू करना और स्थितियों की जांच करना

AGY सीएलआई सेशन शुरू करें. यह .agents/skills डायरेक्ट्री से स्किल को अपने-आप खोजेगा और लोड करेगा.

agy

ध्यान दें: आपको एक से ज़्यादा कॉन्टेक्स्ट फ़ाइलें लोड होती हुई दिख सकती हैं. यह आम बात है. सीएलआई, इस प्रोजेक्ट के खास नियमों के लिए लोकल स्किल लोड करता है. साथ ही, नॉलेज कैटलॉग प्लग इन के लिए डिफ़ॉल्ट निर्देश भी लोड करता है.

इंस्टॉल हो जाने की पुष्टि करें

यह पुष्टि करने के लिए कि नॉलेज कैटलॉग प्लगइन चालू है, /mcp टाइप करें. आपको knowledge-catalog, चालू प्लग इन के तौर पर दिखना चाहिए. साथ ही, इसके उपलब्ध टूल भी दिखने चाहिए.

/mcp

अनुमानित आउटपुट:

MCP Servers
...
>  ✓ knowledge-catalog  Tools: search_entries, lookup_context, lookup_entry

टेस्ट सिनेरियो (प्रोटोटाइपिंग)

चल रहे एजेंट सेशन में, एक-एक करके ये प्रॉम्प्ट चिपकाएं. इससे यह पुष्टि की जा सकेगी कि एजेंट आपके नियमों का पालन करता है.

  • स्थिति A (सीएफ़ओ के डेटा को प्रमाणित करना):
"We are preparing the deck for an internal Board of Directors meeting next week. I need the numbers to be absolutely finalized, trustworthy, and kept strictly confidential. Which table is safe to use?"

नतीजा: एजेंट अपने टूल की मदद से, आपके चालू प्रोजेक्ट और इलाके का अपने-आप पता लगाता है. साथ ही, fin_monthly_closing_internal के बारे में क्वेरी करता है, क्योंकि यह Aspect में GOLD_CRITICAL (सटीक) और INTERNAL_ONLY (बोर्ड मीटिंग) से मेल खाता है. इसके बाद, वह इसका सुझाव देता है.

  • दूसरी स्थिति (सार्वजनिक तौर पर जानकारी ज़ाहिर करना):
"I need to share our quarterly financial summary with an external consulting firm. It is critical that we do not leak any raw or internal metrics. Which dataset is officially scrubbed and explicitly approved for external sharing?"

उम्मीद के मुताबिक जवाब: एजेंट को हर महीने के इंटरनल टेबल को बायपास करना चाहिए और सिर्फ़ fin_quarterly_public_report को चुनना चाहिए. इसकी वजह यह है कि सिर्फ़ इसी ऐसेट को EXTERNAL_READY के तौर पर टैग किया गया है.

  • तीसरी स्थिति (ऑपरेशन से जुड़ी ज़रूरतें):
"My dashboard needs to show what's happening right now with our ad spend. I can't wait for the overnight load. What do you recommend?"

उम्मीद के मुताबिक: एजेंट mkt_realtime_campaign_performance को चुनता है, क्योंकि इससे REALTIME_STREAMING अपडेट का अंतराल का पता चलता है. साथ ही, फ़ाइनेंस डेटा के GOLD_CRITICAL टियर के मुकाबले इसे प्राथमिकता दी जाती है.

  • चौथी स्थिति (सैंडबॉक्स एक्सपेरिमेंट):
"I'm just playing around with some new ML models and need a lot of raw data. It doesn't need to be perfect, just a sandbox environment."

उम्मीद के मुताबिक: एजेंट tmp_data_dump_v2_final_real को चुनता है, क्योंकि यह अपने पहलू में BRONZE_ADHOC (रॉ डेटा) और is_certified: false (सैंडबॉक्स एनवायरमेंट) से मेल खाता है.

(AGY सेशन से बाहर निकलने के लिए, /exit या /quit टाइप करें)

6. बधाई हो! आगे क्या करना है?

आपने डेटा को मैनेज करने के लिए एक मज़बूत फ़ाउंडेशन तैयार कर लिया है. साथ ही, यह साबित कर दिया है कि एआई, लोकल सीएलआई प्रोटोटाइप का इस्तेमाल करके, आपके मेटाडेटा के नियमों का सख्ती से पालन कर सकता है!

अब आपने एक चेकपॉइंट पूरा कर लिया है. कृपया अगला चरण चुनें:

पहला विकल्प: मुझे अभी दूसरे पार्ट पर जाना है!

अगर आपको मॉडल कॉन्टेक्स्ट प्रोटोकॉल (एमसीपी) और Cloud Run का इस्तेमाल करके, इस लोकल प्रोटोटाइप को सुरक्षित और प्रोडक्शन-ग्रेड वाले वेब ऐप्लिकेशन में बदलना है, तो:

👉 कोडलैब के दूसरे पार्ट का लिंक

विकल्प B: मुझे दूसरा हिस्सा बाद में पूरा करना है या मुझे सिर्फ़ पहला हिस्सा पूरा करना था.

अगर आपको आज के लिए काम रोकना है और क्लाउड के शुल्क से बचना है, तो आपको अपने संसाधनों को हटा देना चाहिए.

चिंता न करें! दूसरे भाग में, हम आपको एक "फ़ास्ट-ट्रैक स्क्रिप्ट" उपलब्ध कराएंगे. यह स्क्रिप्ट, पहले भाग के एनवायरमेंट को सिर्फ़ दो मिनट में फिर से तैयार कर देगी, ताकि आप वहीं से शुरू कर सकें जहां आपने छोड़ा था.

👉 स्टोरेज खाली करने वाले सेक्शन पर जाएं.

7. क्लीन अप (सिर्फ़ विकल्प B के लिए)

अगर आपको आगे नहीं बढ़ना है, तो रिसॉर्स को मिटा दें, ताकि आपको शुल्क न देना पड़े.

डेटा लेक को मिटाना

अगर फ़िलहाल AGY सीएलआई सेशन चालू है, तो Ctrl+C को दो बार दबाकर या /quit टाइप करके सेशन से बाहर निकलें. इसके बाद, ये कमांड दें:

chmod +x ./cleanup_data_lake.sh
./cleanup_data_lake.sh

AGY CLI प्लग इन को अनइंस्टॉल करना और लोकल फ़ाइलें हटाना

agy plugin uninstall dataplex
cd ~
rm -rf ~/devrel-demos