Den Katalognamen in externen Hive-Metastore-Abfragen weglassen
Wenn Sie DML- und DDL-Abfragen für externe Hive-Metastores ausführen, können Sie die 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.
DML-Anweisungen.
So führen Sie Abfragen mit registrierten Katalogen aus:
-
Sie können den Datenquellennamen mithilfe der Syntax
[[vor die Datenbank einfügen, wie im folgenden Beispiel gezeigt.data_source_name].database_name].table_nameselect * from "hms-catalog-1".hms_tpch.customer limit 10; -
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:
-
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,
AwsDataCatalogist im Abfrage-Editor als Standarddatenquelle ausgewählt. DieFROM-Anweisung im folgenden Abfrage-Auszug qualifiziert die ersten beiden Datenquellennamen vollständig, lässt jedoch den Namen für die dritte Datenquelle aus, da sie sich im AWS Glue-Datenkatalog befindet.... FROM ehms01.hms_tpch.customer, "hms-catalog-1".hms_tpch.orders, hms_tpch.lineitem ...
DDL-Anweisungen
Die folgenden Athena-DDL-Anweisungen unterstützen Katalognamenpräfixe. Katalognamenpräfixe 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 Datenquelle und die Datenbankpräfixe aus 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.
Angeben einer Standard-Datenquelle in einer JDBC-Verbindungszeichenfolge
Wenn Sie den Athena-JDBC-Treiber verwenden, um Athena mit einem externen Hive-Metastore zu verbinden, können Sie den Catalog-Parameter verwenden, um den Standard-Namen der Datenquelle in Ihrer Verbindungszeichenfolge in einem SQL-Editor wie SQL Workbench
Anmerkung
Informationen zum Herunterladen des neuesten Athena-JDBC-Treibers finden Sie unter Verwenden von Athena mit dem JDBC-Treiber.
Die folgende Verbindungszeichenfolge gibt die Standarddatenquelle hms-catalog-name an.
jdbc:awsathena://AwsRegion=us-east-1;S3OutputLocation=s3://amzn-s3-demo-bucket/lambda/results/;Workgroup=AmazonAthenaPreviewFunctionality;Catalog=hms-catalog-name;
Das folgende Image zeigt ein Beispiel für eine JDBC-Verbindungs-URL, wie sie in SQL Workbench konfiguriert ist.