הרצת שאילתות שמכילות פרמטרים
כשמריצים שאילתות על נתונים ב-BigQuery באמצעות תחביר GoogleSQL, אפשר להשתמש בפרמטרים כדי להגן על שאילתות שנוצרות מקלט של משתמשים מפני הזרקת SQL. הפרמטרים מחליפים ביטויים שרירותיים בשאילתות GoogleSQL.
מעבירים פרמטרים של שאילתות לסוגים שונים של נתונים, כולל:
- מערכים
- חותמות זמן
- Structs
- טווחים
העברת פרמטר בשאילתה
פרמטרים של שאילתה נתמכים רק בתחביר GoogleSQL. אי אפשר להשתמש בפרמטרים במקום מזהים, שמות של עמודות, שמות של טבלאות או חלקים אחרים של השאילתה.
כדי לציין פרמטר עם שם, משתמשים בתו @ ואחריו במזהה, כמו @param_name. אפשרות אחרת היא להשתמש בערך הפלייסהולדר ? כדי לציין פרמטר מיקום. שאילתה יכולה להשתמש בפרמטרים מיקומיים או בפרמטרים עם שם, אבל לא בשניהם.
אפשר להריץ שאילתה שמכילה פרמטרים ב-BigQuery באחת מהדרכים הבאות:
- עורך השאילתות של BigQuery Studio במסוף Cloud de Confiance
- הפקודה
bq queryבכלי שורת הפקודה bq - API
- ספריות הלקוח
בדוגמאות הבאות מוצג איך להעביר ערכי פרמטרים לשאילתה עם פרמטרים:
המסוף
כדי להריץ שאילתה עם פרמטרים במסוף Cloud de Confiance , מגדירים פרמטרים בהגדרות השאילתה, ואז מפנים אליהם בשאילתת ה-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.
בסרגל הכלים של עורך השאילתות, לוחצים על עריכה > הגדרות השאילתה.
בחלונית הגדרות השאילתה, מאתרים את הקטע פרמטרים של שאילתה ולוחצים על הוספת פרמטר.
לכל פרמטר בשאילתה, צריך לציין את הפרטים הבאים:
- שם: מזינים את שם הפרמטר (לא כולל את התו
@). - סוג: בוחרים את סוג הנתונים של הפרמטר.
- ערך: מזינים את הערך שרוצים להשתמש בו בהפעלה הזו.
- שם: מזינים את שם הפרמטר (לא כולל את התו
לוחצים על 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.אם השאילתה מכילה פרמטר חסר או לא תקין, תוצג הודעת שגיאה. לוחצים על הגדרת פרמטר בהודעת השגיאה כדי לשנות את הגדרות הפרמטר.
כדי להריץ את השאילתה שמכילה פרמטרים בעורך השאילתות, לוחצים על הפעלה.
BQ
-
במסוף Cloud de Confiance , מפעילים את Cloud Shell.
בחלק התחתון של 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 de Confiance , מפעילים את Cloud Shell.
בחלק התחתון של 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 de Confiance , מפעילים את Cloud Shell.
בחלק התחתון של 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<T>, כאשר T מגדיר את השדות והסוגים בתוך המבנה. ההגדרות של השדות מופרדות באמצעות פסיקים, והן מהצורה field_name TF, כאשר TF הוא סוג השדה. לדוגמה, STRUCT<x INT64, y STRING> מגדיר מבנה עם שדה בשם x מסוג INT64 ושדה שני בשם y מסוג STRING.
מידע נוסף על סוג STRUCT זמין במאמר סוגי נתונים .
המסוף
המסוףCloud de Confiance לא תומך במבנים בשאילתות שמכילות פרמטרים.
BQ
-
במסוף Cloud de Confiance , מפעילים את Cloud Shell.
בחלק התחתון של 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. אם ערכי המבנה הם מערכים, צריך להגדיר את הערך הזה כ-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 de Confiance , מפעילים את Cloud Shell.
בחלק התחתון של 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