Lassen Sie den Katalognamen in externen Hive-Metastore-Abfragen weg - Amazon Athena

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.

Lassen Sie den Katalognamen in externen Hive-Metastore-Abfragen weg

Wenn Sie externe Hive-Metastores ausführen DML und DDL Abfragen auf diesen ausführen, können Sie Ihre Abfragesyntax vereinfachen, indem Sie den Katalognamen weglassen, wenn dieser Name im Abfrage-Editor ausgewählt ist. Für diese Funktionalität gelten bestimmte Einschränkungen.

DMLAnweisungen

So führen Sie Abfragen mit registrierten Katalogen aus:
  1. Sie können den Datenquellennamen mithilfe der Syntax [[data_source_name].database_name].table_name vor die Datenbank einfügen, wie im folgenden Beispiel gezeigt.

    select * from "hms-catalog-1".hms_tpch.customer limit 10;
  2. Wenn die Datenquelle, die Sie verwenden möchten, in dem Abfrage-Editor bereits ausgewählt ist, können Sie den Namen wie im folgenden Beispiel aus der Abfrage weglassen.

    select * from hms_tpch.customer limit 10:
    Eine DML Abfrage, die eine Standarddatenquelle verwendet.
  3. Wenn Sie mehrere Datenquellen in einer Abfrage verwenden, können Sie nur den Standarddatenquellennamen weglassen und müssen den vollständigen Namen für alle nicht standardmäßigen Datenquellen angeben.

    Angenommen, AwsDataCatalog ist im Abfrage-Editor als Standarddatenquelle ausgewählt. Die FROM Anweisung im folgenden Abfrageauszug qualifiziert die ersten beiden Datenquellennamen vollständig, lässt jedoch den Namen für die dritte Datenquelle weg, da sie sich im AWS Glue Datenkatalog befindet.

    ... FROM ehms01.hms_tpch.customer, "hms-catalog-1".hms_tpch.orders, hms_tpch.lineitem ...

DDLAussagen

Die folgenden DDL Athena-Anweisungen unterstützen Präfixe für Katalognamen. Präfixe von Katalognamen in anderen DDL Anweisungen verursachen Syntaxfehler.

SHOW TABLES [IN [catalog_name.]database_name] ['regular_expression'] SHOW TBLPROPERTIES [[catalog_name.]database_name.]table_name [('property_name')] SHOW COLUMNS IN [[catalog_name.]database_name.]table_name SHOW PARTITIONS [[catalog_name.]database_name.]table_name SHOW CREATE TABLE [[catalog_name.][database_name.]table_name DESCRIBE [EXTENDED | FORMATTED] [[catalog_name.][database_name.]table_name [PARTITION partition_spec] [col_name ( [.field_name] | [.'$elem$'] | [.'$key$'] | [.'$value$'] )]

Wie bei DML Anweisungen können Sie die Datenquellen- und Datenbankpräfixe in der Abfrage weglassen, wenn die Datenquelle und die Datenbank im Abfrage-Editor ausgewählt werden.

Im folgenden Bild werden die hms-catalog-1-Datenquelle und die hms_tpch-Datenbank im Abfrage-Editor ausgewählt. Die show create table customer-Anweisung ist erfolgreich, obwohl das hms-catalog-1-Präfix und der hms_tpch-Datenbankname von der Abfrage selbst weggelassen werden.

Eine DDL Anweisung, die den Standardkatalog verwendet.

Angeben einer Standarddatenquelle in einer JDBC Verbindungszeichenfolge

Wenn Sie den JDBC Athena-Treiber verwenden, um Athena mit einem externen Hive-Metastore zu verbinden, können Sie den Catalog Parameter verwenden, um den Standarddatenquellennamen in Ihrer Verbindungszeichenfolge in einem SQL Editor wie Workbench anzugeben. SQL

Anmerkung

Informationen zum Herunterladen der neuesten JDBC Athena-Treiber finden Sie unter Verwenden von Athena mit dem JDBC Treiber.

Die folgende Verbindungszeichenfolge gibt die Standarddatenquelle an hms-catalog-name.

jdbc:awsathena://AwsRegion=us-east-1;S3OutputLocation=s3://amzn-s3-demo-bucket/lambda/results/;Workgroup=AmazonAthenaPreviewFunctionality;Catalog=hms-catalog-name;

Die folgende Abbildung zeigt eine JDBC Beispielverbindung, URL wie sie in SQL Workbench konfiguriert ist.

Konfiguration einer JDBC Verbindung URL in SQL Workbench.