Querying catalogs registered in the AWS Glue Data Catalog
After you register an Amazon Redshift data warehouse to the AWS Glue Data Catalog and set permissions for the resulting
catalog in AWS Lake Formation, the catalog is automatically mounted in all Amazon Redshift instances with access to the source data warehouse
in the same account and AWS Region. You can then query that catalog as you would a local cluster or workgroup.
You can also query catalogs registered to the AWS Glue Data Catalog using any SQL engine that supports the Apache Iceberg REST Open API.
For more information on querying catalogs in the AWS Glue Data Catalog using the Apache Iceberg REST API, see
Accessing the Data Catalog
in the AWS Glue Developer Guide. For information on the Apache Iceberg REST API, see the
Apache Iceberg REST Open API specification
To query a catalog, you must first set the permissions for the catalog using AWS Lake Formation. For more information on setting
permissions for catalogs in AWS Lake Formation, see
Setting up permissions for Amazon Redshift datashares
in the AWS Lake Formation Developer Guide. You also need an IAM role with the AmazonRedshiftServiceLinkedRolePolicy
managed policy attached. For information on service-linked roles, see
Using service-linked roles for Amazon Redshift
in the Amazon Redshift Management Guide.
Note that queries against catalogs must follow the following three-part syntax for accessing tables:
database@namespace.schema.table
For general information on querying Amazon Redshift data warehouses, see Query a database in the Amazon Redshift Management Guide.
After setting permissions for an account to access a managed workgroup,
that managed workgroup appears in the tree-view panel under the external databases section of
your serverless database. You can query the managed workgroup
the same way that you would query an internal Amazon Redshift provisioned cluster or serverless workgroup,
using the three-part syntax format database@namespace/cluster.schema.table
. See
the following sample statement:
SELECT price FROM sales_db@mynamespace.sales_schema.inventory_table