तीसरी लैब: BigQuery Graph और कन्वर्सेशनल ऐनलिटिक्स की मदद से, खोए हुए कार्गो का पता लगाना

1. परिचय

खोए हुए कार्गो की जांच के आखिरी चरण में आपका स्वागत है! लंदन से सिडनी तक, Android फ़िगरीन के चोरी हुए कंटेनर को ट्रैक करने के बाद, अब कोई सुराग नहीं मिला है. ट्रांसपोंडर बंद होने की वजह से, कंटेनर के स्मार्ट सुरक्षा वॉल्ट ने अपने-आप इमरजेंसी लॉकडाउन को ट्रिगर कर दिया है.

ज़्यादा कीमत वाले कार्गो को हमेशा के लिए लॉक होने से बचाने के लिए, आपको कंटेनर की आखिरी जगह का पता लगाना होगा और वॉल्ट को मैन्युअल तरीके से अनलॉक करने के लिए, मैन्युअल ओवरराइड पासकोड हासिल करना होगा.

Lost Cargo Lab 3 कन्वर्सेशनल ऐनलिटिक्स आर्किटेक्चर की झलक

लापता कंटेनर का पता लगाने और कार्गो को सुरक्षित करने के लिए, शिपमेंट की यात्रा को ट्रैक करने के लिए BigQuery प्रॉपर्टी ग्राफ़ बनाया जाएगा. इसके बाद, Conversational Analytics का इस्तेमाल करके, इस नेटवर्क से नैचुरल लैंग्वेज में क्वेरी की जाएगी. इसके बाद, Knowledge Catalog का इस्तेमाल करके, अपने डेटा के मेटाडेटा पर सिमैंटिक सर्च की जाएगी, ताकि ओवरराइड कोड का पता लगाया जा सके.

💡 क्या आपने Lab 1 या Lab 2 पूरा नहीं किया है? चिंता न करें! यह लैब पूरी तरह से सेल्फ-कंटेन्ड है. एनवायरमेंट सेटअप करने के चरणों में, आपको ज़रूरी सभी चीज़ें मिलेंगी. इससे आपको सीधे तौर पर काम शुरू करने और इसे अपने हिसाब से पूरा करने में मदद मिलेगी.

आपको क्या करना होगा

  • रिपॉज़िटरी को क्लोन करें और Google Cloud Shell में सेटअप स्क्रिप्ट चलाएं.
  • कंपनी, जहाज़, और मेनिफ़ेस्ट डेटा को लिंक करके, BigQuery में प्रॉपर्टी ग्राफ़ बनाएं.
  • Conversational Analytics का इस्तेमाल करके, कार्गो की यात्रा को ट्रेस करने के लिए, ग्राफ़ से आम भाषा में क्वेरी करें. इससे यह पता लगाया जा सकेगा कि कार्गो की यात्रा के लिए कौनसी कंपनी ज़िम्मेदार है.
  • नॉलेज कैटलॉग का इस्तेमाल करके, फ़ाइनल ओवरराइड कोड वाली टेबल ढूंढें.
  • फ़ाइनल कोड को अनमास्क करने और दिखाने के लिए, BigQuery के कॉलम लेवल पर ऐक्सेस कंट्रोल की सुविधा का इस्तेमाल करें.

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

  • कोई वेब ब्राउज़र, जैसे कि Chrome
  • बिलिंग की सुविधा वाला Google Cloud प्रोजेक्ट
  • Google Cloud Shell का ऐक्सेस

यह कोडलैब, डेटा के क्षेत्र में काम करने वाले सभी लोगों के लिए बनाया गया है.

इस कोडलैब में बनाए गए संसाधनों की लागत 5 डॉलर से कम होनी चाहिए.

अनुमानित समय: इस कोडलैब को पूरा करने में करीब 45 मिनट लगेंगे.

2. शुरू करने से पहले

Google Cloud प्रोजेक्ट बनाना

  1. Google Cloud Console में, प्रोजेक्ट चुनने वाले पेज पर, Google Cloud प्रोजेक्ट चुनें या बनाएं.
  2. पक्का करें कि आपके Cloud प्रोजेक्ट के लिए बिलिंग चालू हो.

Cloud Shell शुरू करना

कोड डाउनलोड करने, सेटअप स्क्रिप्ट चलाने, और ऐप्लिकेशन को डिप्लॉय करने के लिए, Google Cloud Shell का इस्तेमाल किया जाएगा.

  1. नए ब्राउज़र टैब में, Cloud Shell खोलें:

Cloud Shell चालू करें

  1. कनेक्ट होने के बाद, अपना प्रोजेक्ट आईडी सेट करें और अपने एनवायरमेंट की पुष्टि करें:
gcloud config set project <<YOUR_PROJECT_ID>>
export PROJECT_ID=$(gcloud config get-value project)
export REGION=us-central1

आपको इस तरह का मैसेज दिखेगा:

Your active configuration is: [cloudshell-####]
Updated property [core/project]

ज़रूरी एपीआई चालू करना

ज़रूरी एपीआई चालू करने के लिए, Cloud Shell में यह कमांड चलाएं:

gcloud services enable \
 bigquery.googleapis.com \
 aiplatform.googleapis.com \
 datacatalog.googleapis.com  \
 geminidataanalytics.googleapis.com \
 cloudaicompanion.googleapis.com 

सफल तरीके से लागू होने पर, आपको इस तरह का मैसेज दिखेगा:

Operation "operations/..." finished successfully.

3. अपना एनवायरमेंट सेट अप करना

इस सीरीज़ के पिछले लैब में, हमने जांच के लिए बुनियादी जानकारी इकट्ठा की थी.

1. रिपॉज़िटरी को क्लोन करना

कोडलैब की रिपॉज़िटरी को अपने Cloud Shell एनवायरमेंट में क्लोन करें:

cd ~/
git clone --filter=blob:none --no-checkout https://github.com/GoogleCloudPlatform/devrel-demos.git
cd ~/devrel-demos
git sparse-checkout init --cone
git sparse-checkout set codelabs/bigquery-graph-analytics
git checkout main
cd codelabs/bigquery-graph-analytics/

2. बुनियादी टेबल और नीति टैग सेट अप करना

अपने BigQuery डेटासेट में डेटा भरने और संवेदनशील डेटा को सीमित करने के लिए, कॉलम-लेवल पर सुरक्षा टैग लागू करने के लिए, सेटअप स्क्रिप्ट चलाएं:

bash setup_lab.sh

पुष्टि करें कि आपके टर्मिनल में आउटपुट, शुरू होने की प्रोसेस पूरी होने की जानकारी दिखाता है:

🚀 Provisioning foundational tables and deploying Policy Tag security bindings...
🎯 Active Project: your-project-id
...
🎉 Success! Foundational tables initialized and Column-Level Policy Tags fully mapped out of the box!

आपका एनवायरमेंट सेट अप हो गया है और लॉजिस्टिक्स का डेटा BigQuery में भर गया है. अब अपनी टेबल कनेक्ट करने के लिए, प्रॉपर्टी ग्राफ़ बनाया जा सकता है. साथ ही, कार्गो की यात्रा को ट्रैक किया जा सकता है!

4. BigQuery Graph का इस्तेमाल करके डेटा कनेक्ट करना

हम अपनी सप्लाई चेन के डेटा का विश्लेषण करने के लिए, यह तय करेंगे कि कंपनियां, जहाज़, और मेनिफ़ेस्ट एक-दूसरे से कैसे जुड़े हैं. प्रॉपर्टी ग्राफ़ बनाने से, हम इन कनेक्शन के बारे में आसानी से क्वेरी कर सकते हैं.

1. प्रॉपर्टी ग्राफ़, संबंधों को कैसे मॉडल करते हैं

प्रॉपर्टी ग्राफ़ का कंपाइल किया गया आर्किटेक्चर मैप

BigQuery प्रॉपर्टी ग्राफ़, नेटवर्क को इन तरीकों से मॉडल करता है:

  • नोड: नेटवर्क में मौजूद इकाइयां. इस लैब में, नोड कंपनियों (जो सीधे तौर पर संपर्क की जानकारी सेव करती हैं), मेनिफ़ेस्ट, और जहाज़ों को दिखाते हैं.
  • एज: नोड को एक-दूसरे से जोड़ने वाले संबंध. उदाहरण के लिए:
    • कोई एज, मेनिफ़ेस्ट को जहाज़ से कनेक्ट करता है. ऐसा manifests टेबल में मौजूद संबंधों के ज़रिए होता है.
    • किनारा, जहाज़ को कंपनी से जोड़ता है. यह vessels टेबल में मौजूद संबंधों के ज़रिए होता है.
  • प्रॉपर्टी: नोड या किनारों पर सेव किया गया मेटाडेटा. उदाहरण के लिए, कंपनी नोड में company_name और phone_number जैसे कॉलम होते हैं. वहीं, मेनिफ़ेस्ट नोड में seal_integrity_status और निर्देशांक (last_ping_lat, last_ping_long) होते हैं.
  • लेबल: नोड (जैसे, Company, Vessel, Manifest) और किनारों (जैसे, CARRIED_BY, OPERATED_BY) को असाइन किए गए टैग के नाम. इससे क्वेरी टूल, नोड और संबंध के टाइप को पहचान सकते हैं.

2. BigQuery में प्रॉपर्टी ग्राफ़ डिप्लॉय करना

setup_graph.sql फ़ाइल में, प्रॉपर्टी ग्राफ़ को तय करने और बनाने के लिए एसक्यूएल डीडीएल होता है. हालांकि, फ़िलहाल यह अधूरा है. आपको इस स्कीमा फ़ाइल में, एज लेबल (रिलेशनशिप) तय करने होंगे. इसके बाद ही, इसे कंपाइल और डिप्लॉय किया जा सकेगा:

  1. Cloud Shell Editor खोलें.

Cloud Shell Editor खोलें

  1. Cloud Shell Editor में setup_graph.sql फ़ाइल खोलें.

ग्राफ़ बनाने के लिए एसक्यूएल

  1. किनारे पर मौजूद लेबल के लिए प्लेसहोल्डर ढूंढें:
    • लाइन 22: `EDGE_TABLE_PLACEHOLDER` को ऐसे टैग से बदलें जो यह दिखाता हो कि मेनिफ़ेस्ट, जहाज़ों से कैसे जुड़े हैं. उदाहरण के लिए, CARRIED_BY.
    • लाइन 27: `EDGE_TABLE_PLACEHOLDER` को ऐसे टैग से बदलें जिससे यह पता चले कि जहाज़, कंपनियों से कैसे जुड़े हैं. उदाहरण के लिए, OPERATED_BY.
  2. फ़ाइल सेव करें.

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

bq query --use_legacy_sql=false < setup_graph.sql

आपको आउटपुट में यह दिखेगा कि जॉब पूरी हो गई है:

Waiting on bqjob_r... ... (0s) Current status: DONE

BigQuery कंसोल में, प्रॉपर्टी ग्राफ़ की जानकारी देखी जा सकती है:

lost_cargo_dataset ढूंढें और ग्राफ़ चुनें:

प्रॉपर्टी ग्राफ़ का कंपाइल किया गया आर्किटेक्चर मैप

हमारी प्रॉपर्टी का ग्राफ़ तैयार हो गया है. अब हम BigQuery Studio में जाकर, कनेक्शन के बारे में क्वेरी करेंगे और उन्हें विज़ुअलाइज़ करेंगे!

5. अपने ग्राफ़ से क्वेरी करना

BigQuery Studio में सीधे तौर पर, नेटिव Graph Query Language (GQL) का इस्तेमाल करके, ग्राफ़ को क्वेरी किया जा सकता है और उसे विज़ुअली एक्सप्लोर किया जा सकता है.

1. कंटेनर -> जहाज़ -> कंपनी की चेन के बारे में क्वेरी करना

आइए, मालवाहक जहाजों का संचालन कौन करता है, यह पता लगाने के लिए GQL क्वेरीज़ का अन्वेषण करें। ऑपरेटर का पता लगाने के लिए, हमें अपने लॉजिस्टिक्स नेटवर्क में तीन अलग-अलग इकाई नोड को पार करना होगा:

ग्राफ़ नोड का कॉन्सेप्ट

  1. कंटेनर Manifest नोड से शुरू करें.
  2. CARRIED_BY रिलेशनशिप एज को फ़ॉलो करके, Vessel को ढूंढें.
  3. उस जहाज़ से, ज़िम्मेदारी निभाने वाले Company तक के OPERATED_BY रिलेशनशिप एज को फ़ॉलो करें और उसका आईडी पाएं.

सबसे पहले, हम एक क्वेरी चलाकर पूरे नेटवर्क को विज़ुअलाइज़ करेंगे. इसमें कोई फ़िल्टर नहीं होगा, ताकि पूरा ग्राफ़ देखा जा सके.

  1. BigQuery Studio के एसक्यूएल एडिटर में नया टैब खोलें. इसके बाद, यहां दी गई GQL क्वेरी चिपकाएं और चलाएं पर क्लिक करें:
    SELECT * FROM GRAPH_TABLE(
      `lost_cargo_dataset.logistics_network`
      MATCH p = (m:Manifest)-[:CARRIED_BY]->(v:Vessel)-[:OPERATED_BY]->(comp:Company)
      RETURN TO_JSON(p) AS path
    );
    
  2. क्वेरी पूरी होने के बाद, सबसे नीचे मौजूद क्वेरी के नतीजे पैनल में, ग्राफ़ टैब पर क्लिक करें. यह टैब, नतीजों की टेबल टैब के बगल में मौजूद होता है.

BigQuery Graph Results 1

  1. BigQuery, नतीजों को इंटरैक्टिव विज़ुअल ग्राफ़ के तौर पर दिखाता है! कनेक्ट किए गए कंटेनर, जहाज़, और ऑपरेटर का पूरा नेटवर्क देखने के लिए ज़ूम इन करें.

GQL क्वेरी का स्ट्रक्चर

आइए, अभी-अभी चलाई गई GQL क्वेरी को तोड़कर देखते हैं:

  • GRAPH_TABLE: इससे BigQuery को logistics_network ग्राफ़ के ख़िलाफ़ प्रॉपर्टी ग्राफ़ क्वेरी को एक्ज़ीक्यूट करने का निर्देश मिलता है.
  • MATCH: यह मल्टी-हॉप ट्रैवर्सल पैटर्न के बारे में बताता है. हम Manifest (m) से शुरू करते हैं. इसके बाद, Vessel (v) की ओर इशारा करने वाले एज रिलेशनशिप :CARRIED_BY को मैच करते हैं. इसके बाद, Company (comp) की ओर इशारा करने वाले एज रिलेशनशिप :OPERATED_BY को मैच करते हैं.
  • GQL में, जॉइन करने के मुश्किल लॉजिक की जगह, समझने में आसान और इंसानों के पढ़ने लायक ASCII-आर्ट रिलेशनशिप ऐरो ()->[]->() का इस्तेमाल किया जाता है. इससे मल्टी-हॉप क्वेरी लिखना और उन्हें ऑप्टिमाइज़ करना बहुत आसान हो जाता है.
  • RETURN: यह मैच किए गए एलिमेंट से प्रॉपर्टी या JSON पाथ दिखाता है.

2. GQL क्वेरी के नतीजों को फ़िल्टर करना

अब क्वेरी को फ़िल्टर करते हैं, ताकि हम सिर्फ़ उस पाथ को देख सकें जिस पर हमारे टारगेट किए गए कंटेनर MV-CAPYBARA-003 से समझौता किया गया है.

  1. यहां दी गई क्वेरी को एसक्यूएल एडिटर में चिपकाएं और चलाएं पर क्लिक करें:
    SELECT * FROM GRAPH_TABLE(
      `lost_cargo_dataset.logistics_network`
      MATCH p = (m:Manifest {shipment_id: 'MV-CAPYBARA-003'})-[:CARRIED_BY]->(v:Vessel)-[:OPERATED_BY]->(comp:Company)
      RETURN TO_JSON(p) AS path
    );
    
  2. नतीजों में जाकर, ग्राफ़ टैब पर क्लिक करें.

BigQuery Graph Results 2

  1. अब व्यूअर में, MV-CAPYBARA-003 के लिए सिर्फ़ चालू ट्रैवर्सल रूट दिखता है. नोड और कनेक्शन देखने के लिए, ज़ूम इन करें:
    • प्रॉपर्टी पैनल खोलने के लिए, Company नोड पर दो बार क्लिक करें. प्रॉपर्टी में, आपको ऑपरेटर company_id: 103 (Davy Jones Shipping) दिखेगा. इस कंपनी आईडी को नोट कर लें. आपको इसकी ज़रूरत बाद में सुरक्षा रजिस्ट्री से क्लीयरेंस पासकोड पाने के लिए पड़ेगी!
    • Vessel नोड पर दो बार क्लिक करके पुष्टि करें कि यह Flying Dutchman है.

6. कन्वर्सेशनल एनालिटिक्स का इस्तेमाल करके, अपने ग्राफ़ से चैट करना

आपने कंपनी का आईडी ढूंढने के लिए, मैन्युअल तरीके से अपने ग्राफ़ से क्वेरी की है. अब हम बातचीत वाली Analytics सुविधा का इस्तेमाल करके, सीधे अपने ग्राफ़ से चैट करेंगे और यह पता लगाएंगे कि हमारा कंटेनर कहां जा रहा है.

1. Conversational Analytics सेशन शुरू करना

  1. Google Cloud Console में, BigQuery Console पर जाएं. इसके बाद, अपने डेटासेट (lost_cargo_dataset) को ढूंढने के लिए, संसाधन पैनल को बड़ा करें.
  2. अपने प्रॉपर्टी ग्राफ़ संसाधन पर क्लिक करें: logistics_network.
  3. सबसे ऊपर मौजूद, ज़्यादा जानकारी वाले पैनल के टूलबार में, चैट करें बटन पर क्लिक करें. इससे कन्वर्सेशनल ऐनलिटिक्स सेशन खुलता है. इसमें आपके ग्राफ़ का कॉन्टेक्स्ट पहले से लोड होता है.

BigQuery Data Agent का कॉन्फ़िगरेशन इंटरफ़ेस, जो कंपाइल किए गए प्रॉपर्टी ग्राफ़ सोर्स को लिंक करता है

2. हाईजैक किए गए कंटेनर के लिए, सबसे नज़दीकी डॉकिंग पोर्ट का पता लगाना

समुद्री गश्त करने वाले एक विमान ने अभी-अभी एक ऐसे जहाज़ को देखा है जो हमारे मालवाहक जहाज़ के ब्यौरे से मेल खाता है. यह जहाज़, POINT(-122.48 37.55) कोऑर्डिनेट पर, ट्रांसपॉन्डर बंद करके चल रहा है. कार्गो को रोकने के लिए, हमें सबसे नज़दीकी डॉकिंग पोर्ट ढूंढना होगा. यहां शैडो सिंडिकेट Davy Jones Shipping काम करता है.

सभी ग्लोबल पोर्ट को मैन्युअल तरीके से खोजने के बजाय, हम अपने ग्राफ़ नेटवर्क से क्वेरी करेंगे. इससे हमें सिंडिकेट के चालू फ़्लीट से जुड़े पोर्ट की जानकारी मिलेगी. साथ ही, हम यह पता लगा पाएंगे कि जहाज़ के देखे जाने की जगह के सबसे करीब कौनसी जगह है!

  1. कन्वर्सेशनल ऐनालिटिक्स के चैट बॉक्स में, यह प्रॉम्प्ट डालें:
    Find all ports associated with Davy Jones Shipping vessels. Which port is closest to coordinate POINT(-122.48 37.55), show the distance in km, and display it on a map.
    

BigQuery Data Agent का कॉन्फ़िगरेशन इंटरफ़ेस, जो कंपाइल किए गए प्रॉपर्टी ग्राफ़ सोर्स को लिंक करता है

  1. जवाब को ध्यान से देखें. एजेंट, ग्राफ़ को ट्रैवर्स करता है और सबसे नज़दीकी डॉकिंग फ़ैसिलिटी और उसकी दूरी दिखाता है:
    • डॉक करने के लिए पोर्ट: Mountain View Terminal
    • दूरी: 39.42 kilometers
  2. Conversational Analytics, Gemini की मदद से काम करता है. इसमें जियोस्पेशल (जीआईएस) इंटिग्रेशन की सुविधा भी होती है. इसलिए, यह भौगोलिक निर्देशांकों को समझ सकता है. साथ ही, दुनिया भर के अपने ज्ञान का इस्तेमाल करके, जगह की पुष्टि कर सकता है:"जहाज़, कैलिफ़ोर्निया के माउंटेन व्यू टर्मिनल से करीब 39.42 किलोमीटर दूर है. इससे पता चलता है कि वह वहां डॉक करने के लिए जा रहा है."

इससे पुष्टि होती है कि हमारा कार्गो सीधे माउंटेन व्यू जा रहा है!

तकनीकी जानकारी: ग्राफ़ क्वेरी लैंग्वेज (GQL) और जियोस्पेशल जीआईएस

बैकग्राउंड में, बातचीत वाली Analytics सुविधा का एजेंट, डाइनैमिक तरीके से एक क्वेरी कंपाइल और एक्ज़ीक्यूट करता है. इसमें, ग्राफ़ पाथ मैचिंग को भौगोलिक दूरी की गणना के साथ जोड़ा जाता है. ऐसा नेटिव GQL COLUMNS क्लॉज़ का इस्तेमाल करके किया जाता है. इसमें ग्राफ़ ट्रैवर्सल मैच के अंदर ही जियोडेसिक दूरी की गणना की जाती है:

SELECT port_id, port_name, country, latitude, longitude, distance_km 
FROM GRAPH_TABLE(
  `lost_cargo_dataset.logistics_network`
  MATCH (c:Company)<-[]-(v:Vessel)-[]->(p:Port)
  WHERE LOWER(c.company_name) = 'davy jones shipping'
  COLUMNS (
    p.port_id, 
    p.port_name, 
    p.country, 
    p.latitude, 
    p.longitude, 
    ROUND(ST_DISTANCE(ST_GEOGPOINT(p.longitude, p.latitude), ST_GEOGPOINT(-122.48, 37.55)) / 1000, 2) AS distance_km
  )
)
ORDER BY distance_km ASC;

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

7. Knowledge Catalog की मदद से, अपना गुम हुआ डेटा ढूंढना

प्रॉपर्टी ग्राफ़ में संबंध दिखाए जाते हैं. हालांकि, इसमें वह टेबल शामिल नहीं होती है जिसमें असल ओवरराइड कोड सेव किए जाते हैं.

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

1. नॉलेज कैटलॉग में सिमैंटिक सर्च की सुविधा

  1. Google Cloud Console में, Knowledge CatalogSearch को खोजें और उस पर जाएं.
  2. नतीजों को कम करने के लिए, सिस्टम में जाकर, खोज फ़िल्टर कॉलम में BigQuery को चुनें.
  3. खोज बॉक्स में, यह क्वेरी डालें:
    container override codes
    

नॉलेज कैटलॉग का सिमैंटिक सर्च इंटरफ़ेस, आइसोलेटेड फ़िज़िकल सील टेबल को खोज रहा है

  1. खोज के नतीजों में दिखने वाले maritime_security_registry टेबल संसाधन पर क्लिक करें:

मेटाडेटा स्कीमा की जांच करने पर, आपको दिखेगा कि टेबल में कंटेनर की सुरक्षा से जुड़े डेटा के लिए कॉलम मौजूद हैं. जैसे, कोऑर्डिनेटर कंपनी co_id, कस्टोडियन टोकन cust_tok, और सबसे ज़रूरी, सुरक्षित कंटेनर को ओवरराइड करने वाले पासकोड का कॉलम: clc_ovr_cd.

हमें टेबल और वह सुरक्षित कॉलम मिल गया है जिसमें हमारा कार्गो मौजूद है!

🔓 असल दुनिया में लागू होने वाले नियम: प्रोडक्शन एंटरप्राइज़ एनवायरमेंट में, सुरक्षा और गवर्नेंस टीमें इनका भी इस्तेमाल करती हैं:

  • पहलू और टैग टेंप्लेट: टेबल स्कीमा में कारोबार का मेटाडेटा (जैसे कि डेटा का मालिक, डेटा सेव करके रखने की अवधि या पीआईआई का क्लासिफ़िकेशन) जोड़ने के लिए.
  • डेटा लीनेज: maritime_security_registry जैसी टेबल के लिए, विज़ुअल फ़्लोचार्ट अपने-आप जनरेट करने की सुविधा. इससे यह पता चलता है कि डाउनस्ट्रीम सिस्टम, टेबल को कैसे क्वेरी करते हैं और उनका इस्तेमाल कैसे करते हैं.

2. BigQuery में कॉलम की सुरक्षा की जांच करना

  1. BigQuery कंसोल पर वापस जाएं.
  2. एक्सप्लोरर टैब में, lost_cargo_dataset को चुनें. इसके बाद, maritime_security_registry टेबल पर क्लिक करें.
  3. स्कीमा टैब पर क्लिक करें.

टेबल स्कीमा व्यू में, clc_ovr_cd कॉलम को असाइन किया गया नीति टैग दिखाया गया है

  1. ध्यान दें कि clc_ovr_cd कॉलम को MaskShippingDetails नाम के नीति टैग से सुरक्षित किया गया है. यह नीति टैग, नीति टैग कॉलम में मौजूद है.
  2. BigQuery में नया SQL एडिटर टैब खोलें और यह क्वेरी चलाकर, रजिस्ट्री के बदले गए कोड देखने की कोशिश करें:
    SELECT * FROM `lost_cargo_dataset.maritime_security_registry` 
    WHERE co_id = 103;
    
  3. आपके खाते के पास, MaskShippingDetails से टैग किए गए कॉलम को पढ़ने की अनुमतियां नहीं हैं. इसलिए, क्वेरी तुरंत फ़ेल हो जाएगी. साथ ही, डेटाबेस की सुरक्षा से जुड़ी ऐक्सेस अस्वीकार किया गया गड़बड़ी दिखेगी:

BigQuery वर्कस्पेस व्यू, जिसमें कॉलम-लेवल की स्टैंडर्ड मास्किंग या ऐक्सेस से जुड़ी पाबंदियां दिख रही हैं

8. पासकोड वापस पाने के लिए कॉलम की सुरक्षा को तोड़ना

फ़ाइनल ओवरराइड कोड को सादे टेक्स्ट में पढ़ने के लिए, हमें अपने उपयोगकर्ता खाते को MaskShippingDetails टैग किए गए कॉलम को पढ़ने की अनुमति देनी होगी.

1. नीति के टैग की अनुमतियां देना

  1. BigQuery कंसोल के बाईं ओर मौजूद नेविगेशन पैनल में, नीति टैग पर जाएं.
  2. LostCargoSecurity_ नाम की टैक्सोनॉमी चुनें.
  3. टैग की सूची में, MaskShippingDetails पर क्लिक करें.
  4. स्क्रीन की दाईं ओर मौजूद जानकारी वाले पैनल में, मुख्य व्यक्ति जोड़ें पर क्लिक करें. (अगर पैनल छिपा हुआ है, तो सबसे ऊपर दाईं ओर मौजूद, जानकारी वाला पैनल दिखाएं पर क्लिक करें).
  5. मुख्य खाते वाले नए फ़ील्ड में, Google Cloud के अपने चालू खाते का ईमेल पता डालें.
  6. भूमिका चुनें ड्रॉपडाउन में, फ़ाइन-ग्रेन्ड रीडर को खोजें और चुनें. इसके बाद, सेव करें पर क्लिक करें.

BigQuery की नीति टैग एडमिन पैनल, टारगेट स्ट्रिंग मास्क पर फ़ाइन-ग्रेन्ड रीडर की भूमिका असाइन करता है

2. बदले गए कोड के लिए क्वेरी

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

SELECT *  FROM `lost_cargo_dataset.maritime_security_registry` 
WHERE co_id = 103;

🔓 नतीजा

क्वेरी से, मास्क नहीं किया गया ओवरराइड कोड मिलता है:

SHIVER-ME-TIMBERS-888

BigQuery वर्कस्पेस में क्वेरी चलाने के नतीजे, जिसमें बिना मास्क की गई स्ट्रिंग का फ़्लैग दिखता है

9. व्यवस्थित करें

शुल्क से बचने के लिए, इस लैब के दौरान बनाए गए सैंडबॉक्स संसाधनों को हटा दें.

Cloud Shell टर्मिनल पर वापस जाएं और लॉजिस्टिक्स टेबल वाला BigQuery डेटासेट मिटाएं:

bq rm -r -f -d lost_cargo_dataset

क्लोन की गई रिपॉज़िटरी की फ़ाइलें हटाएं:

cd ..
rm -rf data-cloud-roadshow-26

10. बधाई हो

आपने जांच से जुड़ी समस्या को हल कर लिया है और क्लीयरेंस ओवरराइड कोड वापस पा लिया है!

आपने क्या सीखा

  • जटिल इकाइयों और उनके बीच के संबंधों को दिखाने के लिए, BigQuery में प्रॉपर्टी ग्राफ़ बनाने का तरीका.
  • डेटा कनेक्शन कैप्चर करने के लिए, नोड, एज, प्रॉपर्टी, और लेबल को कैसे कॉन्फ़िगर किया जाता है.
  • BigQuery Conversational Analytics की मदद से, प्रॉपर्टी ग्राफ़ पर क्वेरी करने का तरीका.
  • रिलेशनल पाथ पर जाने के लिए, ग्राफ़ क्वेरी लैंग्वेज (GQL) एक्सप्रेशन कैसे बनाए जाते हैं.
  • नॉलेज कैटलॉग का इस्तेमाल करके, सुरक्षित ऐसेट का पता लगाने और नीति टैग का इस्तेमाल करके, कॉलम-लेवल पर पाबंदी वाले डेटा को ऐक्सेस करने का तरीका.