Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Trabajar con vistas del catálogo de datos de Glue
Puede crear y administrar vistas en el catálogo de datos de AWS Glue para usarlas con EMR Serverless. Estas se conocen comúnmente como vistas del catálogo de datos de AWS Glue. Estas vistas son útiles porque admiten varios motores de consultas SQL, por lo que puede acceder a la misma vista en distintos AWS servicios, como EMR Serverless y Amazon Amazon Athena Redshift.
Al crear una vista en el catálogo de datos, puede utilizar las concesiones de recursos y los controles de acceso basados en etiquetas AWS Lake Formation para conceder el acceso a ella. Con este método de control de acceso, no tiene que configurar el acceso adicional a las tablas a las que hizo referencia en el momento de 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 Lake Formation, consulte Concesión y revocación de permisos sobre los recursos del catálogo de datos 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 filtros a la vista del catálogo de datos, se asegura de que los registros de datos disponibles en una vista del catálogo de datos estén siempre completos.
Seguridad mejorada: la definición de consulta utilizada para crear la vista debe estar completa. Esta ventaja significa que las vistas del catálogo de datos son menos susceptibles a los comandos SQL de actores malintencionados.
Compartir datos de forma sencilla: comparta datos con otras AWS cuentas sin moverlos. Para obtener más información, consulte Uso compartido entre cuentas en Lake Formation.
Creación de una vista del catálogo de datos
Existen diferentes formas de crear una vista de catálogo de datos. Estas incluyen el uso de Spark SQL AWS CLI o Spark. A continuación se muestran algunos ejemplos.
A continuación se muestra la sintaxis para crear una vista de catálogo de datos. Anote el tipo de MULTI DIALECT
vista. Esto distingue la vista del catálogo de datos de otras vistas. El SECURITY
predicado se especifica como. DEFINER
Esto indica una vista del catálogo de datos con DEFINER
semántica.
CREATE [ OR REPLACE ] PROTECTED MULTI DIALECT VIEW [IF NOT EXISTS] view_name
[(column_name [COMMENT column_comment], ...) ]
[ COMMENT view_comment ]
[TBLPROPERTIES (property_name = property_value, ... )]
SECURITY DEFINER
AS query;
El siguiente es un ejemplo de CREATE
declaración, siguiendo la sintaxis:
CREATE PROTECTED MULTI DIALECT VIEW catalog_view
SECURITY DEFINER
AS
SELECT order_date, sum(totalprice) AS price
FROM source_table
GROUP BY order_date
También puede crear una vista en modo de ejecución en seco, mediante SQL, para probar la creación de la vista, sin crear realmente el recurso. El uso de esta opción da como resultado una «ejecución en seco» que valida la entrada y, si la validación se realiza correctamente, devuelve el JSON del objeto de tabla AWS Glue que representará la vista. En este caso, no se crea la vista real.
CREATE [ OR REPLACE ] PROTECTED MULTI DIALECT VIEW
view_name
SECURITY DEFINER [ SHOW VIEW JSON ] ASview-sql
Operaciones de visualización compatibles
Los siguientes fragmentos de comandos muestran varias formas de trabajar con las vistas del catálogo de datos:
CREAR VISTA
Crea una vista de catálogo de datos. A continuación se muestra un ejemplo en el que se muestra la creación de 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
MODIFICAR VISTA
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
FORCE ADD DIALECT
opción para forzar la actualización del esquema y los subobjetos según el nuevo dialecto del motor. Ten en cuenta que hacer esto puede provocar errores de consulta si no actualizas también otros dialectos del motor.FORCE
A continuación se muestra un ejemplo:ALTER VIEW catalog_view FORCE ADD DIALECT AS SELECT order_date, sum(totalprice) AS price FROM source_table GROUP 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 LA VISTA
Sintaxis disponible para describir una vista:
SHOW COLUMNS {FROM|IN} view_name [{FROM|IN} database_name]
— Si el usuario tiene los permisos de AWS Glue and 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 de AWS Glue and Lake Formation necesarios para describir la vista, puede enumerar las columnas de la vista junto con sus metadatos.
VISTA DESPLEGABLE
Sintaxis disponible:
DROP VIEW [ IF EXISTS ] view_name
En el siguiente ejemplo, se muestra una
DROP
declaración que comprueba si existe una vista antes de eliminarla:DROP VIEW IF EXISTS catalog_view;
MOSTRAR CREAR VISTA
SHOW CREATE VIEW view_name
— Muestra la sentencia SQL que crea la vista especificada. El siguiente es un ejemplo que muestra la creación de una vista de 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)
MOSTRAR VISTAS
Muestra todas las vistas del catálogo, como las vistas normales, las vistas multidialectales (MDV) y las MDV sin el dialecto de Spark. La sintaxis disponible es la siguiente:
SHOW VIEWS [{ FROM | IN } database_name] [LIKE regex_pattern]
:A continuación se muestra un ejemplo de comando para mostrar las 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 Building AWS Glue Data Catalog views en la Guía para AWS Lake Formation desarrolladores.
Consulta de la vista del catálogo de datos
Tras crear una vista del catálogo de datos, puede utilizar un rol de IAM para consultar la vista. El rol de IAM debe tener el permiso Lake Formation SELECT en la vista del catálogo de datos. No necesita conceder acceso a las tablas subyacentes a las que se hace referencia en la vista. La función de IAM utilizada para consultar la vista debe ser la función de tiempo de ejecución de la aplicación EMR. Puede acceder a la vista desde EMR Serverless mediante un rol de tiempo de ejecución de Amazon EMR steps, EMR Studio y AI Studio. SageMaker
Una vez que haya configurado todo, podrá consultar la vista. Por ejemplo, después de crear una aplicación EMR Serverless en EMR Studio, puede ejecutar la siguiente consulta para acceder a una vista.
SELECT * from
my_database
.catalog_view
LIMIT 10;
Consideraciones y limitaciones
Al crear vistas del catálogo de datos, se aplica lo siguiente:
Solo puede crear vistas del catálogo de datos con Amazon EMR 7.6 y versiones posteriores.
El definidor de vistas del catálogo de datos debe tener
SELECT
acceso a las tablas base subyacentes a las que accede la vista. La creación de la vista del catálogo de datos falla si una tabla base específica tiene algún filtro de Lake Formation impuesto a la función de definidor.Las tablas base no deben tener el permiso
IAMAllowedPrincipals
de lago de datos en Lake Formation. Si está presente, se produce el error «Las vistas en varios dialectos solo pueden hacer referencia a tablas sin permisos de IAMAllowed director».La ubicación de Amazon S3 de la tabla debe estar registrada como ubicación de lago de datos de Lake Formation. Si la tabla no está registrada, se produce el error de que las vistas en varios dialectos solo pueden hacer referencia a las tablas gestionadas por Lake Formation. Para obtener información sobre cómo registrar ubicaciones de Amazon S3 en Lake Formation, consulte Registrar una ubicación de Amazon S3 en la Guía para AWS Lake Formation desarrolladores.
Solo puede crear vistas del catálogo de datos
PROTECTED
. No se admiten las vistasUNPROTECTED
.No puede hacer referencia a las tablas de otra AWS cuenta en una definición de vista del catálogo de datos. Tampoco puede hacer referencia a una tabla de la misma cuenta que esté en una región distinta.
Para compartir datos en una cuenta o región, toda la vista debe compartirse entre cuentas y regiones, utilizando los enlaces de recursos de Lake Formation.
No se admiten las funciones definidas por el usuario (UDFs).
Puede utilizar vistas basadas en tablas Iceberg. También se admiten los formatos de tabla abierta Apache Hudi y Delta Lake.
No puede hacer referencia a otras vistas en las vistas del catálogo de datos.