Metastore-Tabellen aus Spark erstellen und abfragen
Sie können Apache Spark Iceberg-Tabellen in einem BigQuery-Notebook mit Open-Source-Engines wie Spark abfragen. Diese Tabellen sind reguläre Iceberg-Tabellen mit Metadaten, die im BigQuery-Metastore gespeichert sind. Die gleiche Tabelle kann sowohl in BigQuery als auch in Spark abgefragt werden.
Hinweis
- Iceberg-Tabelle mit Spark in einem BigQuery-Notebook erstellen Das Tabellenschema wird im BigQuery-Metastore gespeichert. Sie können die Tabelle beispielsweise mit einem BigQuery-Notebook, Dataproc, Dataproc Serverless oder einer gespeicherten Prozedur erstellen.
Hinweise
- Derzeit werden nur Eisberg-Tabellen unterstützt.
Denken Sie beim Ausführen Ihrer Abfragen daran, Ihre Namespace- und Datenbanknamen als BigQuery-Datasetnamen zuzuordnen. In der folgenden Tabelle sind die entsprechenden Tastenzuordnungen aufgeführt:
Open Source BigQuery Namespace BigQuery-Dataset Datenbank BigQuery-Dataset Tabelle (partitioniert oder nicht partitioniert) BigQuery-Tabelle
Tabelle aufrufen und abfragen
Nachdem Sie Ihre BigQuery-Ressourcen in Spark erstellt haben, können Sie sie in der Google Cloud Console aufrufen und abfragen. Im folgenden Beispiel werden die allgemeinen Schritte zum Abfragen einer Metastore-Tabelle mithilfe von interaktivem Spark veranschaulicht:
So verwenden Sie den benutzerdefinierten Iceberg-Katalog:
USE `CATALOG_NAME`;
Ersetzen Sie Folgendes:
CATALOG_NAME
: der Name des Spark-Katalogs, den Sie für Ihren SQL-Job verwenden.
Erstellen Sie einen Namespace:
CREATE NAMESPACE IF NOT EXISTS NAMESPACE_NAME;
Ersetzen Sie Folgendes:
NAMESPACE_NAME
: Der Name des Namespace, der auf Ihre Spark-Tabelle verweist.
Verwenden Sie den erstellten Namespace:
USE NAMESPACE_NAME;
So erstellen Sie eine Iceberg-Tabelle:
CREATE TABLE TABLE_NAME (id int, data string) USING ICEBERG;
Ersetzen Sie Folgendes:
TABLE_NAME
: Name der Iceberg-Tabelle.
So fügen Sie eine Tabellenzeile ein:
INSERT INTO TABLE_NAME VALUES (1, "first row");
Mit der Google Cloud Console haben Sie folgende Möglichkeiten:
SELECT * FROM `TABLE_NAME`;