הרצת שאילתות שמכילות פרמטרים
שאילתות עם פרמטרים ב-BigQuery מאפשרות להחליף ביטויים שרירותיים ישירות בהצהרות GoogleSQL. העברת פרמטרים לסוגי נתונים כמו מערכים, חותמות זמן, מבנים וטווחים מאפשרת להריץ באופן מאובטח שאילתות שנוצרו מקלט של משתמשים, תוך הגנה על הנתונים מפני התקפות הזרקת SQL.
מגבלות
- פרמטרים של שאילתות נתמכים רק בתחביר של GoogleSQL.
- אי אפשר להשתמש בפרמטרים כתחליפים למזהים, לשמות של עמודות, לשמות של טבלאות או לחלקים אחרים של השאילתה.
- ערך הפרמטר של השאילתה לא יכול להיות
NULL.
העברת פרמטר בשאילתה
כדי לציין פרמטר בעל שם, משתמשים בתו @ ואחריו מזהה, כמו @param_name. אפשר גם להשתמש בערך הזמני לשמירת מקום (פלייסהולדר) ? כדי לציין פרמטר מיקום. שאילתה יכולה להשתמש בפרמטרים לפי מיקום או לפי שם, אבל לא בשניהם.
אפשר להריץ שאילתה שמכילה פרמטרים ב-BigQuery בדרכים הבאות:
- עורך השאילתות של BigQuery Studio במסוף Cloud de Confiance
- הפקודה
bq queryשל כלי שורת הפקודה של BigQuery - ה-API
- ספריות הלקוח
בדוגמאות הבאות מוסבר איך להעביר ערכי פרמטרים לשאילתה עם פרמטרים:
המסוף
כדי להריץ שאילתה עם פרמטרים במסוף Cloud de Confiance , מגדירים את הפרמטרים ב-Query settings, ואז מפנים אליהם בשאילתת ה-SQL על ידי הוספת התו @ לפני כל שם של פרמטר.
סוגי נתונים נתמכים: מסוף Cloud de Confiance תומך רק בשאילתות עם פרמטרים של סוגי נתונים פרימיטיביים, כמו BIGNUMERIC, BOOL, BYTES, DATE, DATETIME, FLOAT64, GEOGRAPHY, INT64, INTERVAL, NUMERIC, STRING, TIME או TIMESTAMP. סוגי נתונים מורכבים, כמו ARRAY ו-STRUCT, לא נתמכים במסוף Cloud de Confiance .
הוספת הפרמטרים במסוף Cloud de Confiance
נכנסים לדף BigQuery.
בסרגל הכלים של עורך השאילתות, לוחצים על Edit > Query settings.
בחלונית Query settings, מאתרים את הקטע פרמטרים של שאילתה ולוחצים על Add parameter.
לכל פרמטר בשאילתה, צריך לספק את הפרטים הבאים:
- שם: מזינים את שם הפרמטר (לא כוללים את התו
@). - סוג: בוחרים את סוג הנתונים של הפרמטר.
- ערך: מזינים את הערך שרוצים להשתמש בו להפעלה הזו.
- שם: מזינים את שם הפרמטר (לא כוללים את התו
לוחצים על Save.
העברת ערכי פרמטרים לשאילתה במסוף Cloud de Confiance
בעורך השאילתות, מזינים שאילתת SQL באמצעות הפרמטרים שהגדרתם בשלב הקודם. כדי להפנות אליהם, צריך להוסיף את התו
@לפני השמות שלהם, כמו בדוגמה.דוגמה:
SELECT word, word_count FROM `bigquery-public-data.samples.shakespeare` WHERE corpus = @corpus AND word_count >= @min_word_count ORDER BY word_count DESC;בדוגמה הזו, צריך להוסיף את הפרמטר
corpusבתורSTRINGעם הערךromeoandjuliet, ואת הפרמטרmin_word_countבתורINT64עם הערך250.אם השאילתה מכילה פרמטר חסר או לא חוקי, תוצג הודעת שגיאה. לוחצים על הגדרת פרמטר בהודעת השגיאה כדי לשנות את הגדרות הפרמטר.
כדי להריץ את השאילתה שמכילה פרמטרים בעורך השאילתות, לוחצים על Run.
BQ
-
מפעילים את Cloud Shell במסוף Cloud de Confiance .
בחלק התחתון של מסוף Cloud de Confiance יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
משתמשים ב-
--parameterכדי לספק ערכים לפרמטרים בפורמטname:type:value. שם ריק יוצר פרמטר מיקום. אפשר להשמיט את הסוג כדי להניח שזהSTRING.צריך להשתמש בדגל
--parameterבשילוב עם הדגל--use_legacy_sql=falseכדי לציין תחביר של GoogleSQL.(אופציונלי) מציינים את המיקום באמצעות הדגל
--location.bq query \ --use_legacy_sql=false \ --parameter=corpus::romeoandjuliet \ --parameter=min_word_count:INT64:250 \ 'SELECT word, word_count FROM `bigquery-public-data.samples.shakespeare` WHERE corpus = @corpus AND word_count >= @min_word_count ORDER BY word_count DESC;'
API
כדי להשתמש בפרמטרים בעלי שם, מגדירים את parameterMode ל-NAMED בהגדרת המשימה של query.
מאכלסים את queryParameters ברשימת הפרמטרים בהגדרות המשימה של query. מגדירים את name של כל פרמטר עם @param_name שמשמש בשאילתה.
מפעילים את התחביר של GoogleSQL על ידי הגדרת useLegacySql ל-false.
{
"query": "SELECT word, word_count FROM `bigquery-public-data.samples.shakespeare` WHERE corpus = @corpus AND word_count >= @min_word_count ORDER BY word_count DESC;",
"queryParameters": [
{
"parameterType": {
"type": "STRING"
},
"parameterValue": {
"value": "romeoandjuliet"
},
"name": "corpus"
},
{
"parameterType": {
"type": "INT64"
},
"parameterValue": {
"value": "250"
},
"name": "min_word_count"
}
],
"useLegacySql": false,
"parameterMode": "NAMED"
}
נסו את זה ב-Google APIs Explorer.
כדי להשתמש בפרמטרים לפי מיקום, מגדירים את parameterMode ל-POSITIONAL בהגדרת המשימה של query.
C#
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של C# במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery C# API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של C# במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery C# API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
המשך
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Go במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Go API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Java במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Java API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Node.js במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Node.js API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Python במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Python API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
שימוש במערכים בשאילתות שמכילות פרמטרים
כדי להשתמש בסוג מערך בפרמטר של שאילתה, מגדירים את הסוג ל-ARRAY<T>, כאשר T הוא סוג הרכיבים במערך. הערך צריך להיות רשימה מופרדת בפסיקים של רכיבים בסוגריים מרובעים, למשל [1, 2,
3].
מידע נוסף על סוג המערך זמין במאמר העזר בנושא סוגי נתונים.
המסוף
מערכים בשאילתות שמכילות פרמטרים לא נתמכים במסוףCloud de Confiance .
BQ
-
מפעילים את Cloud Shell במסוף Cloud de Confiance .
בחלק התחתון של מסוף Cloud de Confiance יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
השאילתה הזו בוחרת את השמות הפופולריים ביותר לתינוקות שנולדו במדינות בארה"ב שמתחילות באות W:
bq query \ --use_legacy_sql=false \ --parameter='gender::M' \ --parameter='states:ARRAY<STRING>:["WA", "WI", "WV", "WY"]' \ 'SELECT name, SUM(number) AS count FROM `bigquery-public-data.usa_names.usa_1910_2013` WHERE gender = @gender AND state IN UNNEST(@states) GROUP BY name ORDER BY count DESC LIMIT 10;'
חשוב להקפיד להקיף את הצהרת סוג המערך במירכאות בודדות, כדי שפלט הפקודה לא יופנה בטעות לקובץ על ידי התו
>.
API
כדי להשתמש בפרמטר עם ערך מערך, מגדירים את parameterType ל-ARRAY בהגדרת המשימה query.
אם הערכים במערך הם סקלרים, מגדירים את parameterType לסוג הערכים, למשל STRING. אם ערכי המערך הם מבנים, צריך להגדיר את השדה הזה כ-STRUCT ולהוסיף את הגדרות השדה הנדרשות ל-structTypes.
לדוגמה, השאילתה הזו בוחרת את השמות הפופולריים ביותר לתינוקות שנולדו במדינות בארה"ב שמתחילות באות W.
{
"query": "SELECT name, sum(number) as count\nFROM `bigquery-public-data.usa_names.usa_1910_2013`\nWHERE gender = @gender\nAND state IN UNNEST(@states)\nGROUP BY name\nORDER BY count DESC\nLIMIT 10;",
"queryParameters": [
{
"parameterType": {
"type": "STRING"
},
"parameterValue": {
"value": "M"
},
"name": "gender"
},
{
"parameterType": {
"type": "ARRAY",
"arrayType": {
"type": "STRING"
}
},
"parameterValue": {
"arrayValues": [
{
"value": "WA"
},
{
"value": "WI"
},
{
"value": "WV"
},
{
"value": "WY"
}
]
},
"name": "states"
}
],
"useLegacySql": false,
"parameterMode": "NAMED"
}
C#
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של C# במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery C# API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
המשך
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Go במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Go API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Java במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Java API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Node.js במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Node.js API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Python במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Python API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
שימוש בחותמות זמן בשאילתות שמכילות פרמטרים
כדי להשתמש בחותמת זמן בפרמטר של שאילתה, ה-API הבסיסי בארכיטקטורת REST מקבל ערך מסוג TIMESTAMP בפורמט YYYY-MM-DD HH:MM:SS.DDDDDD time_zone. אם אתם משתמשים בספריות הלקוח, אתם יוצרים אובייקט תאריך מובנה בשפה הזו, והספרייה ממירה אותו לפורמט הנכון. למידע נוסף, עיינו בדוגמאות הבאות לפי שפה.
למידע נוסף על הסוג TIMESTAMP, עיינו בחומר העזר בנושא סוגי נתונים.
המסוף
מבצעים את השלבים להוספת פרמטרים במסוף Cloud de Confiance שמתוארים למעלה. בוחרים באפשרות TIMESTAMP בתור סוג הפרמטר ומזינים את ערך חותמת הזמן בפורמט YYYY-MM-DD HH:MM:SS.DDDDDD time_zone.
BQ
-
מפעילים את Cloud Shell במסוף Cloud de Confiance .
בחלק התחתון של מסוף Cloud de Confiance יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
השאילתה הזו מוסיפה שעה לערך פרמטר חותמת הזמן:
bq query \ --use_legacy_sql=false \ --parameter='ts_value:TIMESTAMP:2016-12-07 08:00:00' \ 'SELECT TIMESTAMP_ADD(@ts_value, INTERVAL 1 HOUR);'
API
כדי להשתמש בפרמטר של חותמת זמן, צריך להגדיר את parameterType לערך TIMESTAMP בהגדרות של משימת השאילתה.
השאילתה הזו מוסיפה שעה לערך הפרמטר של חותמת הזמן.
{
"query": "SELECT TIMESTAMP_ADD(@ts_value, INTERVAL 1 HOUR);",
"queryParameters": [
{
"name": "ts_value",
"parameterType": {
"type": "TIMESTAMP"
},
"parameterValue": {
"value": "2016-12-07 08:00:00"
}
}
],
"useLegacySql": false,
"parameterMode": "NAMED"
}
C#
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של C# במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery C# API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
המשך
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Go במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Go API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Java במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Java API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Node.js במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Node.js API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Python במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Python API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
שימוש במבנים בשאילתות שמכילות פרמטרים
כדי להשתמש ב-struct בפרמטר של שאילתה, מגדירים את הסוג בתור STRUCT<T>, כאשר T מגדיר את השדות והסוגים בתוך ה-struct. הגדרות השדות מופרדות בפסיקים והן בפורמט field_name TF, כאשר TF הוא סוג השדה. לדוגמה, STRUCT<x INT64, y STRING> מגדיר מבנה עם שדה בשם x מסוג INT64 ושדה שני בשם y מסוג STRING.
למידע נוסף על הסוג STRUCT, עיינו בחומר העזר בנושא סוגי נתונים.
המסוף
במסוףCloud de Confiance אין תמיכה במבנים בשאילתות שמכילות פרמטרים.
BQ
-
מפעילים את Cloud Shell במסוף Cloud de Confiance .
בחלק התחתון של מסוף Cloud de Confiance יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
השאילתה הפשוטה הזו מדגימה את השימוש בסוגים מובְנים על ידי החזרת ערך הפרמטר:
bq query \ --use_legacy_sql=false \ --parameter='struct_value:STRUCT<x INT64, y STRING>:{"x": 1, "y": "foo"}' \ 'SELECT @struct_value AS s;'
API
כדי להשתמש בפרמטר struct, צריך להגדיר את parameterType לערך STRUCT בהגדרות של משימת השאילתה.
מוסיפים אובייקט לכל שדה של המבנה אל structTypes ב-queryParameters של המשימה.
אם הערכים של המבנה הם סקלרים, מגדירים את type לסוג הערכים, למשל STRING. אם ערכי ה-struct הם מערכים, הגדר שדה זה כ-ARRAY, והגדר את השדה המקונן arrayType לסוג המתאים. אם ערכי ה-struct הם מבנים, מגדירים את type ל-STRUCT ומוסיפים את ה-structTypes הנדרש.
השאילתה הפשוטה הזו מדגימה את השימוש בסוגים מובְנים על ידי החזרת ערך הפרמטר.
{
"query": "SELECT @struct_value AS s;",
"queryParameters": [
{
"name": "struct_value",
"parameterType": {
"type": "STRUCT",
"structTypes": [
{
"name": "x",
"type": {
"type": "INT64"
}
},
{
"name": "y",
"type": {
"type": "STRING"
}
}
]
},
"parameterValue": {
"structValues": {
"x": {
"value": "1"
},
"y": {
"value": "foo"
}
}
}
}
],
"useLegacySql": false,
"parameterMode": "NAMED"
}
C#
ספריית הלקוח של BigQuery ל- .NET לא תומכת בפרמטרים של מבנה.
המשך
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Go במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Go API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Java במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Java API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Node.js במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Node.js API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Python במדריך למתחילים של BigQuery באמצעות ספריות לקוח. למידע נוסף, קראו את מאמרי העזרה של BigQuery Python API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
שימוש בטווחים בשאילתות שמכילות פרמטרים
כדי להשתמש בטווח בפרמטר של שאילתה, מגדירים את השדה type לערך RANGE.
למידע נוסף על הסוג RANGE, עיינו בחומר העזר בנושא סוגי נתונים.
המסוף
מסוףCloud de Confiance לא תומך בטווחים בשאילתות שמכילות פרמטרים.
BQ
-
מפעילים את Cloud Shell במסוף Cloud de Confiance .
בחלק התחתון של מסוף Cloud de Confiance יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
השאילתה הזו מדגימה את השימוש בסוגי טווחים על ידי החזרת ערך הפרמטר:
bq query \ --use_legacy_sql=false \ --parameter='my_param:RANGE<DATE>:[2020-01-01, 2020-12-31)' \ 'SELECT @my_param AS foo;'
API
כדי להשתמש בפרמטר טווח, ב-parameterType מגדירים את השדה type לערך RANGE ואת השדה rangeElementType לסוג הטווח שבו רוצים להשתמש.
השאילתה הזו מדגימה איך להשתמש בסוג הפרמטר RANGE על ידי החזרת ערך הפרמטר.
{
"query": "SELECT @my_param AS value_of_range_parameter;",
"queryParameters": [
{
"name": "range_param",
"parameterType": {
"type": "RANGE",
"rangeElementTYpe": {
"type": "DATE"
}
},
"parameterValue": {
"rangeValue": {
"start": {
"value": "2020-01-01"
},
"end": {
"value": "2020-12-31"
}
}
}
}
],
"useLegacySql": false,
"parameterMode": "NAMED"
}
המאמרים הבאים
- מידע ולמידה על שאילתות מאומתות עם פרמטרים בניתוח נתוני השיחות ב-BigQuery.