Crea tabelle esterne BigLake per Apache Iceberg
Le tabelle esterne BigLake ti consentono di accedere alle tabelle Apache Iceberg con controllo dell'accesso più granulare in un formato di sola lettura. Questa funzionalità è in contrasto con le tabelle BigQuery per Apache Iceberg, che consentono di creare tabelle Apache Iceberg in BigQuery in un formato in cui è possibile scrivere.
Iceberg è un formato di tabella open source che supporta le tabelle di dati su scala petabyte. La specifica aperta Iceberg ti consente di eseguire più motori di query su una singola copia dei dati archiviati in un object store.
In qualità di amministratore BigQuery, puoi applicare controllo dell'accesso a livello di riga e colonna, incluso il mascheramento dei dati nelle tabelle. Per informazioni su come configurare il controllo dell'accesso dell'accesso a livello di tabella, consulta Configurare i criteri di controllo dell'accesso dell'accesso. I criteri di accesso alle tabelle vengono applicati anche quando utilizzi l'API BigQuery Storage come origine dati per la tabella in Dataproc e Spark Serverless. Le tabelle BigLake forniscono integrazioni aggiuntive con altri servizi BigQuery. Per un elenco completo delle integrazioni disponibili, consulta Introduzione alle tabelle BigLake.
Puoi creare tabelle BigLake Iceberg nei seguenti modi:
Con BigLake Metastore (consigliato per Google Cloud). BigLake Metastore è un catalogo Iceberg personalizzato. L'utilizzo del metastore BigLake è il metodo consigliato per Google Cloud perché consente la sincronizzazione delle tabelle tra i carichi di lavoro Spark e BigQuery. Per farlo, puoi utilizzare una stored procedure BigQuery per Apache Spark per inizializzare il metastore BigLake e creare la tabella BigLake di Iceberg. Tuttavia, per gli aggiornamenti dello schema è comunque necessario eseguire una query di aggiornamento in BigQuery.
Con AWS Glue Data Catalog (consigliato per AWS). AWS Glue è il metodo consigliato per AWS perché è un repository di metadati centralizzato in cui puoi definire la struttura e la posizione dei dati archiviati in vari servizi AWS e fornisce funzionalità come il rilevamento automatico dello schema e l'integrazione con gli strumenti di analisi AWS.
Con file di metadati JSON di Iceberg (consigliato per Azure). Se utilizzi un file di metadati JSON Iceberg, devi aggiornare manualmente il file di metadati più recente ogni volta che vengono apportati aggiornamenti alla tabella. Puoi utilizzare una procedura memorizzata BigQuery per Apache Spark per creare tabelle BigLake Iceberg che fanno riferimento a un file di metadati Iceberg. Per evitare questo problema, puoi utilizzare BigLake Metastore per Google Cloud o AWS Glue Data Catalog per AWS.
Per un elenco completo delle limitazioni, vedi Limitazioni.
Prima di iniziare
Enable the BigQuery Connection, BigQuery Reservation, and BigLake APIs.
Se utilizzi una stored procedure per Spark in BigQuery per creare tabelle BigLake di Iceberg, devi seguire questi passaggi:
Per archiviare i file di metadati e di dati della tabella BigLake di Iceberg in Cloud Storage, crea un bucket Cloud Storage. Devi collegarti al tuo bucket Cloud Storage per accedere ai file di metadati. Per farlo, segui questi passaggi:
Se utilizzi BigLake Metastore, installa il catalogo personalizzato Iceberg appropriato per Apache Spark. Seleziona la versione del Catalogo personalizzato più adatta alla versione di Iceberg in uso.
Iceberg 1.5.0
: gs://spark-lib/biglake/biglake-catalog-iceberg1.5.0-0.1.1-with-dependencies.jarIceberg 1.2.0
: gs://spark-lib/biglake/biglake-catalog-iceberg1.2.0-0.1.1-with-dependencies.jarIceberg 0.14.0
: gs://spark-lib/biglake/biglake-catalog-iceberg0.14.0-0.1.1-with-dependencies.jar
Ruoli obbligatori
Per assicurarti che il chiamante dell'API BigLake disponga delle autorizzazioni necessarie per creare una tabella BigLake, chiedi all'amministratore di concedere al chiamante dell'API BigLake i seguenti ruoli IAM nel progetto:
-
Amministratore BigQuery (
roles/bigquery.admin
) -
BigLake Admin (
roles/biglake.admin
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per creare una tabella BigLake. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
Per creare una tabella BigLake sono necessarie le seguenti autorizzazioni:
-
bigquery.tables.create
-
bigquery.connections.delegate
-
bigquery.jobs.create
L'amministratore potrebbe anche assegnare all'utente che chiama l'API BigLake queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Inoltre, per consentire agli utenti BigQuery di eseguire query sulla tabella, il account di servizio associato alla connessione deve avere il ruolo Visualizzatore BigLake (roles/biglake.viewer
) e l'accesso al bucket Cloud Storage che contiene i dati.
Per creare tabelle BigLake Iceberg con BigLake Metastore, l'autore della chiamata dell'API BigLake cambia. Devi concedere all'account di servizio Dataproc o Spark l'accesso al bucket Cloud Storage che contiene i dati:
Se esegui Spark su Dataproc, il chiamante in Dataproc è l'account di servizio Dataproc.
Se esegui procedure Spark in BigQuery, l'utente chiamante è un account di servizio di connessione Spark.
Creare tabelle con BigLake Metastore
Ti consigliamo di creare tabelle BigLake Iceberg con BigLake Metastore. Puoi utilizzare Apache Spark per creare queste tabelle. Un modo pratico per farlo è utilizzare le stored procedure di BigQuery per Spark seguendo questi passaggi:
Vai alla pagina BigQuery.
Nel riquadro Explorer, fai clic sulla connessione nel progetto che hai utilizzato per creare la risorsa di connessione.
Per creare una stored procedure per Spark, fai clic su
Crea stored procedure.Nell'editor di query, modifica il codice campione per l'inizializzazione di BigLake Metastore e la creazione di una tabella esterna BigLake per Iceberg utilizzando l'istruzione
CREATE PROCEDURE
visualizzata:# Creates a stored procedure that initializes BLMS and database. # Creates a table in the database and populates a few rows of data. CREATE OR REPLACE PROCEDURE iceberg_demo.iceberg_setup_3_3 () WITH CONNECTION `PROCEDURE_CONNECTION_PROJECT_ID.PROCEDURE_CONNECTION_REGION.PROCEDURE_CONNECTION_ID` OPTIONS(engine="SPARK", jar_uris=["gs://spark-lib/biglake/biglake-catalog-iceberg1.2.0-0.1.0-with-dependencies.jar"], properties=[ ("spark.jars.packages","org.apache.iceberg:iceberg-spark-runtime-3.3_2.12:1.2.0"), ("spark.sql.catalog.CATALOG", "org.apache.iceberg.spark.SparkCatalog"), ("spark.sql.catalog.CATALOG.catalog-impl", "org.apache.iceberg.gcp.biglake.BigLakeCatalog"), ("spark.sql.catalog.CATALOG.hms_uri", "HMS_URI"), ("spark.sql.catalog.CATALOG.gcp_project", "PROJECT_ID"), ("spark.sql.catalog.CATALOG.gcp_location", "LOCATION"), ("spark.sql.catalog.CATALOG.blms_catalog", "CATALOG"), ("spark.sql.catalog.CATALOG.warehouse", "DATA_WAREHOUSE_URI") ] ) LANGUAGE PYTHON AS R''' from pyspark.sql import SparkSession spark = SparkSession \ .builder \ .appName("BigLake Iceberg Example") \ .enableHiveSupport() \ .getOrCreate() spark.sql("CREATE NAMESPACE IF NOT EXISTS CATALOG;") spark.sql("CREATE DATABASE IF NOT EXISTS CATALOG.CATALOG_DB;") spark.sql("DROP TABLE IF EXISTS CATALOG.CATALOG_DB.CATALOG_TABLE;") # Create a BigLake Metastore table and a BigQuery Iceberg table. spark.sql("CREATE TABLE IF NOT EXISTS CATALOG.CATALOG_DB.CATALOG_TABLE (id bigint, demo_name string) USING iceberg TBLPROPERTIES(bq_table='BQ_DATASET.BQ_TABLE', bq_connection='TABLE_CONNECTION_PROJECT_ID.TABLE_CONNECTION_REGION.TABLE_CONNECTION_ID'); ") # Copy a Hive Metastore table to BigLake Metastore. Can be used together with # TBLPROPERTIES `bq_table` to create a BigQuery Iceberg table. spark.sql("CREATE TABLE CATALOG.CATALOG_DB.CATALOG_TABLE (id bigint, demo_name string) USING iceberg TBLPROPERTIES(hms_table='HMS_DB.HMS_TABLE');") ''';
Sostituisci quanto segue:
PROCEDURE_CONNECTION_PROJECT_ID
: il progetto che contiene la connessione per eseguire le procedure Spark, ad esempiomyproject
.PROCEDURE_CONNECTION_REGION
: la regione che contiene la connessione per eseguire le procedure Spark, ad esempious
.PROCEDURE_CONNECTION_ID
: l'ID connessione, ad esempiomyconnection
.Quando visualizzi i dettagli della connessione nella console Google Cloud, l'ID connessione è il valore nell'ultima sezione dell'ID connessione completo visualizzato in ID connessione, ad esempio
projects/myproject/locations/connection_location/connections/myconnection
.CATALOG
: il nome del catalogo Iceberg da creare per BigLake Metastore.Il valore predefinito è
iceberg
.HMS_URI
: se vuoi copiare le tabelle Hive Metastore esistenti in BigLake Metastore, specifica un URI Hive Metastore.Ad esempio,
thrift://localhost:9083
.PROJECT_ID
: l'ID progetto in cui vuoi creare l'istanza BigLake Metastore.Anche le tabelle BigLake di Iceberg vengono create nello stesso progetto.
LOCATION
: la posizione in cui vuoi creare l'istanza BigLake Metastore.BigQuery può accedere solo alle istanze BigLake Metastore archiviate nella stessa posizione.
DATA_WAREHOUSE_URI
: l'URI del bucket Cloud Storage che hai creato per archiviare i file di dati e metadati di Iceberg.Ad esempio,
gs://mybucket/iceberg-warehouse
.CATALOG_DB
: il nome del database che vuoi creare in BigLake Metastore.Questo database è equivalente al set di dati BigQuery che conterrà la tabella BigLake di Iceberg.
CATALOG_TABLE
: il nome della tabella che vuoi creare in BigLake Metastore.Questa tabella è equivalente alla tabella BigLake di Iceberg che vuoi creare.
BQ_DATASET
: il set di dati BigQuery da contenere la tabella BigLake di Iceberg.BQ_TABLE
: la tabella BigLake di Iceberg che vuoi creare.TABLE_CONNECTION_PROJECT_ID
: il progetto che contiene la connessione per creare la tabella BigLake, ad esempiomyproject
.TABLE_CONNECTION_REGION
: la regione che contiene la connessione per creare la tabella BigLake, ad esempious
.TABLE_CONNECTION_ID
: l'ID connessione, ad esempiomyconnection
.Quando visualizzi i dettagli della connessione nella console Google Cloud, l'ID connessione è il valore nell'ultima sezione dell'ID connessione completo visualizzato in ID connessione, ad esempio
projects/myproject/locations/connection_location/connections/myconnection
.L'account di servizio associato alla connessione deve avere
roles/biglake.viewer
per consentire agli utenti BigQuery di eseguire query sulla tabella.HMS_DB
: se vuoi copiare le tabelle Hive Metastore esistenti in BigLake Metastore, specifica un database Hive Metastore.HMS_TABLE
: se vuoi copiare le tabelle Hive Metastore esistenti in BigLake Metastore, specifica una tabella Hive Metastore.
Per informazioni sulle configurazioni dei cataloghi Iceberg, consulta Cataloghi Spark.
Per eseguire la stored procedure, fai clic su Esegui. Per ulteriori informazioni, consulta Chiama la procedura memorizzata Spark. In BigQuery viene creata una tabella esterna BigLake per Iceberg.
Creare tabelle con un file di metadati
Puoi creare tabelle esterne BigLake per Iceberg con un file di metadati JSON. Tuttavia, questo non è il metodo consigliato perché devi aggiornare manualmente l'URI del file JSON con i metadati per mantenere aggiornata la tabella BigLake. Se l'URI non viene aggiornato, le query in BigQuery possono non riuscire o fornire risultati diversi rispetto ad altri motori di query che utilizzano direttamente un catalogo Iceberg. Per evitare questo problema, fai riferimento a un'istanza BigLake Metastore quando crei una tabella BigLake Iceberg.
I file di metadati delle tabelle Iceberg vengono creati nel bucket Cloud Storage specificato quando crei una tabella Iceberg utilizzando Spark.
Seleziona una delle seguenti opzioni:
SQL
Utilizza l'istruzione CREATE EXTERNAL TABLE
. L'esempio seguente crea una tabella BigLake denominata myexternal-table
:
CREATE EXTERNAL TABLE myexternal-table WITH CONNECTION `myproject.us.myconnection` OPTIONS ( format = 'ICEBERG', uris = ["gs://mybucket/mydata/mytable/metadata/iceberg.metadata.json"] )
Sostituisci il valore uris
con l'ultimo file di metadati JSON per uno snapshot specifico della tabella.
Puoi attivare il filtro Richiedi partizione impostando il flag require_partition_filter
.
bq
In un ambiente a riga di comando, utilizza il comando bq mk --table
con il decoratore @connection
per specificare la connessione da utilizzare alla fine del parametro --external_table_definition
.
Per attivare il filtro di partizionamento obbligatorio, utilizza --require_partition_filter
.
bq mk
--table
--external_table_definition=TABLE_FORMAT=URI@projects/CONNECTION_PROJECT_ID/locations/CONNECTION_REGION/connections/CONNECTION_ID
PROJECT_ID:DATASET.EXTERNAL_TABLE
Sostituisci quanto segue:
TABLE_FORMAT
: il formato della tabella che vuoi creareIn questo caso,
ICEBERG
.URI
: l'ultimo file di metadati JSON per uno snapshot specifico della tabella.Ad esempio,
gs://mybucket/mydata/mytable/metadata/iceberg.metadata.json
.L'URI può puntare anche a una posizione sul cloud esterna, ad esempio Amazon S3 o Azure Blob Storage.
- Esempio per AWS:
s3://mybucket/iceberg/metadata/1234.metadata.json
. - Esempio per Azure:
azure://mystorageaccount.blob.core.windows.net/mycontainer/iceberg/metadata/1234.metadata.json
.
- Esempio per AWS:
CONNECTION_PROJECT_ID
: il progetto che contiene la connessione per creare la tabella BigLake, ad esempiomyproject
CONNECTION_REGION
: la regione che contiene la connessione per creare la tabella BigLake, ad esempious
CONNECTION_ID
: l'ID connessione tabella, ad esempiomyconnection
Quando visualizzi i dettagli della connessione nella console Google Cloud, l'ID connessione è il valore nell'ultima sezione dell'ID connessione completo visualizzato in ID connessione, ad esempio
projects/myproject/locations/connection_location/connections/myconnection
DATASET
: il nome del set di dati BigQuery in cui vuoi creare una tabellaAd esempio,
mydataset
.EXTERNAL_TABLE
: il nome della tabella che vuoi creareAd esempio,
mytable
.
Aggiornamento metadati tabella
Se utilizzi un file di metadati JSON per creare una tabella esterna BigLake per Iceberg, aggiorna la definizione della tabella in base ai metadati più recenti della tabella. Per aggiornare lo schema o il file dei metadati, seleziona una delle seguenti opzioni:
bq
Crea un file di definizione della tabella:
bq mkdef --source_format=ICEBERG \ "URI" > TABLE_DEFINITION_FILE
Utilizza il comando
bq update
con il flag--autodetect_schema
:bq update --autodetect_schema --external_table_definition=TABLE_DEFINITION_FILE PROJECT_ID:DATASET.TABLE
Sostituisci quanto segue:
URI
: l'URI Cloud Storage con il file JSON dei metadati più recenteAd esempio,
gs://mybucket/us/iceberg/mytable/metadata/1234.metadata.json
.TABLE_DEFINITION_FILE
: il nome del file contenente lo schema della tabellaPROJECT_ID
: l'ID progetto contenente la tabella che vuoi aggiornareDATASET
: il set di dati contenente la tabella che vuoi aggiornareTABLE
: la tabella da aggiornare
API
Utilizza il metodo tables.patch
con la proprietà autodetect_schema
impostata su true
:
PATCH https://bigquery.googleapis.com/bigquery/v2/projects/PROJECT_ID/datasets/DATASET/tables/TABLE?autodetect_schema=true
Sostituisci quanto segue:
PROJECT_ID
: l'ID progetto contenente la tabella che vuoi aggiornareDATASET
: il set di dati contenente la tabella che vuoi aggiornareTABLE
: la tabella da aggiornare
Nel corpo della richiesta, specifica i valori aggiornati per i seguenti campi:
{ "externalDataConfiguration": { "sourceFormat": "ICEBERG", "sourceUris": [ "URI" ] }, "schema": null }'
Sostituisci URI
con il file dei metadati di Iceberg più recente. Ad esempio,
gs://mybucket/us/iceberg/mytable/metadata/1234.metadata.json
.
Configura i criteri di controllo dell'accesso
Puoi utilizzare diversi metodi per controllare l'accesso alle tabelle BigLake:
Per istruzioni su come configurare la sicurezza a livello di colonna, consulta la guida alla sicurezza a livello di colonna.
Per istruzioni su come configurare il mascheramento dei dati, consulta la guida al mascheramento dei dati.
Per istruzioni su come configurare la sicurezza a livello di riga, consulta la guida alla sicurezza a livello di riga.
Ad esempio, supponiamo che tu voglia limitare l'accesso alle righe per la tabella mytable
nel set di dati mydataset
:
+---------+---------+-------+ | country | product | price | +---------+---------+-------+ | US | phone | 100 | | JP | tablet | 300 | | UK | laptop | 200 | +---------+---------+-------+
Puoi creare un filtro a livello di riga per Kim (kim@example.com
) che limiti il suo accesso alle righe in cui country
è uguale a US
.
CREATE ROW ACCESS POLICY only_us_filter ON mydataset.mytable GRANT TO ('user:kim@example.com') FILTER USING (country = 'US');
Poi Kim esegue la seguente query:
SELECT * FROM projectid.mydataset.mytable;
L'output mostra solo le righe in cui country
è uguale a US
:
+---------+---------+-------+ | country | product | price | +---------+---------+-------+ | US | phone | 100 | +---------+---------+-------+
Esegui query sulle tabelle BigLake
Per ulteriori informazioni, consulta Eseguire query sui dati di Iceberg.
Mappatura dei dati
BigQuery converte i tipi di dati Iceberg in tipi di dati BigQuery come mostrato nella tabella seguente:
Tipo di dati iceberg | Tipo di dati BigQuery |
---|---|
boolean |
BOOL |
int |
INT64 |
long |
INT64 |
float |
FLOAT64 |
double |
FLOAT64 |
Decimal(P/S) |
NUMERIC or BIG_NUMERIC depending on precision |
date |
DATE |
time |
TIME |
timestamp |
DATETIME |
timestamptz |
TIMESTAMP |
string |
STRING |
uuid |
BYTES |
fixed(L) |
BYTES |
binary |
BYTES |
list<Type> |
ARRAY<Type> |
struct |
STRUCT |
map<KeyType, ValueType> |
ARRAY<Struct<key KeyType, value ValueType>> |
Limitazioni
Le tabelle BigLake di Iceberg presentano le limitazioni delle tabelle BigLake, nonché le seguenti limitazioni:
La configurazione
copy-on-write
è supportata, ma la configurazionemerge-on-read
non è supportata. Per ulteriori informazioni, consulta la sezione Configurazione di Iceberg.BigQuery supporta l'eliminazione dei manifest utilizzando tutte le funzioni di trasformazione delle partizioni Iceberg, tranne
Bucket
. Per informazioni su come potare le partizioni, consulta Eseguire query su tabelle partizionate. Le query che fanno riferimento alle tabelle esterne BigLake per Iceberg devono contenere letterali nei predicati rispetto alle colonne partizionate.Sono supportati solo i file di dati Apache Parquet.
Se utilizzi BigLake Metastore, si applicano i seguenti limiti:
- BigLake Metastore non è supportato nelle regioni BigQuery Omni.
- Quando rinomini una tabella, la tabella di destinazione deve trovarsi nello stesso database della tabella di origine. Il database della tabella di destinazione deve essere specificato esplicitamente.
- Quando esamini una tabella dei metadati di Iceberg,
devi utilizzare un nome di tabella completo. Ad esempio,
prod.db.table.history
.
Costi
Ti verrà addebitato 1 TB al prezzo delle query on demand (per TB) per ogni 6.250.000 richieste a BigLake Metastore e per ogni 625.000 oggetti archiviati in BigLake Metastore. Le tariffe per le query on demand variano in base alla regione. Per un numero inferiore di richieste o oggetti, ti verrà addebitata la frazione appropriata di 1 TB.
Ad esempio, se hai inviato 6.250.000 richieste a BigLake Metastore e hai anche archiviato 312.500 oggetti al suo interno, ti verrà addebitato 1,5 TB al prezzo delle query on demand per la regione in cui hai creato l'istanza BigLake Metastore.
Richiedi filtro di partizionamento
Puoi richiedere l'utilizzo di filtri di predicato attivando l'opzione Richiedi filtro di partizionamento per la tabella Iceberg.
Se attivi questa opzione, i tentativi di eseguire query sulla tabella senza specificare una clausola WHERE
in linea con ogni file manifest produrranno il seguente errore:
Cannot query over table project_id.dataset.table without a filter that can be used for partition elimination.
Ogni file manifest richiede almeno un predicato adatto all'eliminazione delle partizioni.
Puoi attivare require_partition_filter
nei seguenti modi durante la creazione di una tabella iceberg :
SQL
Utilizza l'istruzione CREATE EXTERNAL TABLE
.L'esempio seguente
crea una tabella BigLake denominata TABLE
con
il filtro di partizione obbligatorio abilitato:
CREATE EXTERNAL TABLE TABLE WITH CONNECTION `PROJECT_ID.REGION.CONNECTION_ID` OPTIONS ( format = 'ICEBERG', uris = [URI], require_partition_filter = true )
Sostituisci quanto segue:
TABLE
: il nome della tabella che vuoi creare.PROJECT_ID
: l'ID progetto contenente la tabella che vuoi creare.REGION
: la posizione in cui vuoi creare la tabella Iceberg.CONNECTION_ID
: l'ID connessione. Ad esempio:myconnection
.URI
: l'URI Cloud Storage con il file JSON con i metadati più recente.Ad esempio,
gs://mybucket/us/iceberg/mytable/metadata/1234.metadata.json
.L'URI può puntare anche a una posizione sul cloud esterna, ad esempio Amazon S3 o Azure Blob Storage.
- Esempio per AWS:
s3://mybucket/iceberg/metadata/1234.metadata.json
. - Esempio per Azure:
azure://mystorageaccount.blob.core.windows.net/mycontainer/iceberg/metadata/1234.metadata.json
.
- Esempio per AWS:
bq
Utilizza il comando bq mk --table
con il decoratore @connection
per specificare la connessione da utilizzare alla fine
del parametro --external_table_definition
.
Utilizza --require_partition_filter
per attivare il filtro di partizionamento obbligatorio.
L'esempio seguente crea una tabella BigLake denominata
TABLE
con il filtro di partizione obbligatorio abilitato:
bq mk \ --table \ --external_table_definition=ICEBERG=URI@projects/CONNECTION_PROJECT_ID/locations/CONNECTION_REGION/connections/CONNECTION_ID \ PROJECT_ID:DATASET.EXTERNAL_TABLE \ --require_partition_filter
Sostituisci quanto segue:
URI
: l'ultimo file di metadati JSON per uno snapshot specifico della tabellaAd esempio,
gs://mybucket/mydata/mytable/metadata/iceberg.metadata.json
.L'URI può puntare anche a una posizione sul cloud esterna, ad esempio Amazon S3 o Azure Blob Storage.
- Esempio per AWS:
s3://mybucket/iceberg/metadata/1234.metadata.json
. - Esempio per Azure:
azure://mystorageaccount.blob.core.windows.net/mycontainer/iceberg/metadata/1234.metadata.json
.
- Esempio per AWS:
CONNECTION_PROJECT_ID
: il progetto che contiene la connessione per creare la tabella BigLake, ad esempiomyproject
CONNECTION_REGION
: la regione che contiene la connessione per creare la tabella BigLake. Ad esempio:us
.CONNECTION_ID
: l'ID connessione. Ad esempio:myconnection
.Quando visualizzi i dettagli della connessione nella console Google Cloud, l'ID connessione è il valore nell'ultima sezione dell'ID connessione completo visualizzato in ID connessione, ad esempio
projects/myproject/locations/connection_location/connections/myconnection
DATASET
: il nome di BigQueryIl set di dati contenente la tabella che vuoi aggiornare. Ad esempio,
mydataset
.EXTERNAL_TABLE
: il nome della tabella che vuoi creareAd esempio,
mytable
.
Puoi anche aggiornare la tabella Iceberg per attivare il filtro di partizionamento obbligatorio.
Se non attivi l'opzione Richiedi filtro di partizione quando crei la tabella partizionata, puoi aggiornarla per aggiungere l'opzione.
bq
Utilizza il comando bq update
e specifica il flag --require_partition_filter
.
Ad esempio:
Per aggiornare mypartitionedtable
in mydataset
nel progetto predefinito,
invia:
bq update --require_partition_filter PROJECT_ID:DATASET.TABLE
Passaggi successivi
- Scopri di più sulle procedure memorizzate per Spark.
- Scopri di più sulle tabelle BigLake.
- Scopri di più sui criteri di controllo dell'accesso.
- Scopri di più sull'esecuzione di query in BigQuery.
- Scopri di più sulle istruzioni e sui dialetti SQL supportati in BigQuery.