Omisión del nombre del catálogo en consultas de metastores externos de Hive - Amazon Athena

Omisión del nombre del catálogo en consultas de metastores externos de Hive

Cuando ejecuta consultas DML y DDL en metaalmacenes externos de Hive, puede simplificar la sintaxis de la consulta omitiendo el nombre del catálogo si ese nombre está seleccionado en el editor de consultas. Se aplican determinadas restricciones a esta funcionalidad.

instrucciones DML

Para ejecutar consultas con catálogos registrados
  1. Puede colocar el nombre del origen de datos antes de la base de datos mediante la sintaxis [[data_source_name].database_name].table_name, como en el ejemplo siguiente.

    select * from "hms-catalog-1".hms_tpch.customer limit 10;
  2. Cuando el origen de datos que desea utilizar ya está seleccionado en el editor de consultas, puede omitir el nombre de la consulta, como en el ejemplo siguiente.

    select * from hms_tpch.customer limit 10:
    Una consulta DML que utiliza un origen de datos predeterminado.
  3. Cuando utiliza varios orígenes de datos en una consulta, solo puede omitir el nombre del origen de datos predeterminado y debe especificar el nombre completo de cualquier origen de datos no predeterminado.

    Por ejemplo, supongamos que seleccionó AwsDataCatalog como origen de datos predeterminado en el editor de consultas. La instrucción FROM del fragmento de consulta siguiente cumple totalmente los dos primeros nombres de origen de datos, pero omite el nombre del tercero porque se encuentra en el catálogo de datos AWS Glue.

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

Instrucciones DDL

Las siguientes instrucciones DDL de Athena admiten prefijos de nombre de catálogo. Los prefijos de nombre de catálogo en otras instrucciones DDL provocan errores de sintaxis.

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

Al igual que con las instrucciones DML, puede omitir los prefijos de origen de datos y base de datos de la consulta cuando el origen de datos y la base de datos están seleccionados en el editor de consultas.

En el ejemplo siguiente, el origen de datos hms-catalog-1 y la base de datos hms_tpch están seleccionados en el editor de consultas. La instrucción show create table customer se ejecuta correctamente aunque se omiten el prefijo hms-catalog-1 y el nombre de la base de datos hms_tpch en la consulta.

Una instrucción DDL que utiliza el catálogo predeterminado.

Especificación de un origen de datos predeterminado en una cadena de conexión JDBC

Cuando utiliza el controlador JDBC de Athena para conectar Athena a un almacén de metadatos externo de Hive, puede utilizar el parámetro Catalog para especificar el nombre del origen de datos predeterminado en la cadena de conexión en un editor SQL, como SQL Workbench.

nota

Para descargar los controladores JDBC de Athena más recientes, consulte Uso de Athena con el controlador JDBC.

La siguiente cadena de conexión especifica el origen de datos predeterminado hms-catalog-name.

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

En la imagen siguiente se muestra un ejemplo de URL de conexión JDBC según se ha configurado en SQL Workbench.

Configuración de una URL de conexión JDBC en SQL Workbench.