Föderierte AWS Glue-Datasets erstellen
In diesem Dokument wird beschrieben, wie Sie ein föderiertes Dataset in BigQuery erstellen, das mit einer vorhandenen Datenbank in AWS Glue verknüpft ist.
Ein föderiertes Dataset ist eine Verbindung zwischen BigQuery und einer externen Datenquelle auf Dataset-Ebene. Die Tabellen in einem föderierten Dataset werden automatisch aus den Tabellen in der entsprechenden externen Datenquelle ausgefüllt. Sie können diese Tabellen direkt in BigQuery abfragen, aber keine Änderungen vornehmen, etwas hinzufügen oder löschen. Alle Aktualisierungen, die Sie in der externen Datenquelle vornehmen, werden jedoch automatisch in BigQuery übernommen.
Hinweise
Sie benötigen eine Verbindung, um auf AWS Glue-Daten zuzugreifen.
Informationen zum Erstellen oder Ändern einer Verbindung finden Sie unter Verbindung zu Amazon S3 herstellen. Fügen Sie dabei die folgende zusätzliche Richtlinienanweisung für AWS Glue in Ihre AWS-Identitäts- und Zugriffsverwaltungsrichtlinie für BigQuery hinzu:
{ "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:GetTable", "glue:GetTables", "glue:GetPartitions" ], "Resource": [ "arn:aws:glue:REGION:ACCOUNT_ID:catalog", "arn:aws:glue:REGION:ACCOUNT_ID:database/DATABASE_NAME", "arn:aws:glue:REGION:ACCOUNT_ID:table/DATABASE_NAME/*" ] }
Ersetzen Sie Folgendes:
REGION
: die AWS-Region, z. B.us-east-1
ACCOUNT_ID:
: die 12-stellige AWS-Konto-IDDATABASE_NAME
: der Name der AWS Glue-Datenbank
Erforderliche Berechtigungen
Bitten Sie Ihren Administrator, Ihnen den IAM-Rolle BigQuery-Administrator (roles/bigquery.admin
) zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Erstellen eines föderierten Datasets benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.
Diese vordefinierte Rolle enthält die Berechtigungen, die zum Erstellen eines föderierten Datasets erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind zum Erstellen eines föderierten Datasets erforderlich:
-
bigquery.datasets.create
-
bigquery.connections.use
-
bigquery.connections.delegate
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Weitere Informationen zu IAM-Rollen und Berechtigungen in BigQuery finden Sie unter Einführung in IAM.
Föderiertes Dataset erstellen
So erstellen Sie ein föderiertes Dataset:
bq
Erstellen Sie in einer Befehlszeilenumgebung ein Dataset mit dem Befehl bq mk
:
bq --location=LOCATION mk --dataset \ --external_source aws-glue://AWS_GLUE_SOURCE \ --connection_id PROJECT_ID.CONNECTION_LOCATION.CONNECTION_NAME \ DATASET_NAME
Ersetzen Sie Folgendes:
LOCATION
: Der Speicherort Ihres neuen Datasets in BigQuery, z. B.aws-us-east-1
. Nachdem Sie ein Dataset erstellt haben, können Sie seinen Standort nicht mehr ändern. Mit der Datei.bigqueryrc
können Sie einen Standardwert für den Standort festlegen.AWS_GLUE_SOURCE
ist der Amazon Resource Name (ARN) der AWS Glue-Datenbank, z. B.arn:aws:glue:us-east-1:123456789:database/test_database
.PROJECT_ID
: Ihre BigQuery-Projekt-IDCONNECTION_LOCATION
: der Standort Ihrer AWS-Verbindung, z. B.aws-us-east-1
CONNECTION_NAME
ist der Name Ihrer AWS-Verbindung.DATASET_NAME
: der Name Ihres neuen Datasets in BigQuery. Wenn Sie ein Dataset in einem anderen Projekt als dem Standardprojekt erstellen möchten, fügen Sie die Projekt-ID im FormatPROJECT_ID
:DATASET_NAME
dem Dataset-Namen hinzu.
API
Rufen Sie
datasets.insert
Methode mit einem definierten Dataset-Ressource und externalDatasetReference
Feld für Ihre AWS Glue-Datenbank auf.
Tabellen in einem föderierten Dataset auflisten
Informationen zum Auflisten der Tabellen, die für die Abfrage in Ihrem föderierten Dataset verfügbar sind, finden Sie unter Datasets auflisten.
Tabelleninformationen abrufen
Informationen zu den Tabellen in Ihrem föderierten Dataset, z. B. Schemadetails, finden Sie unter Tabelleninformationen abrufen.
Zugriff auf Tabellen steuern
Informationen zum Verwalten des Zugriffs auf die Tabellen in Ihrem föderierten Dataset finden Sie unter Zugriff auf Ressourcen mit IAM steuern.
AWS Glue-Daten abfragen
Das Abfragen von Tabellen in föderierten Datasets ist mit dem Abfragen von Tabellen in einem anderen BigQuery-Dataset identisch.
Sie können AWS Glue-Tabellen in den folgenden Formaten abfragen:
- CSV (komprimiert und unkomprimiert)
- JSON (komprimiert und unkomprimiert)
- Parquet
- ORC
- Avro
- Iceberg
Details zur Tabellenzuordnung
Jede Tabelle, auf die Sie in Ihrer AWS Glue-Datenbank Zugriff gewähren, wird als equivalente Tabelle in Ihrem BigQuery-Dataset angezeigt.
Format
Das Format jeder BigQuery-Tabelle wird durch die folgenden Felder der jeweiligen AWS Glue-Tabelle bestimmt:
InputFormat
(Table.StorageDescriptor.InputFormat
)OutputFormat
(Table.StorageDescriptor.OutputFormat
)SerializationLib
(Table.StorageDescriptor.SerdeInfo.SerializationLibrary
)
Die einzige Ausnahme sind Iceberg-Tabellen, die das Feld TableType
(Table.Parameters["table_type"]
) verwenden.
Beispielsweise wird eine AWS Glue-Tabelle mit den folgenden Feldern einer ORC-Tabelle in BigQuery zugeordnet:
InputFormat
="org.apache.hadoop.hive.ql.io.orc.OrcInputFormat"
OutputFormat
="org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat"
SerializationLib
="org.apache.hadoop.hive.ql.io.orc.OrcSerde"
Standort
Der Speicherort jeder BigQuery-Tabelle wird durch Folgendes bestimmt:
- Iceberg-Tabellen: Feld
Table.Parameters["metadata_location"]
in der AWS Glue-Tabelle - Nicht partitionierte Tabellen, die nicht von Iceberg stammen: das Feld
Table.StorageDescriptor.Location
in der AWS Glue-Tabelle - Partitionierte Nicht-Iceberg-Tabellen: AWS Glue GetPartitions API
Weitere Eigenschaften
Außerdem werden einige AWS Glue-Tabellenattribute automatisch formatspezifischen Optionen in BigQuery zugeordnet:
Format | SerializationLib | AWS Glue-Tabellenwert | BigQuery-Option |
---|---|---|---|
CSV | LazySimpleSerDe | Table.StorageDescriptor.SerdeInfo.Parameters["field.delim"] | CsvOptions.fieldDelimiter |
CSV | LazySimpleSerDe | Table.StorageDescriptor.Parameters["serialization.encoding"] | CsvOptions.encoding |
CSV | LazySimpleSerDe | Table.StorageDescriptor.Parameters["skip.header.line.count"] | CsvOptions.skipLeadingRows |
CSV | OpenCsvSerDe | Table.StorageDescriptor.SerdeInfo.Parameters["separatorChar"] | CsvOptions.fieldDelimiter |
CSV | OpenCsvSerDe | Table.StorageDescriptor.SerdeInfo.Parameters["quoteChar"] | CsvOptions.quote |
CSV | OpenCsvSerDe | Table.StorageDescriptor.Parameters["serialization.encoding"] | CsvOptions.encoding |
CSV | OpenCsvSerDe | Table.StorageDescriptor.Parameters["skip.header.line.count"] | CsvOptions.skipLeadingRows |
JSON | Hive JsonSerDe | Table.StorageDescriptor.Parameters["serialization.encoding"] | JsonOptions.encoding |
Ansicht in einem föderierten Dataset erstellen
Sie können in einem föderierten Dataset keine Ansicht erstellen. Sie haben aber die Möglichkeit, eine Ansicht in einem Standard-Dataset zu erstellen, die auf einer Tabelle in einem föderierten Dataset basiert. Weitere Informationen finden Sie unter Ansichten erstellen.
Föderiertes Dataset löschen
Ein föderiertes Dataset wird genauso gelöscht wie ein anderes BigQuery-Dataset. Weitere Informationen finden Sie unter Datasets löschen.
Preise
Informationen zu den Preisen finden Sie unter BigQuery-Omni-Preise.
Beschränkungen
- Es gelten alle BigQuery Omni-Einschränkungen.
- Sie können keine Daten oder Metadaten in Tabellen in einem föderierten AWS Glue-Dataset hinzufügen, löschen oder aktualisieren.
- Sie können in einem föderierten AWS Glue-Dataset keine neuen Tabellen oder materialisierten Ansichten erstellen.
- Ein föderiertes AWS Glue-Dataset können Sie nur über das bq-Tool und die API erstellen. Die Google Cloud Console wird nicht unterstützt.
INFORMATION_SCHEMA
-Ansichten werden nicht unterstützt.- Sicherheit auf Zeilenebene ,Sicherheit auf Spaltenebene ,Caching von Metadaten undDatenmaskierung werden nicht unterstützt.
- Der Apache Hive-Datentyp
UNION
wird für Avro-Tabellen nicht unterstützt.
Nächste Schritte
- Weitere Informationen zu BigQuery Omni
- Probieren Sie das Lab BigQuery Omni mit AWS-Lab aus.