Creare tabelle del metastore ed eseguirvi query da Spark
Puoi eseguire query sulle tabelle Apache Spark Iceberg in un notebook BigQuery utilizzando motori open source, come Spark. Queste tabelle sono tabelle Iceberg regolari con metadati archiviati nel metastore BigQuery. È possibile eseguire query sulla stessa tabella sia da BigQuery sia da Spark.
Prima di iniziare
- Crea una tabella Iceberg mentre utilizzi Spark in un notebook BigQuery. Lo schema della tabella è archiviato nel metastore BigQuery. Ad esempio, puoi creare la tabella con un notebook BigQuery, Dataproc, Dataproc Serverless o una stored procedure.
Considerazioni
- Al momento sono supportate solo le tabelle Iceberg.
Quando esegui le query, ricordati di mappare i nomi dello spazio dei nomi e del database come nomi dei set di dati BigQuery. La tabella seguente elenca le mappature delle chiavi applicabili da utilizzare:
Open source BigQuery Spazio dei nomi Set di dati BigQuery Database Set di dati BigQuery Tabella (partizionata o non partizionata) Tabella BigQuery
Visualizzare ed eseguire query su una tabella
Dopo aver creato le risorse BigQuery in Spark, puoi visualizzarle ed eseguire query al loro interno nella console Google Cloud . L'esempio seguente mostra i passaggi generali per eseguire query su una tabella del metastore utilizzando Spark interattivo:
Utilizza il catalogo personalizzato Iceberg:
USE `CATALOG_NAME`;
Sostituisci quanto segue:
CATALOG_NAME
: il nome del catalogo Spark che utilizzi con il tuo job SQL.
Crea uno spazio dei nomi:
CREATE NAMESPACE IF NOT EXISTS NAMESPACE_NAME;
Sostituisci quanto segue:
NAMESPACE_NAME
: il nome dello spazio dei nomi che fa riferimento alla tabella Spark.
Utilizza lo spazio dei nomi creato:
USE NAMESPACE_NAME;
Crea una tabella Iceberg:
CREATE TABLE TABLE_NAME (id int, data string) USING ICEBERG;
Sostituisci quanto segue:
TABLE_NAME
: un nome per la tabella Iceberg.
Per inserire una riga di tabella:
INSERT INTO TABLE_NAME VALUES (1, "first row");
Utilizza la console Google Cloud per eseguire una delle seguenti operazioni:
SELECT * FROM `TABLE_NAME`;