שימוש במנהל התקן ODBC ל-BigQuery

מנהל ההתקן Open Database Connectivity‏ (ODBC) ל-BigQuery מקשר את האפליקציות שאינן מבוססות Java ל-BigQuery, ומאפשר לכם להשתמש בתכונות של BigQuery עם הכלים והתשתית המועדפים עליכם. כדי לחבר אפליקציות Java ל-BigQuery, משתמשים במנהל התקן JDBC ל-BigQuery.

מנהל ההתקן של ODBC ל-BigQuery זמין במסגרת רישיון Apache 2.0.

לפני שמתחילים

  1. חשוב לוודא שאתם מכירים את מנהלי ההתקנים ומנהלי ההתקנים של ODBC.

  2. מוודאים שמערכת ההפעלה עומדת בדרישות הבאות:

    מערכת הפעלה ארכיטקטורות נתמכות גרסת מינימום ותלות
    Windows ‫32 ביט (x86), ‏ 64 ביט (x64) גרסה: Windows 10, ‏ Windows Server 2016 או גרסה מתקדמת יותר

    תלות: Microsoft Visual C++ Redistributable ל-Visual Studio 2019 או 2022
    macOS ‫64 ביט (x86_64), ‏ ARM64 (Apple Silicon) גרסה: macOS 12 (Monterey) ואילך

    תלות: מנהל מנהלי התקנים של ODBC (לדוגמה, unixODBC). חשוב להוסיף את ספריית ההתקנה אל DYLD_LIBRARY_PATH.
    Linux ‫64 ביט (x86_64) גרסה: כל הפצה עם glibc 2.27 ואילך (לדוגמה, Ubuntu 20.04 LTS ואילך, Debian 11 ואילך)

    תלות: מנהל מנהלי התקנים של ODBC (לדוגמה, unixODBC). חשוב להוסיף את ספריית ההתקנה אל LD_LIBRARY_PATH.
  3. מאמתים את החיבור ל-BigQuery ורושמים את הפרטים הבאים, שבהם תשתמשו בהמשך כשתקימו חיבור עם מנהל התקן ODBC ל-BigQuery. צריך לציין רק את המידע שמתאים לשיטת האימות שבה אתם משתמשים.

    שיטת אימות פרטי אימות דוגמה מאפיין חיבור (להגדרה מאוחר יותר)
    חשבון שירות רגיל מפתח של חשבון שירות (אובייקט JSON) my-sa-key.json KeyFilePath
    התחזות לחשבון שירות כתובת האימייל של חשבון השירות של היעד service-account@project.iam.gserviceaccount.com ServiceAccountImpersonationEmail, KeyFilePath
    איחוד זהויות של עומסי עבודה או איחוד שירותי אימות הזהות של כוח העבודה מאפיין הקהל של קובץ ההגדרה של החשבון החיצוני //iam.googleapis.com/locations/global/... BYOID_AudienceUrl
    אחזור טוקן וקובץ מידע על הסביבה {"file":"/path/to/file"} BYOID_CredentialSource
    פרויקט של משתמש (רק למאגר כוח עבודה) my_project BYOID_PoolUserProject
    סוג אסימון STS id_token BYOID_SubjectTokenType
    נקודת הקצה של החלפת הטוקן של STS https://sts.googleapis.com/v1/token BYOID_TokenUrl
    Application Default Credentials ללא לא רלוונטי לא רלוונטי

התקנה והגדרה של מנהל ההתקן של ODBC

אפשר להתקין ולהגדיר את מנהל ההתקן של ODBC ל-BigQuery באמצעות מערכת הפעלה של Windows או מערכת הפעלה אחרת.

Windows

  1. מתקינים את מנהל ההתקן שמתאים לארכיטקטורה של האפליקציה:

  2. כדי ליצור שם של מקור נתונים (DSN):

    1. בתפריט התחלה ב-Windows, עוברים אל מקורות נתונים של ODBC ובוחרים את הגרסה עם אותה רמת סיביות כמו באפליקציית הלקוח.
    2. בדף ODBC Data Source Administrator (הכלי לניהול מקורות נתונים של ODBC), לוחצים על הכרטיסייה Drivers (מנהלי התקנים).
    3. ברשימת מנהלי ה-ODBC המותקנים, מאתרים את ODBC Driver for BigQuery.
    4. בוחרים בכרטיסייה System DSN כדי ליצור DSN לכל המשתמשים, או בכרטיסייה User DSN כדי ליצור DSN למשתמש הנוכחי. בדרך כלל מומלץ להשתמש ב-DSN של המערכת, כי חלק מהאפליקציות טוענות נתונים באמצעות חשבונות משתמש שונים, ויכול להיות שהן לא יזהו DSN אחרים של משתמשים.
    5. לוחצים על הוספה.
    6. בתיבת הדו-שיח יצירת מקור נתונים חדש, בוחרים באפשרות ODBC Driver for BigQuery (מנהל התקן ODBC ל-BigQuery) ולוחצים על סיום. תיבת הדו-שיח ODBC Driver for BigQuery DSN Setup תיפתח.
    7. בשדה שם מקור הנתונים, מזינים שם ל-DSN.
    8. מוסיפים מאפייני חיבור. רשימה מלאה של הנכסים מופיעה במאמר בנושא נכסי חיבור.

מערכות הפעלה שאינן Windows

  1. מתקינים את מנהל ההתקן שמתאים למערכת ההפעלה:

  2. מחלצים את התוכן של קובץ ה-ZIP או ה-TAR שהורד.

  3. מעבירים את התוכן של קובץ ה-ZIP או ה-TAR לספרייה שבה רוצים להתקין את הדרייבר. נתיב האובייקט המשותף של מנהל התקן ODBC ל-BigQuery הוא INSTALL_DIR/lib/libgoogle_cloud_odbc_bq_driver.so, כאשר INSTALL_DIR הוא ספריית ההתקנה.

  4. מעדכנים את קובצי .ini כך שישקפו את הנתיב החדש של הדרייבר.

    בדוגמה הבאה מתעדכנים קובצי .ini במערכת Linux:

    unzip linux_odbc-driver.VERSION.zip -d linux_odbc-driver.VERSION/
    cd ./linux_odbc-driver.VERSION
    export INSTALL_DIR=$(pwd)
    export ODBCINI=$INSTALL_DIR/odbc.ini
    export ODBCINSTINI=$INSTALL_DIR/odbcinst.ini
    export GOOGLEBIGQUERYODBCINI=$INSTALL_DIR/googlebigqueryodbc.ini

    מחליפים את VERSION בגרסת הדרייבר.

יצירת חיבור

כדי ליצור חיבור בין האפליקציה לבין BigQuery באמצעות מנהל ההתקן של ODBC ל-BigQuery, צריך לזהות את מחרוזת החיבור. אפשר לדלג על השלב הזה אם כבר הגדרתם מאפייני חיבור דרך ה-DSN.

מחרוזת החיבור היא בפורמט הבא:

Driver=ODBC Driver for BigQuery;Catalog=PROJECT_ID;OAuthMechanism=AUTH_TYPE;AUTH_PROPS;OTHER_PROPS

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט ב-BigQuery.
  • AUTH_TYPE: מספר שמציין את סוג האימות שבו השתמשתם. בוחרים אחת מהאפשרויות הבאות:
    • 0: לאימות של חשבונות שירות
    • 3: לאימות באמצעות Application Default Credential
    • 4: לאימות באמצעות איחוד שירותי אימות הזהות של עומסי עבודה או איחוד שירותי אימות הזהות של כוח עבודה
  • AUTH_PROPS: פרטי האימות שרשמתם כשביצעתם אימות ב-BigQuery, שמופיעים בפורמט property_1=value_1; property_2=value_2;... – לדוגמה, KeyFilePath=my-sa-key.json, אם ביצעתם אימות באמצעות חשבון שירות.
  • OTHER_PROPS (אופציונלי): מאפייני חיבור נוספים למנהל התקן ODBC, שמופיעים בפורמט property_1=value_1; property_2=value_2;.... רשימה מלאה של מאפייני החיבור זמינה במאמר בנושא מאפייני חיבור.

מאפייני החיבור

מאפייני חיבור של מנהל התקן ODBC הם פרמטרים של הגדרה שאתם כוללים במחרוזת החיבור כשאתם יוצרים חיבור למסד נתונים. מנהל ההתקן של ODBC ל-BigQuery תומך במאפייני החיבור הבאים.

נכס חיבור תיאור ערך ברירת המחדל סוג הנתונים חובה
AdditionalProjects פרויקטים שלמנהל ההתקן יש גישה אליהם לשאילתות ולפעולות מטא-נתונים, בנוסף לפרויקט הראשי שהוגדר על ידי המאפיין Catalog. לא רלוונטי מחרוזת מופרדת בפסיקים לא
AllowHtapiForLargeResults המדיניות הזו קובעת אם מנהל ההתקן יכול להשתמש ב-BigQuery Storage Read API. 0 בוליאני לא
AllowLargeResults המאפיין הזה קובע אם הדרייבר מעבד תוצאות של שאילתות שגדולות מ-128 MB כשהמאפיין SQLDialect מוגדר ל-0 (SQL מדור קודם). אם המאפיין SQLDialect מוגדר לערך 1 (GoogleSQL), מנהל ההתקן תמיד מעבד תוצאות גדולות של שאילתות. 0 בוליאני לא
BYOID_AudienceUrl מכיל את שם המשאב של מאגר הזהויות של עומסי העבודה או של מאגר כוח העבודה, ואת מזהה הספק במאגר הזה. לא רלוונטי String רק כשOAuthMechanism=4
BYOID_CredentialSource מגדירה את המידע הנדרש לאחזור האסימון עצמו, וגם מידע על הסביבה. לא רלוונטי String רק כשOAuthMechanism=4
BYOID_PoolUserProject מגדירים את הפרויקט אם מדובר במאגר כוח עבודה ולא במאגר זהויות של עומסי עבודה. לא רלוונטי String רק כשמשתמשים ב-OAuthMechanism=4 ובמאגר כוח עבודה
BYOID_SubjectTokenType הגדרת סוג האסימון של STS על סמך מפרט המרת האסימון של OAuth 2.0. הערכים הצפויים כוללים:
  • urn:ietf:params:oauth:token-type:jwt
  • urn:ietf:params:oauth:token-type:id_token
  • urn:ietf:params:oauth:token-type:saml2
  • urn:ietf:params:aws:token-type:aws4_request
לא רלוונטי String רק כשOAuthMechanism=4
BYOID_TokenUrl מגדיר את נקודת הקצה של החלפת הטוקן של STS. https://sts.googleapis.com/v1/token String לא
Catalog מזהה הפרויקט ב-BigQuery שמוגדר כברירת מחדל עבור ה-driver. הדרייבר משתמש בפרויקט הזה כדי להריץ שאילתות, והחיוב על השימוש במשאבים מתבצע דרך הפרויקט. לא רלוונטי String כן
DefaultDataset משמש כמערך נתונים ייעודי בפרויקט, שהדרייבר מפנה אליו באופן אוטומטי כשמריצים שאילתות בלי לציין במפורש מערך נתונים. לא רלוונטי String לא
EnableSession קובע אם חיבור מתחיל סשן. כשהאפשרות הזו מופעלת, השאילתה הראשונה שמופעלת על ידי החיבור הספציפי הזה מתחילה סשן, והדרייבר מעביר את מזהה הסשן לכל השאילתות הבאות. 0 בוליאני לא
FilterTablesOnDefaultDataset קובעת את היקף המטא-נתונים שמוחזרים על ידי שיטות של מטא-נתונים של טבלה או עמודה. כשהערך הוא false ‏ (0), לא מתבצע סינון. כדי להפעיל את הסינון, צריך להגדיר גם את הנכס DefaultDataset. 0 בוליאני לא
IgnoreTransactions כשההגדרה מופעלת (1 או TRUE), מנהל ההתקן מדלג על טיפול ידני בעסקאות (BEGIN TRANSACTION,‏ COMMIT, ‏ ROLLBACK) כשההגדרה SQL_ATTR_AUTOCOMMIT מוגדרת לערך SQL_AUTOCOMMIT_OFF. מומלץ להשתמש באפשרות הזו בכלי BI של צד שלישי ובכלי לקוח SQL (כמו Tableau,‏ Power BI ו-DBeaver) שבהם ההגדרה autocommit מושבתת כברירת מחדל. 0 בוליאני לא
JobCreationMode מאפשר להפעיל את נתיב השאילתה עם זמן האחזור הנמוך. בוחרים אחת מהאפשרויות הבאות:
  • 1: מנהל ההתקן יוצר עבודות לכל שאילתה (JOB_CREATION_REQUIRED)
  • 2: מנהל ההתקן מריץ שאילתות ללא משימות (JOB_CREATION_OPTIONAL)
2 מספר שלם לא
KeyFilePath הנתיב לקובץ ה-JSON של מפתח חשבון השירות כשמשתמשים באימות של חשבון שירות. לא רלוונטי String רק כשOAuthMechanism=0
KMSKeyName מציינים את שם משאב המפתח של Cloud KMS שבו רוצים להשתמש להצפנה ולפענוח של נתונים. לא רלוונטי String לא
LargeResultsDataSetId מציינים את מערך הנתונים של היעד לאחסון תוצאות גדולות של שאילתות. לא רלוונטי String לא
LargeResultsTempTableExpirationTime מציין את משך החיים של טבלאות זמניות ב-LargeResultsDataSetId, באלפיות השנייה. 3600000 ארוכה לא
LogLevel מגביל את רמת הפירוט של הנתונים שהנהג רושם במהלך האינטראקציות. למידע נוסף, אפשר לעיין במאמר בנושא רישום ביומן והגדרת מנהל התקן. בוחרים אחת מהאפשרויות הבאות:
  • 0: OFF
  • 1: ‏ERROR
  • 2: ‏WARNING
  • 3: INFO
0 מספר שלם לא
LogPath מציינת את הספרייה שבה מנהל ההתקן כותב קובצי יומן. למידע נוסף, אפשר לעיין במאמר בנושא רישום ביומן והגדרת מנהל התקן. לא רלוונטי String לא
LogFileCount מציינת את המספר המקסימלי של קובצי יומן שיישארו. 0 מספר שלם לא
LogFileSize מציין את הגודל המקסימלי של כל קובץ יומן ב-KB. 0 ארוכה לא
MaxRetries הגדרה של מספר הניסיונות החוזרים המקסימלי שהדרייבר מבצע עם השהיה מעריכית לפני ניסיון חוזר (exponential backoff) כשנתקלים בשגיאות זמניות בממשקי ה-API של BigQuery REST ו-gRPC (כמו הגבלות קצב או HTTP 5xx) לפני החזרת שגיאה. 6 מספר שלם לא
MaxThreads ההגדרה קובעת את המספר המקסימלי של שרשורים שהדרייבר יכול להשתמש בהם לעיבוד מקביל במאגר שרשורים. כדי להגדיר את המאפיין הזה כהגדרה כללית לדרייבר בסביבות שאינן Windows, מציינים אותו בקובץ googlebigqueryodbc.ini. 8 מספר שלם לא
OAuthMechanism סוג האימות. בוחרים אחת מהאפשרויות הבאות:
  • 0: אימות של חשבון שירות
  • 3: אימות Application Default Credential
  • 4: אימות באמצעות איחוד שירותי אימות הזהות של עומסי עבודה או איחוד שירותי אימות הזהויות של כוח העבודה
לא רלוונטי מספר שלם כן
PrivateServiceConnectUris נקודות קצה (endpoints) מותאמות אישית שיחליפו את נקודות הקצה שמוגדרות כברירת מחדל. דוגמאות:
  • BIGQUERY=https://bigquery.us-east4.rep.googleapis.com/
  • READ_API=bigquerystorage.us-east4.rep.googleapis.com
  • OAUTH2=oauth2.us-east4.rep.googleapis.com
לא רלוונטי מחרוזת מופרדת בפסיקים לא
ProxyHost שם המארח או כתובת ה-IP של שרת Proxy. לא רלוונטי String לא
ProxyPort מספר היציאה שבה שרת ה-proxy מאזין. לא רלוונטי String לא
ProxyPwd הסיסמה לאימות כשמתחברים דרך שרת proxy. לא רלוונטי String לא
ProxyUid שם המשתמש לאימות כשמתחברים דרך שרת proxy. לא רלוונטי String לא
QueryProperties הגדרת מאפיינים שיכולים לשנות את התנהגות השאילתה. לא רלוונטי ‫Map<String, String> לא
RefreshToken טוקן רענון OAuth שמאוחסן לתהליכי אימות משתמשים. לא רלוונטי String לא
RowsFetchedPerBlock מציין את המספר המקסימלי של שורות שאוחזרו לכל בלוק או דף תוצאות מ-BigQuery. 100000 ארוכה לא
ServiceAccountImpersonationEmail מציינת את כתובת האימייל של חשבון השירות שאליו רוצים להתחזות באמצעות פרטי הכניסה הבסיסיים של המתקשר. מאפשרת תהליכי עבודה של הקצאת הרשאות לריבוי דיירים (multi-tenant) ולפי עיקרון ההרשאה המינימלית, בלי להפיץ מפתחות פרטיים נוספים של חשבונות שירות. לא רלוונטי String לא
SessionLocation מציין את המיקום הגיאוגרפי (אזור או מספר אזורים) שבו מנהל התקן יוצר מערכי נתונים או שולח אליהם שאילתות ומריץ הפעלות של שאילתות (לדוגמה, US,‏ EU או us-central1). לא רלוונטי String לא
SQLDialect מציינת באיזה דיאלקט של שאילתה להשתמש. משתמשים ב-1 ל-GoogleSQL (SQL סטנדרטי, מומלץ מאוד) וב-0 ל-SQL מדור קודם. 1 מספר שלם לא
TrustedCerts מציין את הנתיב המלא לקובץ אישורים מותאם אישית של רשות אישורים (CA) בסיסית בפורמט PEM של SSL/TLS (לדוגמה, roots.pem או cacerts.pem). מחליף את קובץ האישורים המצורף שמוגדר כברירת מחדל. לא רלוונטי String לא
UniverseDomain מציינים את דומיין היקום של הארגון. googleapis.com String לא
UseDefaultLargeResultsDataset כשמגדירים את AllowLargeResults=1, המערכת קובעת אם מנהל ההתקן ינתב באופן אוטומטי תוצאות של שאילתות גדולות אל מערך הנתונים הזמני שמוגדר כברירת מחדל (_bqodbc_temp_tables). אם מגדירים את AllowLargeResults=1 ל-0, צריך לציין במפורש את LargeResultsDataSetId. 1 בוליאני לא
UseQueryCache הפעלת התכונה של שמירת שאילתות במטמון ב-BigQuery. true בוליאני לא
UseSystemTrustStore ‫Windows בלבד. ההגדרה הזו מורה לדרייבר לטעון ולאמת אישורי TLS מול מאגר אישורי האמון של Windows, במקום לחפש קובץ PEM מקומי. 0 בוליאני לא

מיפוי סוגי נתונים

כשמריצים שאילתות דרך מנהל התקן ODBC ל-BigQuery, מתבצע מיפוי של סוגי הנתונים הבאים:

סוג GoogleSQL סוג SQL של ODBC
INT64SQL_BIGINT
BOOLSQL_BIT
DATESQL_TYPE_DATE
FLOAT64SQL_DOUBLE
TIMESQL_TYPE_TIME
TIMESTAMPSQL_TYPE_TIMESTAMP
DATETIMESQL_TYPE_TIMESTAMP
BYTESSQL_VARBINARY
STRINGSQL_VARCHAR
ARRAYSQL_VARCHAR
STRUCTSQL_VARCHAR
INTERVALSQL_VARCHAR
JSONSQL_VARCHAR
GEOGRAPHYSQL_VARCHAR
RANGESQL_VARCHAR
NUMERICSQL_NUMERIC
BIGNUMERICSQL_NUMERIC

רישום ביומן והגדרת הדרייבר

כדי להגדיר אפשרויות שחלות על כל הדרייבר (כמו רישום ביומן וקידוד תווים):

Windows

מגדירים את האפשרויות של יומן הרישום ושל DSN באמצעות תיבת הדו-שיח להגדרת DSN בכלי ODBC Data Source Administrator.

מערכות הפעלה שאינן Windows

  1. יוצרים או עורכים קובץ תצורה, כמו googlebigqueryodbc.ini, ומוסיפים אפשרויות של מנהל התקן בקטע [Driver]. דוגמה:

    [Driver]
    LogLevel=3
    LogPath=/path/to/log/directory
    LogFileCount=200
    LogFileSize=1000
    MaxThreads=8
    WcharEncoding=UTF-16LE
    
  2. מגדירים את משתנה הסביבה GOOGLEBIGQUERYODBCINI לנתיב של הקובץ הזה:

    export GOOGLEBIGQUERYODBCINI=/path/to/googlebigqueryodbc.ini
    

רמות רישום ביומן של נהגים

הדרייבר תומך ברמות רישום ביומן 0 עד 3. מומלץ להתחיל ב-LogLevel=3 (INFO) כדי לפתור בעיות.

רמת הרישום ביומן של ODBC תיאור
‫0 (מושבת) השבתה של כל הרישום ביומן.
‫1 (ERROR) אירועי שגיאה ביומן.
‫2 (אזהרה) אירועי אזהרה ביומנים.
‫3 (INFO) יומן שכולל מידע כללי על התקדמות הנהג.

מאפייני הגדרה של הדרייבר (לא Windows)

אפשר להגדיר את המאפיינים הבאים בקטע [Driver] ב-googlebigqueryodbc.ini:

נכס תיאור ערכים מותרים ערך ברירת המחדל
WcharEncoding המאפיין הזה שולט באופן מפורש בקידוד של מאגרי תווים של SQLWCHAR כשמעבירים מחרוזות של תווים רחבים בין מנהל ההתקן לבין מנהל התקן ODBC (לדוגמה, WcharEncoding=UTF-16LE). המאפיין הזה פותר בעיות של שיבוש תווים וקיטוע תווים ב-unixODBC (בדרך כלל UTF-16LE של 2 בייט) וב-iODBC (בדרך כלל UTF-32LE של 4 בייט). UTF-8, UTF-16LE, UTF-32LE ריק (זיהוי אוטומטי על סמך sizeof(SQLWCHAR))
MaxThreads ההגדרה קובעת את המספר המקסימלי של שרשורים שהדרייבר יכול להשתמש בהם לעיבוד מקביל במאגר שרשורים. מספר שלם חיובי 8

דוגמאות

בדוגמאות הבאות מוסבר איך להשתמש בשאילתות עם פרמטרים ובסקריפטים עם כמה הצהרות באמצעות מנהל התקן ODBC.

שאילתות שמכילות פרמטרים

// 1. Prepare statement
std::string insert_stmt = "INSERT INTO MyTable VALUES (?, ?, ?)";
status = SQLPrepare(hstmt, (SQLCHAR*)insert_stmt.c_str(), SQL_NTS);

// 2. Bind parameters
std::string str_val = "example_string";
long long int_val = 12345;
double float_val = 1.2345;

// Bind string field
status = SQLBindParameter(
    hstmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_VARCHAR, 50, 0,
    (SQLPOINTER)str_val.c_str(), str_val.size(), NULL);

// Bind integer field
status = SQLBindParameter(
    hstmt, 2, SQL_PARAM_INPUT, SQL_C_UBIGINT, SQL_BIGINT, 0, 0,
    &int_val, 0, NULL);

// Bind float field
status = SQLBindParameter(
    hstmt, 3, SQL_PARAM_INPUT, SQL_C_DOUBLE, SQL_DOUBLE, 0, 0,
    &float_val, 0, NULL);

// 3. Execute statement
status = SQLExecute(hstmt);

סקריפטים עם כמה הצהרות

// 1. Prepare and execute the multi-statement script
std::string query =
    "CREATE OR REPLACE TABLE MyTable (StringField STRING, IntegerField INTEGER); "
    "INSERT INTO MyTable VALUES ('example', 123); "
    "SELECT * FROM MyTable;";

status = SQLExecDirect(hstmt, (SQLCHAR*)query.c_str(), SQL_NTS);

// 2. Process results for each statement using SQLMoreResults
do {
    SQLSMALLINT num_cols;
    status = SQLNumResultCols(hstmt, &num_cols);

    if (num_cols > 0) {
        // This is a result-returning statement (e.g., SELECT)
        while (SQLFetch(hstmt) == SQL_SUCCESS) {
            // Process rows...
        }
    } else {
        // This is a non-result statement (e.g., CREATE, INSERT)
        SQLLEN row_count;
        SQLRowCount(hstmt, &row_count);
        // Process affected rows...
    }
} while (SQLMoreResults(hstmt) == SQL_SUCCESS);

תמחור

אפשר להוריד את מנהל ההתקן של ODBC ל-BigQuery ללא עלות. עם זאת, כשמשתמשים במנהל ההתקן, חלים תעריפי הניתוח הרגילים של BigQuery.

המאמרים הבאים