Amazon Redshift unterstützt UDFs ab Patch 198 nicht mehr die Erstellung von neuem Python. Das bestehende Python UDFs wird bis zum 30. Juni 2026 weiterhin funktionieren. Weitere Informationen finden Sie im Blog-Posting
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verweisen auf Iceberg-Tabellen in Amazon Redshift
Amazon Redshift bietet mehrere Möglichkeiten, auf Apache Iceberg-Tabellen zu verweisen, die in Ihrem Data Lake gespeichert sind. Sie können externe Schemas verwenden, um Verweise auf Datenkatalogdatenbanken zu erstellen, die Iceberg-Tabellen enthalten, oder die dreiteilige Notation für den direkten Zugriff auf automatisch gemountete Kataloge verwenden.
Verwenden externer Schemas zum Verweisen auf Iceberg-Tabellen
Externe Schemas bieten eine Möglichkeit, von Amazon Redshift aus auf Tabellen in Ihrem Datenkatalog zu verweisen. Wenn Sie ein externes Schema erstellen, stellen Sie eine Verbindung zwischen Ihrer Amazon Redshift Redshift-Datenbank und einer bestimmten Datenkatalogdatenbank her, die Ihre Iceberg-Tabellen enthält.
Um ein externes Schema für Iceberg-Tabellen zu erstellen:
CREATE EXTERNAL SCHEMAschema_nameFROM DATA CATALOG DATABASE 'glue_database_name' IAM_ROLE 'arn:aws:iam::account-id:role/role-name';
Nachdem Sie das externe Schema erstellt haben, können Sie Iceberg-Tabellen mithilfe der zweiteiligen Notation abfragen:
SELECT * FROMschema_name.iceberg_table_name;
Sie können Iceberg-Tabellen auch mit lokalen Amazon Redshift Redshift-Tabellen verbinden:
SELECT r.customer_id, i.order_date, r.customer_name FROM local_customers r JOINschema_name.iceberg_ordersi ON r.customer_id = i.customer_id;
Verwendung der dreiteiligen Notation mit automatisch eingehängten Katalogen
Die dreiteilige Notation ermöglicht es Ihnen, direkt auf Tabellen in automatisch bereitgestellten Katalogen zu verweisen, ohne externe Schemas zu erstellen. Diese Methode ist besonders nützlich, wenn Sie mit Amazon S3 S3-Tabellen-Buckets arbeiten, mit denen sie verbunden sind. AWS Lake Formation Informationen zum Einrichten der automatischen Bereitstellung des Datenkatalogs finden Sie unter Vereinfachen des Zugriffs auf externe Objekte in Amazon Redshift mithilfe der AWS Glue Data Catalog automatischen Bereitstellung von
Die Syntax für die dreiteilige Notation lautet:
"catalog_name".database_name.table_name
Um beispielsweise eine Iceberg-Tabelle in einem automatisch bereitgestellten Amazon S3 S3-Tabellenkatalog abzufragen:
SELECT * FROM "my_table_bucket@s3tablescatalog".my_database.my_iceberg_table;
Weitere Informationen zur Integration von Amazon S3 S3-Tabellen-Buckets mit Amazon Redshift finden Sie unter Integrieren von S3-Tabellen mit Amazon Redshift im Amazon S3 S3-Benutzerhandbuch.
Sie können die USE Anweisung auch verwenden, um einen Standardkatalog und eine Standarddatenbank festzulegen:
USE "my_table_bucket@s3tablescatalog".my_database; SELECT * FROMmy_iceberg_table;
So legen Sie einen Suchpfad für die Schemaauflösung fest:
USE "my_table_bucket@s3tablescatalog"; SET search_path TOmy_database; SELECT * FROMmy_iceberg_table;
Bewährte Methoden für die Referenzierung von Iceberg-Tabellen
Beachten Sie beim Verweisen auf Iceberg-Tabellen in Amazon Redshift die folgenden bewährten Methoden:
-
Verwenden Sie beschreibende Schemanamen — Verwenden Sie beim Erstellen externer Schemas Namen, die eindeutig auf die Quelle und den Zweck der Daten hinweisen, z. B. oder.
sales_data_lakecustomer_analytics -
Nutzen Sie Tabellenstatistiken — Stellen Sie sicher, dass Spaltenstatistiken für Ihre Iceberg-Tabellen generiert werden, um die Abfrageleistung AWS Glue zu optimieren. Amazon Redshift verwendet diese Statistiken für die Planung und Optimierung von Abfragen.
-
Denken Sie an die Aktualität der Daten — Iceberg-Tabellen werden möglicherweise von anderen Diensten aktualisiert, während Sie sie abfragen. Amazon Redshift bietet Transaktionskonsistenz und stellt sicher, dass Sie während Ihrer Abfrageausführung einen konsistenten Snapshot der Daten sehen.
-
Verwenden Sie die entsprechenden IAM-Berechtigungen — Stellen Sie sicher, dass Ihr Amazon Redshift Redshift-Cluster oder Ihre Arbeitsgruppe über die erforderlichen IAM-Berechtigungen für den Zugriff auf die Amazon S3 S3-Standorte verfügt, an denen Ihre Iceberg-Tabellen gespeichert sind, sowie auf die Data Catalog-Metadaten.
-
Abfrageleistung überwachen — Verwenden Sie die Abfrageüberwachungsfunktionen von Amazon Redshift, um die Leistung von Abfragen anhand von Iceberg-Tabellen zu verfolgen und bei Bedarf zu optimieren.
Allgemeine Referenzierungsmuster
Die folgenden Beispiele zeigen gängige Muster für die Referenzierung von Iceberg-Tabellen:
Aggregieren von Daten aus mehreren Iceberg-Tabellen:
SELECT region, SUM(sales_amount) as total_sales, COUNT(*) as transaction_count FROM data_lake.sales_transactions WHERE transaction_date >= '2024-01-01' GROUP BY region ORDER BY total_sales DESC;
Iceberg-Tabellen mit lokalen Amazon Redshift Redshift-Tabellen verbinden:
SELECT c.customer_name, c.customer_tier, SUM(o.order_amount) as total_orders FROM customers c JOIN data_lake.order_history o ON c.customer_id = o.customer_id WHERE o.order_date >= CURRENT_DATE - INTERVAL '30 days' GROUP BY c.customer_name, c.customer_tier;
Verwendung der dreiteiligen Notation bei komplexen Abfragen:
WITH recent_orders AS ( SELECT customer_id, order_date, order_amount FROM "analytics_bucket@s3tablescatalog".ecommerce.orders WHERE order_date >= CURRENT_DATE - INTERVAL '7 days' ) SELECT customer_id, COUNT(*) as order_count, AVG(order_amount) as avg_order_value FROM recent_orders GROUP BY customer_id HAVING COUNT(*) > 1;