Omettre le nom du catalogue dans les requêtes de métastore Hive externes - Amazon Athena

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Omettre le nom du catalogue dans les requêtes de métastore Hive externes

Lorsque vous exécutez DML des DDL requêtes sur des métastores Hive externes, vous pouvez simplifier la syntaxe de vos requêtes en omettant le nom du catalogue s'il est sélectionné dans l'éditeur de requêtes. Certaines restrictions s'appliquent à cette fonctionnalité.

DMLdéclarations

Pour exécuter des requêtes avec des catalogues enregistrés
  1. Vous pouvez placer le nom de la source de données avant la base de données en utilisant la syntaxe [[data_source_name].database_name].table_name, comme dans l'exemple suivant.

    select * from "hms-catalog-1".hms_tpch.customer limit 10;
  2. Lorsque la source de données que vous souhaitez utiliser est déjà sélectionnée dans l'éditeur de requêtes, vous pouvez omettre le nom dans la requête, comme dans l'exemple suivant.

    select * from hms_tpch.customer limit 10:
    DMLRequête utilisant une source de données par défaut.
  3. Lorsque vous utilisez plusieurs sources de données dans une requête, vous pouvez omettre uniquement le nom de la source de données par défaut et devez spécifier le nom complet de toutes les autres sources de données qui ne sont pas des sources de données par défaut.

    Supposons par exemple que AwsDataCatalog est sélectionnée comme source de données par défaut dans l'éditeur de requêtes. L'FROMinstruction contenue dans l'extrait de requête suivant qualifie entièrement les deux premiers noms de source de données, mais omet le nom de la troisième source de données car elle figure dans le catalogue de AWS Glue données.

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

DDLdéclarations

Les DDL instructions Athena suivantes prennent en charge les préfixes de noms de catalogue. Les préfixes de nom de catalogue figurant dans d'autres DDL instructions sont à l'origine d'erreurs de syntaxe.

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$'] )]

Comme pour les DML instructions, vous pouvez omettre les préfixes de source de données et de base de données dans la requête lorsque la source de données et la base de données sont sélectionnées dans l'éditeur de requêtes.

Dans l'image suivante, la source de données hms-catalog-1 et la base de données hms_tpch sont sélectionnées dans l'éditeur de requêtes. L'instruction show create table customer réussit, même si le préfixe hms-catalog-1 et le nom de base de données hms_tpch sont omis de la requête elle-même.

Une DDL instruction utilisant le catalogue par défaut.

Spécification d'une source de données par défaut dans une chaîne de JDBC connexion

Lorsque vous utilisez le JDBC pilote Athena pour connecter Athena à un métastore Hive externe, vous pouvez utiliser le Catalog paramètre pour spécifier le nom de la source de données par défaut dans votre chaîne de connexion dans un éditeur tel que Workbench. SQL SQL

Note

Pour télécharger les derniers JDBC pilotes Athena, consultez la section Utilisation d'Athena avec le pilote. JDBC

La chaîne de connexion suivante indique la source de données par défaut hms-catalog-name.

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

L'image suivante montre un exemple de JDBC connexion URL tel que configuré dans SQL Workbench.

Configuration d'une JDBC connexion URL dans SQL Workbench.