Google Cloud BigQuery एक पूरी तरह से प्रबंधित, सर्वरलेस एंटरप्राइज डेटा वेयरहाउस है, जो पेटाबाइट के डेटा पर विश्लेषण की संभावनाएं प्रदान करता है, इसलिए बड़े पैमाने पर डेटासेट को कुशलता से संभालता है। Platform as a Service (PaaS) के रूप में, यह उपयोगकर्ताओं को डेटा प्रबंधन को सुविधाजनक बनाने के लिए आधारभूत संरचना और उपकरण प्रदान करता है बिना मैनुअल निगरानी की आवश्यकता के।
यह ANSI SQL का उपयोग करके क्वेरी का समर्थन करता है। मुख्य वस्तुएं डेटासेट हैं जिसमें टेबल होते हैं जो SQL डेटा को रखते हैं।
एन्क्रिप्शन
डिफ़ॉल्ट रूप से एक Google-प्रबंधित एन्क्रिप्शन कुंजी का उपयोग किया जाता है हालांकि एक ग्राहक-प्रबंधित एन्क्रिप्शन कुंजी (CMEK) कॉन्फ़िगर करना संभव है। डेटासेट और डेटासेट के भीतर टेबल प्रति एन्क्रिप्शन कुंजी को सूचित करना संभव है।
समाप्ति
डेटासेट में एक समाप्ति समय को सूचित करना संभव है ताकि इस डेटासेट में नया टेबल बनाया गया हो तो उसे निर्दिष्ट दिनों के बाद स्वचालित रूप से हटा दिया जाए।
बाह्य स्रोत
Bigquery अन्य Google सेवाओं के साथ गहराई से एकीकृत है। बाकेट्स, पब/सब, गूगल ड्राइव, RDS डेटाबेस से डेटा लोड करना संभव है।
डेटासेट ACLs
जब एक डेटासेट बनाया जाता है, तो उसे एक्सेस देने के लिए ACLs जोड़े जाते हैं। डिफ़ॉल्ट रूप से डेटासेट को उस उपयोगकर्ता के ऊपर Owner विशेषाधिकार दिए जाते हैं जिसने डेटासेट बनाया है और फिर Owner को समूह projectOwners (परियोजना के मालिक), Writer को समूह projectWriters, और Reader को समूह projectReaders दिए जाते हैं:
एक प्रिंसिपल को तालिका के अंदर पहुंचने में सक्षम होने वाली पंक्तियों को नियंत्रित करना संभव है रो पहुंच नीतियों के साथ। ये DDL का उपयोग करके तालिका के अंदर परिभाषित किए जाते हैं।
पहुंच नीति एक फ़िल्टर को परिभाषित करती है और केवल उस फ़िल्टर के मिलते-जुलते पंक्तियाँ उस प्रिंसिपल द्वारा पहुंचने योग्य होंगी।
# CreateCREATEROW ACCESS POLICY apac_filterON project.dataset.my_tableGRANTTO ('user:abc@example.com')FILTERUSING (region ='APAC');# UpdateCREATEORREPLACEROW ACCESS POLICYCREATEROW ACCESS POLICY sales_us_filterON project.dataset.my_tableGRANTTO ('user:john@example.com','group:sales-us@example.com','group:sales-managers@example.com')FILTERUSING (region ='US');# Check the Post Exploitation tricks to see how tocall this from the cli
# Enumerate row policies on a tablebqls--row_access_policies<proj>:<dataset>.<table># Get row policies
# Dataset infobqls# List datasetsbqls-a# List all datasets (even hidden)bqls<proj>:<dataset># List tables in a datasetbqshow--format=prettyjson<proj>:<dataset># Get info about the dataset (like ACLs)# Tables infobqshow--format=prettyjson<proj>:<dataset>.<table># Get table infobqshow--schema<proj>:<dataset>.<table># Get schema of a table# Get entries from the tablebqhead<dataset>.<table>bqquery--nouse_legacy_sql'SELECT * FROM `<proj>.<dataset>.<table-name>` LIMIT 1000'bqextract<dataset>.<table>"gs://<bucket>/table*.csv"# Use the * so it can dump everything in different files# Insert databq query --nouse_legacy_sql 'INSERT INTO `digital-bonfire-410512.importeddataset.tabletest` (rank, refresh_date, dma_name, dma_id, term, week, score) VALUES (22, "2023-12-28", "Baltimore MD", 512, "Ms", "2019-10-13", 62), (22, "2023-12-28", "Baltimore MD", 512, "Ms", "2020-05-24", 67)'
bqinsertdataset.table/tmp/mydata.json# Get permissionsbqget-iam-policy<proj>:<dataset># Get dataset IAM policybqshow--format=prettyjson<proj>:<dataset># Get dataset ACLsbqget-iam-policy<proj>:<dataset>.<table># Get table IAM policybqls--row_access_policies<proj>:<dataset>.<table># Get row policies# Taxonomies (Get the IDs from the shemas of the tables)gclouddata-catalogtaxonomiesdescribe<taxonomi-ID>--location=<location>gclouddata-catalogtaxonomieslist--location<location>#Find moregclouddata-catalogtaxonomiesget-iam-policy<taxonomi-ID>--location=<location># Miscbqshow--encryption_service_account# Get encryption service account