יצירת טבלאות חיצוניות של Amazon S3 BigLake
במאמר הזה מוסבר איך ליצור טבלת BigLake ב-Amazon Simple Storage Service (Amazon S3). טבלת BigLake מאפשרת להשתמש בהענקת הרשאות גישה כדי לשלוח שאילתות לנתונים ב-Amazon S3. הענקת הרשאות גישה מפרידה בין הגישה לטבלת BigLake לבין הגישה למאגר הנתונים הבסיסי.
מידע על זרימת הנתונים בין BigQuery ל-Amazon S3 זמין במאמר זרימת נתונים כשמריצים שאילתות על נתונים.
לפני שמתחילים
ודאו שיש לכם חיבור לגישה לנתונים ב-Amazon S3.
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות ליצירת טבלה חיצונית, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM BigQuery Admin (roles/bigquery.admin) במערך הנתונים.
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות ליצירת טבלה חיצונית. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי ליצור טבלה חיצונית, צריך את ההרשאות הבאות:
-
bigquery.tables.create -
bigquery.connections.delegate
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
יצירת מערך נתונים
לפני שיוצרים טבלה חיצונית, צריך ליצור מערך נתונים באזור נתמך. בוחרים באחת מהאפשרויות הבאות:המסוף
עוברים לדף BigQuery.
- בחלונית הימנית, לוחצים על כלי הניתוחים.
- בחלונית Explorer, בוחרים את הפרויקט שבו רוצים ליצור את מערך הנתונים.
- לוחצים על View actions (הצגת פעולות) ואז על Create dataset (יצירת מערך נתונים).
- בדף Create dataset, מציינים את הפרטים הבאים:
- בשדה Dataset ID מזינים שם ייחודי למערך הנתונים.
- בקטע Data location (מיקום הנתונים), בוחרים אזור נתמך.
- אופציונלי: כדי למחוק טבלאות באופן אוטומטי, מסמנים את התיבה Enable table expiration (הפעלת תפוגה של טבלאות) ומגדירים את Default maximum table age (גיל מקסימלי של טבלה כברירת מחדל) בימים. הנתונים ב-Amazon S3 לא נמחקים כשהתוקף של הטבלה פג.
- אם רוצים להשתמש באיסוף נתונים שמוגדר כברירת מחדל, מרחיבים את הקטע אפשרויות מתקדמות ובוחרים באפשרות הפעלת איסוף נתונים שמוגדר כברירת מחדל.
- לוחצים על יצירת מערך נתונים.
SQL
משתמשים בהצהרת ה-DDL CREATE SCHEMA.
בדוגמה הבאה נוצר מערך נתונים באזור aws-us-east-1:
במסוף Google Cloud , עוברים לדף BigQuery.
מזינים את ההצהרה הבאה בעורך השאילתות:
CREATE SCHEMA mydataset OPTIONS ( location = 'aws-us-east-1');
לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
BQ
בסביבת שורת פקודה, יוצרים מערך נתונים באמצעות הפקודה bq mk:
bq --location=LOCATION mk \ --dataset \ PROJECT_ID:DATASET_NAME
הפרמטר --project_id מבטל את פרויקט ברירת המחדל.
מחליפים את מה שכתוב בשדות הבאים:
LOCATION: המיקום של מערך הנתוניםמידע על אזורים נתמכים זמין במאמר מיקומים. אחרי שיוצרים מערך נתונים, אי אפשר לשנות את המיקום שלו. אפשר להגדיר ערך ברירת מחדל למיקום באמצעות הקובץ
.bigqueryrc.
PROJECT_ID: מזהה הפרויקט
DATASET_NAME: השם של מערך הנתונים שרוצים ליצורכדי ליצור מערך נתונים בפרויקט שאינו פרויקט ברירת המחדל, מוסיפים את מזהה הפרויקט לשם מערך הנתונים בפורמט הבא:
PROJECT_ID:DATASET_NAME.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Java API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
יצירת טבלאות BigLake על נתונים לא מחולקים
בוחרים באחת מהאפשרויות הבאות:
המסוף
עוברים לדף BigQuery.
בחלונית הימנית, לוחצים על כלי הניתוחים:

אם החלונית הימנית לא מוצגת, לוחצים על הרחבת החלונית הימנית כדי לפתוח אותה.
בחלונית Explorer, מרחיבים את הפרויקט, לוחצים על Datasets ובוחרים מערך נתונים.
בקטע פרטי מערך הנתונים, לוחצים על יצירת טבלה.
בדף Create table, בקטע Source, מבצעים את הפעולות הבאות:
- בקטע יצירת טבלה מ, בוחרים באפשרות Amazon S3.
- בשדה Select S3 path (בחירת נתיב S3), מזינים URI שמפנה לנתונים ב-Amazon S3 בפורמט
s3://BUCKET_NAME/PATH. מחליפים אתBUCKET_NAMEבשם של קטגוריית Amazon S3. האזור של הקטגוריה צריך להיות זהה לאזור של מערך הנתונים. מחליפים אתPATHבנתיב שבו רוצים לשמור את הקובץ המיוצא. הנתיב יכול להכיל תו כללי אחד לחיפוש*. - בקטע פורמט קובץ, בוחרים את פורמט הנתונים ב-Amazon S3. הפורמטים הנתמכים הם AVRO, CSV, DELTA_LAKE, ICEBERG, JSONL, ORC ו-PARQUET.
בקטע יעד, מציינים את הפרטים הבאים:
- בקטע Dataset (מערך נתונים), בוחרים את מערך הנתונים המתאים.
- בשדה Table (טבלה), מזינים את שם הטבלה.
- מוודאים שהאפשרות Table type מוגדרת ל-External table.
- בקטע Connection ID (מזהה החיבור), בוחרים את מזהה החיבור המתאים מהתפריט הנפתח. מידע על חיבורים זמין במאמר חיבור ל-Amazon S3.
בקטע סכימה, אתם יכולים להפעיל זיהוי אוטומטי של סכימה או לציין סכימה באופן ידני אם יש לכם קובץ מקור. אם אין לכם קובץ מקור, אתם צריכים לציין סכימה באופן ידני.
כדי להפעיל זיהוי אוטומטי של סכימה, בוחרים באפשרות זיהוי אוטומטי.
כדי לציין סכימה באופן ידני, משאירים את האפשרות זיהוי אוטומטי לא מסומנת. מפעילים את האפשרות Edit as text ומזינים את סכימת הטבלה כמערך JSON.
לוחצים על יצירת טבלה.
SQL
כדי ליצור טבלת BigLake, משתמשים בהצהרת CREATE EXTERNAL TABLE עם פסקה WITH CONNECTION:
במסוף Google Cloud , עוברים לדף BigQuery.
מזינים את ההצהרה הבאה בעורך השאילתות:
CREATE EXTERNAL TABLE DATASET_NAME.TABLE_NAME WITH CONNECTION `AWS_LOCATION.CONNECTION_NAME` OPTIONS ( format = "DATA_FORMAT", uris = ["S3_URI"], max_staleness = STALENESS_INTERVAL, metadata_cache_mode = 'CACHE_MODE');
מחליפים את מה שכתוב בשדות הבאים:
-
DATASET_NAME: השם של מערך הנתונים שיצרתם -
TABLE_NAME: השם שרוצים לתת לטבלה -
AWS_LOCATION: מיקום ב-AWS בפורמט Google Cloud (לדוגמה, `aws-us-east-1`) -
CONNECTION_NAME: השם של החיבור שיצרתם -
DATA_FORMAT: כל אחד מהפורמטים המאוחדים של BigQuery שנתמכים (למשלAVRO,CSV,DELTA_LAKE,ICEBERGאוPARQUET(בגרסת Preview)) -
S3_URI: URI שמפנה לנתוני Amazon S3 (לדוגמה,s3://bucket/path) -
STALENESS_INTERVAL: מציין אם פעולות בטבלת BigLake משתמשות במטא-נתונים שנשמרו במטמון, ומה מידת העדכניות של המטא-נתונים שנשמרו במטמון שנדרשת כדי שהפעולה תוכל להשתמש בהם. מידע נוסף על שיקולים לגבי שמירת מטא-נתונים במטמון זמין במאמר שמירת מטא-נתונים במטמון לשיפור הביצועים.כדי להשבית את השמירה במטמון של המטא-נתונים, מציינים את הערך 0. (זוהי ברירת המחדל)
כדי להפעיל שמירת מטא-נתונים במטמון, צריך לציין ערך של מילול של מרווח בין 30 דקות ל-7 ימים. לדוגמה, כדי לציין מרווח של 4 שעות, צריך להזין
INTERVAL 4 HOUR. אם הערך הזה קיים, פעולות שמתבצעות בטבלה משתמשות במטא נתונים ששמורים במטמון, אם הם רעננו ב-4 השעות האחרונות. אם המטא-נתונים שבמטמון ישנים יותר, הפעולה מאחזרת מטא-נתונים מ-Amazon S3 במקום זאת. -
CACHE_MODE: מציין אם מטמון המטא-נתונים מתרענן באופן אוטומטי או ידני. מידע נוסף על שיקולים לגבי שמירת מטא-נתונים במטמון זמין במאמר שמירת מטא-נתונים במטמון לשיפור הביצועים.מגדירים את הערך
AUTOMATICכדי שהמטמון של המטא-נתונים יתעדכן במרווח זמן שמוגדר על ידי המערכת, בדרך כלל בין 30 ל-60 דקות.מגדירים את הערך
MANUALאם רוצים לרענן את מטמון המטא-נתונים לפי לוח זמנים שקובעים. במקרה כזה, אפשר להתקשר אלBQ.REFRESH_EXTERNAL_METADATA_CACHEהליך המערכת כדי לרענן את המטמון.אם מגדירים את
STALENESS_INTERVALלערך גדול מ-0, צריך להגדיר גם אתCACHE_MODE.
-
לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
דוגמה:
CREATE EXTERNAL TABLE awsdataset.awstable WITH CONNECTION `aws-us-east-1.s3-read-connection` OPTIONS ( format="CSV", uris=["s3://s3-bucket/path/file.csv"], max_staleness = INTERVAL 1 DAY, metadata_cache_mode = 'AUTOMATIC' );
BQ
יוצרים קובץ הגדרת טבלה:
bq mkdef \ --source_format=DATA_FORMAT \ --connection_id=AWS_LOCATION.CONNECTION_NAME \ --metadata_cache_mode=CACHE_MODE \ S3_URI > table_def
מחליפים את מה שכתוב בשדות הבאים:
-
DATA_FORMAT: כל אחד מהפורמטים המאוחדים של BigQuery שנתמכים (כמוAVRO,CSV,DELTA_LAKE,ICEBERGאוPARQUET). -
S3_URI: URI שמפנה לנתונים ב-Amazon S3 (לדוגמה,s3://bucket/path). -
AWS_LOCATION: מיקום ב-AWS בפורמט Google Cloud (לדוגמה,aws-us-east-1).
CONNECTION_NAME: השם של החיבור שיצרתם.
CACHE_MODE: מציין אם מטמון המטא-נתונים מתרענן באופן אוטומטי או ידני. צריך לכלול את הדגל הזה רק אם מתכננים להשתמש גם בדגל--max_stalenessבפקודה הבאהbq mkכדי להפעיל שמירת מטא-נתונים במטמון. מידע נוסף על שיקולים לגבי שמירת מטא-נתונים במטמון זמין במאמר שמירת מטא-נתונים במטמון לשיפור הביצועים.אם מגדירים את הערך
AUTOMATIC, מטמון המטא-נתונים מתעדכן במרווח זמן שמוגדר על ידי המערכת, בדרך כלל בין 30 ל-60 דקות.מגדירים את הערך
MANUALאם רוצים לרענן את מטמון המטא-נתונים לפי לוח זמנים שקובעים. במקרה כזה, אפשר להתקשר אלBQ.REFRESH_EXTERNAL_METADATA_CACHEמערכת ההליכים כדי לרענן את המטמון. אם הערך שלSTALENESS_INTERVALגדול מ-0, צריך להגדיר אתCACHE_MODE.
בשלב הבא, יוצרים את הטבלה ב-BigLake:
bq mk --max_staleness=STALENESS_INTERVAL --external_table_definition=table_def DATASET_NAME.TABLE_NAME
מחליפים את מה שכתוב בשדות הבאים:
STALENESS_INTERVAL: מציין אם פעולות שמתבצעות בטבלת BigLake משתמשות במטא-נתונים ששמורים במטמון, וכמה עדכניים צריכים להיות המטא-נתונים ששמורים במטמון כדי שהפעולה תוכל להשתמש בהם. מידע נוסף על שיקולים לגבי שמירת מטא-נתונים במטמון זמין במאמר שמירת מטא-נתונים במטמון לשיפור הביצועים.כדי להשבית את השמירה במטמון של המטא-נתונים, מציינים את הערך 0. (זוהי ברירת המחדל)
כדי להפעיל שמירת מטא-נתונים במטמון, צריך לציין ערך של מילול לציון מרווח בין 30 דקות ל-7 ימים. לדוגמה, כדי להגדיר את מרווח הרענון ל-4 שעות, מציינים
INTERVAL 4 HOUR. אם הערך הזה מוגדר, פעולות שמתבצעות בטבלה משתמשות במטא נתונים שנשמרו במטמון אם הם רעננו ב-4 השעות האחרונות. אם המטא-נתונים שבמטמון ישנים יותר, הפעולה מאחזרת מטא-נתונים מ-Amazon S3 במקום זאת.
DATASET_NAME: השם של מערך הנתונים שיצרתם.
TABLE_NAME: השם שרוצים לתת לטבלה.
לדוגמה, הפקודה הבאה יוצרת טבלת BigLake חדשה, awsdataset.awstable, שיכולה לשלוח שאילתות לנתוני Amazon S3 שמאוחסנים בנתיב s3://s3-bucket/path/file.csv ויש לה חיבור קריאה במיקום aws-us-east-1:
bq mkdef \ --autodetect \ --source_format=CSV \ --connection_id=aws-us-east-1.s3-read-connection \ --metadata_cache_mode=AUTOMATIC \ s3://s3-bucket/path/file.csv > table_def bq mk --max_staleness=INTERVAL "1" HOUR \ --external_table_definition=table_def awsdataset.awstable
API
מבצעים קריאה ל-method של API tables.insert ויוצרים ExternalDataConfiguration במשאב Table שמעבירים.
מציינים את המאפיין schema או מגדירים את המאפיין autodetect לערך true כדי להפעיל זיהוי אוטומטי של סכימה עבור מקורות נתונים נתמכים.
מציינים את הנכס ב-connectionId כדי לזהות את החיבור שבו רוצים להשתמש לחיבור ל-Amazon S3.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Java API.
כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
יצירת טבלאות BigLake על נתונים מחולקים
אפשר ליצור טבלת BigLake לנתונים שמחולקים למחיצות ב-Hive ב-Amazon S3. אחרי שיוצרים טבלה מחולקת למחיצות (Partitions) חיצוניות, אי אפשר לשנות את מפתח המחיצה. כדי לשנות את מפתח המחיצה, צריך ליצור מחדש את הטבלה.
כדי ליצור טבלת BigLake על סמך נתונים עם חלוקה למחיצות ב-Hive, בוחרים באחת מהאפשרויות הבאות:
המסוף
עוברים לדף BigQuery.
בחלונית הימנית, לוחצים על כלי הניתוחים:

בחלונית Explorer, מרחיבים את הפרויקט, לוחצים על Datasets ובוחרים מערך נתונים.
לוחצים על יצירת טבלה. תיפתח החלונית Create table.
בקטע מקור, מציינים את הפרטים הבאים:
בקטע יצירת טבלה מ, בוחרים באפשרות Amazon S3.
מזינים את הנתיב לתיקייה באמצעות תווים כלליים לחיפוש. לדוגמה,
s3://mybucket/*.התיקייה צריכה להיות באותו מיקום של מערך הנתונים שמכיל את הטבלה שרוצים ליצור, לצרף או להחליף.
מהרשימה פורמט קובץ בוחרים את סוג הקובץ.
מסמנים את תיבת הסימון חלוקה למחיצות של נתוני המקור ומציינים את הפרטים הבאים:
- בשדה Select Source URI Prefix, מזינים את התחילית של ה-URI. לדוגמה,
s3://mybucket/my_files. - אופציונלי: כדי לדרוש מסנן מחיצה בכל השאילתות של הטבלה הזו, מסמנים את תיבת הסימון דרישת מסנן מחיצה. הוספת דרישה לסינון מחיצות יכולה להפחית את העלויות ולשפר את הביצועים. מידע נוסף מופיע במאמר בנושא הוספת מסנני פרדיקטים למפתחות של מחיצות בשאילתות.
בקטע Partition inference mode, בוחרים באחת מהאפשרויות הבאות:
- הסקת סוגים באופן אוטומטי: מגדירים את מצב הזיהוי של סכימת החלוקה למחיצות לערך
AUTO. - כל העמודות הן מחרוזות: מגדירים את מצב הזיהוי של סכימת המחיצה ל-
STRINGS. - אני רוצה לספק משלי: מגדירים את מצב הזיהוי של סכימת המחיצות ל-
CUSTOMומזינים ידנית את פרטי הסכימה של מפתחות המחיצות. מידע נוסף מופיע במאמר בנושא סכימת מפתח מחיצה בהתאמה אישית.
- הסקת סוגים באופן אוטומטי: מגדירים את מצב הזיהוי של סכימת החלוקה למחיצות לערך
- בשדה Select Source URI Prefix, מזינים את התחילית של ה-URI. לדוגמה,
בקטע יעד, מציינים את הפרטים הבאים:
- בשדה Project, בוחרים את הפרויקט שבו רוצים ליצור את הטבלה.
- בשדה Dataset, בוחרים את מערך הנתונים שבו רוצים ליצור את הטבלה.
- בשדה Table, מזינים את שם הטבלה שרוצים ליצור.
- בשדה Table type (סוג הטבלה), מוודאים שהאפשרות External table (טבלה חיצונית) נבחרה.
- בקטע מזהה חיבור, בוחרים את החיבור שיצרתם קודם.
בקטע סכימה, אתם יכולים להפעיל זיהוי אוטומטי של סכימה או לציין סכימה באופן ידני אם יש לכם קובץ מקור. אם אין לכם קובץ מקור, אתם צריכים לציין סכימה באופן ידני.
כדי להפעיל זיהוי אוטומטי של סכימה, בוחרים באפשרות זיהוי אוטומטי.
כדי לציין סכימה באופן ידני, משאירים את האפשרות זיהוי אוטומטי לא מסומנת. מפעילים את האפשרות Edit as text ומזינים את סכימת הטבלה כמערך JSON.
כדי להתעלם משורות עם ערכי עמודות נוספים שלא תואמים לסכימה, מרחיבים את הקטע אפשרויות מתקדמות ובוחרים באפשרות ערכים לא ידועים.
לוחצים על יצירת טבלה.
SQL
משתמשים בהצהרת ה-DDL CREATE EXTERNAL TABLE:
במסוף Google Cloud , עוברים לדף BigQuery.
מזינים את ההצהרה הבאה בעורך השאילתות:
CREATE EXTERNAL TABLE `PROJECT_ID.DATASET.EXTERNAL_TABLE_NAME` WITH PARTITION COLUMNS ( PARTITION_COLUMN PARTITION_COLUMN_TYPE, ) WITH CONNECTION `PROJECT_ID.REGION.CONNECTION_ID` OPTIONS ( hive_partition_uri_prefix = "HIVE_PARTITION_URI_PREFIX", uris=['FILE_PATH'], format ="TABLE_FORMAT" max_staleness = STALENESS_INTERVAL, metadata_cache_mode = 'CACHE_MODE' );
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: שם הפרויקט שבו רוצים ליצור את הטבלה, לדוגמה,myproject -
DATASET: השם של מערך הנתונים ב-BigQuery שבו רוצים ליצור את הטבלה – למשל,mydataset -
EXTERNAL_TABLE_NAME: השם של הטבלה שרוצים ליצור, לדוגמהmytable -
PARTITION_COLUMN: השם של עמודת החלוקה -
PARTITION_COLUMN_TYPE: הסוג של עמודת החלוקה למחיצות -
REGION: האזור שמכיל את החיבור, למשלus -
CONNECTION_ID: השם של החיבור, לדוגמהmyconnection -
HIVE_PARTITION_URI_PREFIX: קידומת URI של חלוקה למחיצות ב-Hive – לדוגמה:s3://mybucket/ -
FILE_PATH: הנתיב למקור הנתונים של הטבלה החיצונית שרוצים ליצור. לדוגמה:s3://mybucket/*.parquet -
TABLE_FORMAT: הפורמט של הטבלה שרוצים ליצור. לדוגמה:PARQUET -
STALENESS_INTERVAL: מציין אם פעולות בטבלת BigLake משתמשות במטא-נתונים שנשמרו במטמון, ומה מידת העדכניות של המטא-נתונים שנשמרו במטמון שנדרשת כדי שהפעולה תוכל להשתמש בהם. מידע נוסף על שיקולים לגבי שמירת מטא-נתונים במטמון זמין במאמר שמירת מטא-נתונים במטמון לשיפור הביצועים.כדי להשבית את השמירה במטמון של המטא-נתונים, מציינים את הערך 0. (זוהי ברירת המחדל)
כדי להפעיל שמירת מטא-נתונים במטמון, צריך לציין ערך של מילול של מרווח בין 30 דקות ל-7 ימים. לדוגמה, כדי לציין מרווח של 4 שעות, צריך להזין
INTERVAL 4 HOUR. אם הערך הזה קיים, פעולות שמתבצעות בטבלה משתמשות במטא נתונים ששמורים במטמון, אם הם רעננו ב-4 השעות האחרונות. אם המטא-נתונים שבמטמון ישנים יותר, הפעולה מאחזרת מטא-נתונים מ-Amazon S3 במקום זאת. -
CACHE_MODE: מציין אם מטמון המטא-נתונים מתרענן באופן אוטומטי או ידני. מידע נוסף על שיקולים לגבי שמירת מטא-נתונים במטמון זמין במאמר שמירת מטא-נתונים במטמון לשיפור הביצועים.מגדירים את הערך
AUTOMATICכדי שהמטמון של המטא-נתונים יתעדכן במרווח זמן שמוגדר על ידי המערכת, בדרך כלל בין 30 ל-60 דקות.מגדירים את הערך
MANUALאם רוצים לרענן את מטמון המטא-נתונים לפי לוח זמנים שקובעים. במקרה כזה, אפשר להתקשר אלBQ.REFRESH_EXTERNAL_METADATA_CACHEהליך המערכת כדי לרענן את המטמון.אם מגדירים את
STALENESS_INTERVALלערך גדול מ-0, צריך להגדיר גם אתCACHE_MODE.
-
לוחצים על הפעלה.
מידע נוסף על הרצת שאילתות זמין במאמר הרצת שאילתה אינטראקטיבית.
דוגמאות
בדוגמה הבאה נוצרת טבלת BigLake על נתונים מחולקים ב-Amazon S3. הסכימה מזוהה אוטומטית.
CREATE EXTERNAL TABLE `my_dataset.my_table` WITH PARTITION COLUMNS ( sku STRING, ) WITH CONNECTION `us.my-connection` OPTIONS( hive_partition_uri_prefix = "s3://mybucket/products", uris = ['s3://mybucket/products/*'] max_staleness = INTERVAL 1 DAY, metadata_cache_mode = 'AUTOMATIC' );
BQ
קודם כל, משתמשים בפקודה bq mkdef כדי ליצור קובץ הגדרת טבלה:
bq mkdef \ --source_format=SOURCE_FORMAT \ --connection_id=REGION.CONNECTION_ID \ --hive_partitioning_mode=PARTITIONING_MODE \ --hive_partitioning_source_uri_prefix=URI_SHARED_PREFIX \ --require_hive_partition_filter=BOOLEAN \ --metadata_cache_mode=CACHE_MODE \ URIS > DEFINITION_FILE
מחליפים את מה שכתוב בשדות הבאים:
-
SOURCE_FORMAT: הפורמט של מקור הנתונים החיצוני. לדוגמה,CSV. -
REGION: האזור שמכיל את החיבור, לדוגמהus. -
CONNECTION_ID: שם החיבור, לדוגמהmyconnection. -
PARTITIONING_MODE: מצב החלוקה למחיצות של Hive. משתמשים באחד מהערכים הבאים:-
AUTO: זיהוי אוטומטי של שמות וסוגי המפתחות. -
STRINGS: המערכת תמיר אוטומטית את שמות המפתחות למחרוזות. -
CUSTOM: קידוד סכמת המפתח בקידומת של ה-URI במקור.
-
-
URI_SHARED_PREFIX: קידומת ה-URI של המקור.
BOOLEAN: מציין אם נדרש מסנן של תנאי מסוים בזמן השאילתה. הדגל הזה הוא אופציונלי. ערך ברירת המחדל הואfalse.
CACHE_MODE: מציין אם מטמון המטא-נתונים מתרענן באופן אוטומטי או ידני. צריך לכלול את הדגל הזה רק אם מתכננים להשתמש גם בדגל--max_stalenessבפקודה הבאהbq mkכדי להפעיל שמירת מטא-נתונים במטמון. מידע נוסף על שיקולים לגבי שמירת מטא-נתונים במטמון זמין במאמר שמירת מטא-נתונים במטמון לשיפור הביצועים.אם מגדירים את הערך
AUTOMATIC, מטמון המטא-נתונים מתעדכן במרווח זמן שמוגדר על ידי המערכת, בדרך כלל בין 30 ל-60 דקות.מגדירים את הערך
MANUALאם רוצים לרענן את מטמון המטא-נתונים לפי לוח זמנים שקובעים. במקרה כזה, אפשר להתקשר אלBQ.REFRESH_EXTERNAL_METADATA_CACHEמערכת ההליכים כדי לרענן את המטמון. אם הערך שלSTALENESS_INTERVALגדול מ-0, צריך להגדיר אתCACHE_MODE.
URIS: הנתיב לתיקיית Amazon S3, בפורמט של תווים כלליים.
DEFINITION_FILE: הנתיב אל קובץ הגדרת הטבלה במחשב המקומי.
אם PARTITIONING_MODE הוא CUSTOM, צריך לכלול את סכימת מפתח המחיצה בקידומת של מזהה ה-URI של המקור, באמצעות הפורמט הבא:
--hive_partitioning_source_uri_prefix=URI_SHARED_PREFIX/{KEY1:TYPE1}/{KEY2:TYPE2}/...
אחרי שיוצרים את קובץ הגדרת הטבלה, משתמשים בפקודה bq mk כדי ליצור את טבלת BigLake:
bq mk --max_staleness=STALENESS_INTERVAL \ --external_table_definition=DEFINITION_FILE \ DATASET_NAME.TABLE_NAME \ SCHEMA
מחליפים את מה שכתוב בשדות הבאים:
STALENESS_INTERVAL: מציין אם פעולות שמתבצעות בטבלת BigLake משתמשות במטא-נתונים ששמורים במטמון, וכמה עדכניים צריכים להיות המטא-נתונים ששמורים במטמון כדי שהפעולה תוכל להשתמש בהם. מידע נוסף על שיקולים לגבי שמירת מטא-נתונים במטמון זמין במאמר שמירת מטא-נתונים במטמון לשיפור הביצועים.כדי להשבית את השמירה במטמון של המטא-נתונים, מציינים את הערך 0. (זוהי ברירת המחדל)
כדי להפעיל שמירת מטא-נתונים במטמון, צריך לציין ערך של מילול לציון מרווח בין 30 דקות ל-7 ימים. לדוגמה, כדי להגדיר את מרווח הרענון ל-4 שעות, מציינים
INTERVAL 4 HOUR. אם הערך הזה מוגדר, פעולות שמתבצעות בטבלה משתמשות במטא נתונים שנשמרו במטמון אם הם רעננו ב-4 השעות האחרונות. אם המטא-נתונים שבמטמון ישנים יותר, הפעולה מאחזרת מטא-נתונים מ-Amazon S3 במקום זאת.
DEFINITION_FILE: הנתיב לקובץ הגדרת הטבלה.
DATASET_NAME: השם של מערך הנתונים שמכיל את הטבלה.
TABLE_NAME: השם של הטבלה שיוצרים.
SCHEMA: מציין נתיב לקובץ סכימת JSON, או מציין את הסכימה בפורמטfield:data_type,field:data_type,.... כדי להשתמש בזיהוי אוטומטי של סכימה, משמיטים את הארגומנט הזה.
דוגמאות
בדוגמה הבאה נעשה שימוש במצב חלוקה למחיצות של Hive לנתונים של Amazon S3:AUTO
bq mkdef --source_format=CSV \
--connection_id=us.my-connection \
--hive_partitioning_mode=AUTO \
--hive_partitioning_source_uri_prefix=s3://mybucket/myTable \
--metadata_cache_mode=AUTOMATIC \
s3://mybucket/* > mytable_def
bq mk --max_staleness=INTERVAL "1" HOUR \
--external_table_definition=mytable_def \
mydataset.mytable \
Region:STRING,Quarter:STRING,Total_sales:INTEGER
בדוגמה הבאה נעשה שימוש במצב חלוקה למחיצות של Hive לנתונים של Amazon S3:STRING
bq mkdef --source_format=CSV \
--connection_id=us.my-connection \
--hive_partitioning_mode=STRING \
--hive_partitioning_source_uri_prefix=s3://mybucket/myTable \
--metadata_cache_mode=AUTOMATIC \
s3://mybucket/myTable/* > mytable_def
bq mk --max_staleness=INTERVAL "1" HOUR \
--external_table_definition=mytable_def \
mydataset.mytable \
Region:STRING,Quarter:STRING,Total_sales:INTEGER
API
כדי להגדיר חלוקה למחיצות ב-Hive באמצעות BigQuery API, צריך לכלול את האובייקט hivePartitioningOptions באובייקט ExternalDataConfiguration כשיוצרים את קובץ הגדרת הטבלה.
כדי ליצור טבלת BigLake, צריך לציין גם ערך בשדה connectionId.
אם מגדירים את השדה hivePartitioningOptions.mode ל-CUSTOM, צריך לקודד את סכימת מפתח המחיצה בשדה hivePartitioningOptions.sourceUriPrefix באופן הבא:
s3://BUCKET/PATH_TO_TABLE/{KEY1:TYPE1}/{KEY2:TYPE2}/...
כדי לאכוף את השימוש במסנן פרדיקטים בזמן השאילתה, מגדירים את השדה hivePartitioningOptions.requirePartitionFilter לערך true.
טבלאות Delta Lake
Delta Lake הוא פורמט טבלה בקוד פתוח שתומך בטבלאות נתונים בקנה מידה של פטה-בייט. אפשר להריץ שאילתות על טבלאות Delta Lake כטבלאות זמניות וגם כטבלאות קבועות, והן נתמכות כטבלאות BigLake.
סנכרון סכימה
Delta Lake שומר על סכימה קנונית כחלק מהמטא-נתונים שלו. אי אפשר לעדכן סכימה באמצעות קובץ מטא-נתונים בפורמט JSON. כדי לעדכן את הסכימה:
משתמשים בפקודה
bq updateעם הדגל--autodetect_schema:bq update --autodetect_schema PROJECT_ID:DATASET.TABLE
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט שמכיל את הטבלה שרוצים לעדכן
DATASET: מערך הנתונים שמכיל את הטבלה שרוצים לעדכן
TABLE: הטבלה שרוצים לעדכן
המרת סוג
BigQuery ממיר את סוגי הנתונים של Delta Lake לסוגי הנתונים הבאים של BigQuery:
| סוג Delta Lake | סוג BigQuery |
|---|---|
boolean |
BOOL |
byte |
INT64 |
int |
INT64 |
long |
INT64 |
float |
FLOAT64 |
double |
FLOAT64 |
Decimal(P/S) |
NUMERIC או BIG_NUMERIC בהתאם לרמת הדיוק |
date |
DATE |
time |
TIME |
timestamp (not partition column) |
TIMESTAMP |
timestamp (partition column) |
DATETIME |
string |
STRING |
binary |
BYTES |
array<Type> |
ARRAY<Type> |
struct |
STRUCT |
map<KeyType, ValueType> |
ARRAY<Struct<key KeyType, value ValueType>> |
מגבלות
ההגבלות הבאות חלות על טבלאות Delta Lake:
המגבלות על טבלאות חיצוניות חלות על טבלאות Delta Lake.
יש תמיכה בטבלאות Delta Lake רק ב-BigQuery Omni, והן כפופות למגבלות שקשורות אליהן.
אי אפשר לעדכן טבלה באמצעות קובץ מטא-נתונים חדש בפורמט JSON. חובה להשתמש בפעולת עדכון של טבלת סכימה עם זיהוי אוטומטי. מידע נוסף זמין במאמר בנושא סנכרון סכימות.
תכונות האבטחה של BigLake מגנות על טבלאות Delta Lake רק כשניגשים אליהן דרך שירותי BigQuery.
יצירת טבלת Delta Lake
בדוגמה הבאה נוצרת טבלה חיצונית באמצעות ההצהרה CREATE EXTERNAL
TABLE בפורמט Delta Lake:
CREATE [OR REPLACE] EXTERNAL TABLE table_name
WITH CONNECTION connection_name
OPTIONS (
format = 'DELTA_LAKE',
uris = ["parent_directory"]
);
מחליפים את מה שכתוב בשדות הבאים:
table_name: שם הטבלה.
connection_name: השם של החיבור. החיבור צריך לזהות מקור של Amazon S3 או של Blob Storage.
parent_directory: ה-URI של ספריית האב.
העברה בין עננים באמצעות Delta Lake
בדוגמה הבאה נעשה שימוש בהצהרה LOAD DATA כדי לטעון נתונים לטבלה המתאימה:
LOAD DATA [INTO | OVERWRITE] table_name
FROM FILES (
format = 'DELTA_LAKE',
uris = ["parent_directory"]
)
WITH CONNECTION connection_name;
דוגמאות נוספות להעברת נתונים בין עננים זמינות במאמר טעינת נתונים באמצעות פעולות בין עננים.
שליחת שאילתות לטבלאות BigLake
מידע נוסף זמין במאמר בנושא שאילתות על נתונים ב-Amazon S3.
צפייה במטא-נתונים של משאב
אפשר לראות את המטא-נתונים של המשאב בתצוגותINFORMATION_SCHEMA. כשמריצים שאילתה על התצוגות JOBS_BY_*, JOBS_TIMELINE_BY_* ו-RESERVATION*, צריך לציין את מיקום העיבוד של השאילתה שנמצא באותו אזור כמו הטבלה. מידע על מיקומים ב-BigQuery Omni זמין במאמר מיקומים. בכל הטבלאות האחרות של המערכת, ציון המיקום של עבודת השאילתה הוא אופציונלי.
במאמר בנושא מגבלות מפורטות טבלאות המערכת שנתמכות ב-BigQuery Omni.
כדי לשלוח שאילתה לטבלאות המערכת JOBS_* ו-RESERVATION*, בוחרים באחת מהשיטות הבאות כדי לציין את מיקום העיבוד:
המסוף
עוברים לדף BigQuery.
אם הכרטיסייה Editor לא מוצגת, לוחצים על Compose new query.
לוחצים על סמל האפשרויות הנוספות > הגדרות של שאילתות. תיבת הדו-שיח הגדרות השאילתה תיפתח.
בתיבת הדו-שיח הגדרות שאילתה, בקטע הגדרות נוספות > מיקום הנתונים, בוחרים את האזור ב-BigQuery שמוגדר באותו מיקום כמו האזור ב-BigQuery Omni. לדוגמה, אם האזור של BigQuery Omni הוא
aws-us-east-1, צריך לצייןus-east4.בוחרים את השדות שנותרו ולוחצים על שמירה.
BQ
משתמשים בדגל --location כדי להגדיר את מיקום העיבוד של העבודה לאזור BigQuery שמוגדר באותו מיקום כמו אזור BigQuery Omni.
לדוגמה, אם האזור של BigQuery Omni הוא aws-us-east-1, צריך לציין us-east4.
דוגמה
bq query --use_legacy_sql=false --location=us-east4 \
"SELECT * FROM region-aws-us-east-1.INFORMATION_SCHEMA.JOBS limit 10;"
bq query --use_legacy_sql=false --location=asia-northeast3 \
"SELECT * FROM region-aws-ap-northeast-2.INFORMATION_SCHEMA.JOBS limit 10;"
API
אם מריצים משימות באופן פרוגרמטי, צריך להגדיר את ארגומנט המיקום לאזור BigQuery שמוגדר באותו מיקום כמו אזור BigQuery Omni.
לדוגמה, אם האזור של BigQuery Omni הוא aws-us-east-1, צריך לציין us-east4.
בדוגמה הבאה מפורטות משימות רענון המטא-נתונים ב-6 השעות האחרונות:
SELECT * FROM `region-REGION_NAME`.INFORMATION_SCHEMA.JOBS_BY_PROJECT WHERE job_id LIKE '%metadata_cache_refresh%' AND creation_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 6 HOUR) ORDER BY start_time desc LIMIT 10;
מחליפים את REGION_NAME באזור שלכם.
VPC Service Controls
אתם יכולים להשתמש בגבולות גזרה של VPC Service Controls כדי להגביל את הגישה מ-BigQuery Omni לשירות ענן חיצוני, וכך להוסיף עוד שכבת הגנה. לדוגמה, גבולות גזרה של VPC Service Controls יכולים להגביל את הייצוא מטבלאות BigQuery Omni שלכם לקטגוריית Amazon S3 ספציפית או למאגר Blob Storage.
מידע נוסף על VPC Service Controls זמין במאמר סקירה כללית על VPC Service Controls.
ההרשאה הנדרשת
מוודאים שיש לכם את ההרשאות הנדרשות להגדרת היקפי שירות. כדי לראות רשימה של תפקידי IAM שנדרשים להגדרת VPC Service Controls, אפשר לעיין במאמר בנושא בקרת גישה באמצעות IAM במסמכי התיעוד של VPC Service Controls.
הגדרה של VPC Service Controls באמצעות מסוף Google Cloud
בתפריט הניווט במסוף Google Cloud , לוחצים על Security ואז על VPC Service Controls.
כדי להגדיר את VPC Service Controls ל-BigQuery Omni, פועלים לפי השלבים במדריך יצירת היקף שירות. כשמגיעים לחלונית כללי תעבורת נתונים יוצאת (egress), פועלים לפי השלבים הבאים:
בחלונית Egress rules, לוחצים על Add rule.
בקטע ממאפיינים של לקוח ה-API, בוחרים אפשרות מהרשימה זהות.
בוחרים באפשרות למאפיינים של משאבים חיצוניים.
כדי להוסיף משאב חיצוני, לוחצים על הוספת משאבים חיצוניים.
בתיבת הדו-שיח הוספת משאב חיצוני, בשדה שם המשאב החיצוני, מזינים שם משאב תקין. לדוגמה:
Amazon Simple Storage Service (Amazon S3):
s3://BUCKET_NAMEמחליפים את BUCKET_NAME בשם הקטגוריה שלכם ב-Amazon S3.
ב-Azure Blob Storage:
azure://myaccount.blob.core.windows.net/CONTAINER_NAMEמחליפים את CONTAINER NAME בשם של קונטיינר Blob Storage.
רשימה של מאפייני כללי יציאה זמינה במאמר חומר עזר בנושא כללי יציאה.
בוחרים את השיטות שרוצים לאפשר במשאבים החיצוניים:
- אם רוצים לאפשר את כל השיטות, בוחרים באפשרות כל השיטות ברשימה שיטות.
- אם רוצים לאפשר שיטות ספציפיות, בוחרים באפשרות שיטה נבחרת, לוחצים על בחירת שיטות ואז בוחרים את השיטות שרוצים לאפשר במקורות החיצוניים.
לוחצים על יצירת היקף.
הגדרת VPC Service Controls באמצעות ה-CLI של gcloud
כדי להגדיר את VPC Service Controls באמצעות ה-CLI של gcloud, מבצעים את השלבים הבאים:
הגדרת מדיניות ברירת המחדל לגישה
מדיניות גישה היא מאגר ברמת הארגון לרמות גישה ולהיקפי שירות. במאמר ניהול מדיניות גישה מוסבר איך מגדירים מדיניות גישה כברירת מחדל או איך מקבלים את השם של מדיניות גישה.
יצירת קובץ קלט של מדיניות יציאה
בלוק של כללי יציאה מגדיר את הגישה המותרת מתוך גבולות הגזרה למשאבים מחוץ לגבולות האלה. במשאבים חיצוניים, המאפיין externalResources מגדיר את נתיבי המשאבים החיצוניים שאפשר לגשת אליהם מתוך גבולות הגזרה של VPC Service Controls.
אפשר להגדיר כללי תעבורת נתונים יוצאת (egress) באמצעות קובץ JSON או קובץ YAML. בדוגמה הבאה נעשה שימוש בפורמט .yaml:
- egressTo: operations: - serviceName: bigquery.googleapis.com methodSelectors: - method: "*" *OR* - permission: "externalResource.read" externalResources: - EXTERNAL_RESOURCE_PATH egressFrom: identityType: IDENTITY_TYPE *OR* identities: - serviceAccount:SERVICE_ACCOUNT
egressTo: מציג רשימה של פעולות שירות מותרות ב Google Cloud משאבים בפרויקטים שצוינו מחוץ לגבולות הגזרה.
operations: רשימה של שירותים נגישים ופעולות או שיטות שלקוח שעומד בתנאי החסימהfromמורשה לגשת אליהם.
serviceName: מגדיריםbigquery.googleapis.comל-BigQuery Omni.
methodSelectors: רשימת השיטות שלקוח שעומד בתנאים שלfromיכול לגשת אליהן. במאמר הגבלות נתמכות על שיטות שירות מפורטות השיטות וההרשאות של השירותים שאפשר להגביל.
method: שיטת שירות תקפה, או\"*\"כדי לאפשר את כל שיטותserviceName.
permission: הרשאה תקפה לשירות, כמו\"*\", externalResource.readאוexternalResource.write. הגישה למשאבים מחוץ לגבולות גזרה מותרת לפעולות שדורשות את ההרשאה הזו.
externalResources: מציג רשימה של משאבים חיצוניים שלקוחות בתוך היקף יכולים לגשת אליהם. מחליפים את EXTERNAL_RESOURCE_PATH בקטגוריה תקפה של Amazon S3, כמוs3://bucket_name, או בנתיב של מאגר Blob Storage, כמוazure://myaccount.blob.core.windows.net/container_name.
egressFrom: מציג רשימה של פעולות שירות מותרות במשאבים Google Cloudבפרויקטים שצוינו בתוך גבולות הגזרה.
identityTypeאוidentities: הגדרה של סוגי הזהויות שיכולות לגשת למשאבים שצוינו מחוץ לגבולות הגזרה. מחליפים את IDENTITY_TYPE באחד מהערכים התקפים הבאים:-
ANY_IDENTITY: כדי לאפשר את כל הזהויות. -
ANY_USER_ACCOUNT: כדי לאפשר לכל המשתמשים. -
ANY_SERVICE_ACCOUNT: כדי לאפשר לכל חשבונות השירות
-
identities: מציג רשימה של חשבונות שירות שיכולים לגשת למשאבים שצוינו מחוץ לגבולות גזרה.
serviceAccount(אופציונלי): מחליפים את SERVICE_ACCOUNT בחשבון השירות שיכול לגשת למשאבים שצוינו מחוץ לגבולות גזרה.
דוגמאות
הדוגמה הבאה היא מדיניות שמאפשרת פעולות תעבורת נתונים יוצאת (egress) מתוך גבולות גזרה למיקום s3://mybucket Amazon S3 ב-AWS.
- egressTo: operations: - serviceName: bigquery.googleapis.com methodSelectors: - method: "*" externalResources: - s3://mybucket - s3://mybucket2 egressFrom: identityType: ANY_IDENTITY
בדוגמה הבאה, מותרות פעולות תעבורת נתונים יוצאת (egress) למאגר Blob Storage:
- egressTo: operations: - serviceName: bigquery.googleapis.com methodSelectors: - method: "*" externalResources: - azure://myaccount.blob.core.windows.net/mycontainer egressFrom: identityType: ANY_IDENTITY
מידע נוסף על מדיניות תעבורת נתונים יוצאת (egress) זמין במאמר הפניה לכללי תעבורת נתונים יוצאת (egress).
הוספת מדיניות היציאה
כדי להוסיף את מדיניות תעבורת הנתונים היוצאת (egress) כשיוצרים גבולות גזרה חדשים לשירות, משתמשים בפקודה gcloud access-context-manager perimeters create.
לדוגמה, הפקודה הבאה יוצרת גבולות גזרה חדשים בשם omniPerimeter שכוללים את הפרויקט עם מספר הפרויקט 12345, מגבילה את BigQuery API ומוסיפה מדיניות יציאה שמוגדרת בקובץ egress.yaml:
gcloud access-context-manager perimeters create omniPerimeter \ --title="Omni Perimeter" \ --resources=projects/12345 \ --restricted-services=bigquery.googleapis.com \ --egress-policies=egress.yaml
כדי להוסיף את מדיניות היציאה לגבולות גזרה לשירות קיימים, משתמשים בפקודה gcloud access-context-manager perimeters update.
לדוגמה, הפקודה הבאה מוסיפה מדיניות תעבורת נתונים יוצאת (egress) שהוגדרה בקובץ egress.yaml לגבולות גזרה לשירות קיים בשם omniPerimeter:
gcloud access-context-manager perimeters update omniPerimeter --set-egress-policies=egress.yaml
אימות ההיקף
כדי לאמת את ההיקף, משתמשים בפקודה gcloud access-context-manager perimeters describe:
gcloud access-context-manager perimeters describe PERIMETER_NAME
מחליפים את PERIMETER_NAME בשם גבולות הגזרה.
לדוגמה, הפקודה הבאה מתארת את גבולות הגזרה omniPerimeter:
gcloud access-context-manager perimeters describe omniPerimeter
מידע נוסף זמין במאמר בנושא ניהול גבולות גזרה לשירות.
מתן גישה ל-VPC ב-BigQuery Omni אל Amazon S3
בתור אדמינים ב-BigQuery, אתם יכולים ליצור מדיניות של דלי S3 כדי להעניק ל-BigQuery Omni גישה למשאבי Amazon S3. כך אפשר לוודא שרק רשתות VPC מורשות של BigQuery Omni יכולות ליצור אינטראקציה עם Amazon S3, ולשפר את אבטחת הנתונים.
החלת מדיניות של דלי S3 על BigQuery Omni VPC
כדי להחיל מדיניות של קטגוריית S3, משתמשים ב-AWS CLI או ב-Terraform:
AWS CLI
מריצים את הפקודה הבאה כדי להחיל מדיניות של קטגוריית S3 שכוללת תנאי באמצעות המאפיין aws:SourceVpc:
aws s3api put-bucket-policy \ --bucket=BUCKET_NAME \ --policy "{ \"Version\": \"2012-10-17\", \"Id\": \"RestrictBucketReads\", \"Statement\": [ { \"Sid\": \"AccessOnlyToOmniVPC\", \"Principal\": \"*\", \"Action\": [\"s3:ListBucket\", \"s3:GetObject\"], \"Effect\": \"Allow\", \"Resource\": [\"arn:aws:s3:::BUCKET_NAME\", \"arn:aws:s3:::BUCKET_NAME/*\"], \"Condition\": { \"StringEquals\": { \"aws:SourceVpc\": \"VPC_ID\" } } } ] }"
מחליפים את מה שכתוב בשדות הבאים:
-
BUCKET_NAME: באקט Amazon S3 שרוצים של-BigQuery תהיה גישה אליו. -
VPC_ID: מזהה ה-VPC של BigQuery Omni באזור BigQuery Omni שמוקם יחד עם דליקט Amazon S3. המידע הזה מופיע בטבלה בדף הזה.
Terraform
מוסיפים את השורות הבאות לקובץ התצורה של Terraform:
resource "aws_s3_bucket" "example" { bucket = "BUCKET_NAME" } resource "aws_s3_bucket_policy" "example" { bucket = aws_s3_bucket.example.id policy = jsonencode({ Version = "2012-10-17" Id = "RestrictBucketReads" Statement = [ { Sid = "AccessOnlyToOmniVPC" Effect = "Allow" Principal = "*" Action = ["s3:GetObject", "s3:ListBucket"] Resource = [ aws_s3_bucket.example.arn, "${aws_s3_bucket.example.arn}/*" ] Condition = { StringEquals = { "aws:SourceVpc": "VPC_ID" } } }, ] }) }
מחליפים את מה שכתוב בשדות הבאים:
-
BUCKET_NAME: באקט Amazon S3 שרוצים של-BigQuery תהיה גישה אליו. -
VPC_ID: מזהה ה-VPC של BigQuery Omni באזור BigQuery Omni שמוקם יחד עם דליקט Amazon S3.
מזהי משאבים של BigQuery Omni VPC
| אזור | מזהה VPC |
|---|---|
| aws-ap-northeast-2 | vpc-0b488548024288af2 |
| aws-ap-southeast-2 | vpc-0726e08afef3667ca |
| aws-eu-central-1 | vpc-05c7bba12ad45558f |
| aws-eu-west-1 | vpc-0e5c646979bbe73a0 |
| aws-us-east-1 | vpc-0bf63a2e71287dace |
| aws-us-west-2 | vpc-0cc24e567b9d2c1cb |
מגבלות
רשימה מלאה של המגבלות שחלות על טבלאות BigLake שמבוססות על Amazon S3 ו-Blob Storage מופיעה במאמר בנושא מגבלות.
המאמרים הבאים
- מידע נוסף על BigQuery Omni
- משתמשים ב-BigQuery Omni עם שיעור Lab של AWS.
- מידע נוסף על טבלאות BigLake
- איך מייצאים תוצאות של שאילתות ל-Amazon S3
- איך יוצרים תצוגות חומריות על טבלאות עם מטמון מטא-נתונים של Amazon Simple Storage Service (Amazon S3)
- למדו איך להפוך את הנתונים ב-Amazon S3 בתצוגה מהותית לזמינים באופן מקומי להצטרפות על ידי יצירת רפליקה של התצוגה המהותית.