Puede crear y gestionar vistas en AWS Glue Data Catalog, conocidas comúnmente como vistas AWS Glue Data Catalog. Estas vistas son útiles porque admiten varios motores de consultas SQL, lo que le permite acceder a la misma vista en diferentes servicios AWS, como Amazon Athena, Amazon Redshift y AWS Glue. Puede utilizar vistas basadas en Apache Iceberg, Apache Hudi y Delta Lake.
Al crear una vista en el Catálogo de datos, puede usar concesiones de recursos y controles de acceso basados en etiquetas en AWS Lake Formation para otorgar acceso a dicha vista. Al utilizar este método de control de acceso, no es necesario configurar permisos adicionales para las tablas referenciadas al crear la vista. Este método de concesión de permisos se denomina semántica del definidor y estas vistas se denominan vistas del definidor. Para obtener más información sobre el control de acceso en AWS Lake Formation, consulte la sección Concesión y revocación de permisos en los recursos del Catálogo de datos de en la Guía para desarrolladores de AWS Lake Formation.
Las vistas del Catálogo de datos son útiles para los siguientes casos de uso:
-
Control de acceso detallado: puede crear una vista que restrinja el acceso a los datos en función de los permisos que necesite el usuario. Por ejemplo, puede usar las vistas del Catálogo de datos para evitar que el personal que no trabaje en el departamento de Recursos Humanos (RR.HH.) vea información de identificación personal (PII).
-
Definición de vista completa: al aplicar determinados filtros a la vista del Catálogo de datos, se asegura de que los registros de datos disponibles en la vista estén siempre completos.
-
Seguridad mejorada: La definición de la consulta utilizada para crear la vista debe estar completa, lo que hace que las vistas del Catálogo de datos sean menos susceptibles a comandos SQL de actores maliciosos.
-
Uso compartido de datos sencillo: Comparta datos con otras cuentas de AWS sin mover los datos, utilizando el uso compartido de datos entre cuentas en AWS Lake Formation.
Creación de una vista del catálogo de datos
Puede crear vistas del Catálogo de datos utilizando AWS CLI y scripts ETL de AWS Glue usando Spark SQL. La sintaxis para crear una vista del Catálogo de datos incluye especificar el tipo de vista como MULTI DIALECT
y el predicado SECURITY
como DEFINER
, lo que indica una vista de definidor.
Ejemplo de instrucción SQL para crear una vista en el Catálogo de datos:
CREATE PROTECTED MULTI DIALECT VIEW database_name.catalog_view SECURITY DEFINER
AS SELECT order_date, sum(totalprice) AS price
FROM source_table
GROUP BY order_date;
Después de crear una vista del Catálogo de datos, puede utilizar un rol de IAM con el permiso AWS Lake Formation `SELECT` en la vista para consultarla desde servicios como Amazon Athena, Amazon Redshift o trabajos ETL de AWS Glue. No es necesario conceder acceso a las tablas subyacentes a las que se hace referencia en la vista.
Para obtener más información sobre la creación y configuración de vistas del Catálogo de datos, consulte Creación de vistas del Catálogo de datos de AWS Glue en la Guía para desarrolladores de AWS Lake Formation.
Operaciones de vista admitidas
Los siguientes fragmentos de comandos muestran varias formas de trabajar con las vistas del Catálogo de datos:
CREATE VIEW
Crea una vista del Catálogo de datos. El siguiente es un ejemplo que muestra cómo crear una vista a partir de una tabla existente:
CREATE PROTECTED MULTI DIALECT VIEW catalog_view
SECURITY DEFINER AS SELECT * FROM my_catalog.my_database.source_table
ALTER VIEW
Sintaxis disponible:
ALTER VIEW view_name [FORCE] ADD DIALECT AS query
ALTER VIEW view_name [FORCE] UPDATE DIALECT AS query
ALTER VIEW view_name DROP DIALECT
Puede utilizar la opción FORCE ADD DIALECT
para forzar la actualización del esquema y los subobjetos según el nuevo dialecto del motor. Tenga en cuenta que hacer esto puede provocar errores de consulta si no utiliza también FORCE
para actualizar otros dialectos del motor. A continuación se muestra un ejemplo:
ALTER VIEW catalog_view FORCE ADD DIALECTAS
SELECT order_date, sum(totalprice) AS priceFROM source_tableGROUP BY orderdate;
A continuación se muestra cómo modificar una vista para actualizar el dialecto:
ALTER VIEW catalog_view UPDATE DIALECT AS
SELECT count(*) FROM my_catalog.my_database.source_table;
DESCRIBE VIEW
Sintaxis disponible para describir una vista:
SHOW COLUMNS {FROM|IN} view_name [{FROM|IN} database_name]
: Si el usuario tiene los permisos AWS Glue y AWS Lake Formation necesarios para describir la vista, puede enumerar las columnas. A continuación se muestran un par de comandos de ejemplo para mostrar columnas:
SHOW COLUMNS FROM my_database.source_table;
SHOW COLUMNS IN my_database.source_table;
DESCRIBE view_name
: Si el usuario tiene los permisos AWS Glue y AWS Lake Formation necesarios para describir la vista, puede enumerar las columnas de la vista junto con sus metadatos.
DROP VIEW
Sintaxis disponible:
DROP VIEW [ IF EXISTS ] view_name
El siguiente ejemplo muestra una instrucción DROP
que comprueba si existe una vista antes de eliminarla:
DROP VIEW IF EXISTS catalog_view;
SHOW CREATE VIEW view_name
: Muestra la instrucción SQL que crea la vista especificada. El siguiente es un ejemplo que muestra cómo crear una vista en el catálogo de datos:
SHOW CREATE TABLE my_database.catalog_view;CREATE PROTECTED MULTI DIALECT VIEW my_catalog.my_database.catalog_view (
net_profit,
customer_id,
item_id,
sold_date)
TBLPROPERTIES (
'transient_lastDdlTime' = '1736267222')
SECURITY DEFINER AS SELECT * FROM
my_database.store_sales_partitioned_lf WHERE customer_id IN (SELECT customer_id from source_table limit 10)
SHOW VIEWS
Liste todas las vistas en el catálogo, como vistas regulares, vistas multidialecto (MDV) y MDV sin dialecto de Spark. La sintaxis disponible es la siguiente:
SHOW VIEWS [{ FROM | IN } database_name] [LIKE regex_pattern]:
A continuación se muestra un comando de ejemplo para mostrar vistas:
SHOW VIEWS IN marketing_analytics LIKE 'catalog_view*';
Para obtener más información sobre la creación y configuración de vistas de catálogos de datos, consulte Creación de vistas de Catálogos de datos de AWS Glue en la Guía para desarrolladores de AWS Lake Formation.
Consulta de la vista del Catálogo de datos
Tras crear una vista del Catálogo de datos, puede consultar la vista. El rol de IAM configurado en sus trabajos AWS Glue debe tener el permiso SELECT de Lake Formation en la vista del Catálogo de datos. No es necesario conceder acceso a las tablas subyacentes a las que se hace referencia en la vista.
Una vez que haya configurado todo, podrá consultar la vista. Por ejemplo, puede ejecutar la siguiente consulta para acceder a una vista.
SELECT * from my_database.catalog_view LIMIT 10;
Limitaciones
Tenga en cuenta las siguientes limitaciones cuando utilice las vistas de catálogo de datos.
-
Solo puede crear vistas del Catálogo de datos con la versión 5.0 de AWS Glue o superior.
-
El creador de la vista en el Catálogo de datos debe tener acceso a
SELECT
a las tablas base subyacentes a las que accede la vista. La creación de la vista en el Catálogo de datos falla si una tabla base específica tiene filtros de Lake Formation impuestos al rol del creador. -
Las tablas base no deben tener el permiso de lago de datos
IAMAllowedPrincipals
en AWS Lake Formation. Si está presente, se produce el error Las vistas de múltiples dialectos solo pueden hacer referencia a tablas sin permisos IAMAllowedPrincipals. -
La ubicación de Amazon S3 de la tabla debe estar registrada como ubicación de lago de datos de AWS Lake Formation. Si la tabla no está registrada, se produce el error
Multi Dialect views may only reference AWS Lake Formation managed tables
. Para obtener información sobre cómo registrar ubicaciones de Amazon S3 en AWS Lake Formation, consulte Registrar una ubicación de Amazon S3 en la Guía para desarrolladores de AWS Lake Formation. -
Solo puede crear vistas del catálogo de datos
PROTECTED
. No se admiten las vistasUNPROTECTED
. -
No puede hacer referencia a tablas en otra cuenta de AWS en una definición de vista del Catálogo de datos. Tampoco se puede hacer referencia a una tabla de la misma cuenta que esté en una región distinta.
-
Para compartir datos entre cuentas o regiones, toda la vista debe compartirse entre cuentas y regiones, mediante enlaces de recursos AWS Lake Formation.
-
No se admiten las funciones definidas por el usuario (UDF).
-
No puede hacer referencia a otras vistas en las vistas del catálogo de datos.