Consideraciones sobre el uso compartido de datos en Amazon Redshift
Estos son los aspectos que se deben tener en cuenta para trabajar con el uso compartido de datos de Amazon Redshift.
-
El uso compartido de datos entre regiones conlleva cargos adicionales por transferencia de datos entre regiones. Estos cargos por transferencia de datos no se aplican dentro de la misma región, solo entre regiones. Para obtener más información, consulte Administración del control de costos para el uso compartido de datos entre regiones.
-
Al leer datos de un recurso compartido de datos, permanece conectado a la base de datos del clúster local. Para obtener más información sobre cómo establecer a y leer de una base de datos creada a partir de un recurso compartido de datos, consulte Consulta de objetos de recursos compartidos de datos y Vistas materializadas de tablas de lagos de datos externos en Amazon Redshift Spectrum.
-
Al consumidor se le cobran todas las tarifas informáticas y de transferencia de datos entre regiones necesarias para consultar los datos del productor. Al productor se le cobra por el almacenamiento subyacente de los datos en el clúster aprovisionado o en el espacio de nombres sin servidor.
-
El rendimiento de las consultas sobre datos compartidos depende de la capacidad informática de los clústeres consumidores.
Administración del cifrado de clústeres para el uso compartido de datos
Para compartir datos entre Cuenta de AWS, deben estar cifrados tanto el clúster productor como el consumidor.
En Amazon Redshift, puede activar el cifrado de la base de datos de los clústeres para proteger los datos en reposo. Cuando activa el cifrado para un clúster, se cifran los bloques de datos y metadatos del sistema para el clúster y sus instantáneas. Puede activar el cifrado al lanzar el clúster o puede modificar un clúster sin cifrar para que utilice el cifrado AWS Key Management Service (AWS KMS).
Para obtener información acerca del cifrado de las bases de datos de Amazon Redshift, consulte Cifrado de bases de datos de Amazon Redshift en la Guía de administración de Amazon Redshift.
Para proteger los datos en tránsito, todos ellos se cifran en tránsito a través del esquema de cifrado del clúster productor. El clúster consumidor adopta este esquema de cifrado cuando se cargan los datos. Luego, el clúster consumidor funciona como un clúster cifrado normal. Las comunicaciones entre el productor y el consumidor también se cifran con un esquema de clave compartida. Para obtener más información sobre el cifrado en tránsito, consulte Cifrado en tránsito.
Uso compartido de datos dentro de los clústeres y entre ellos
Solo necesita los recursos compartidos de datos al compartir datos entre distintos clústeres aprovisionados o grupos de trabajo sin servidor de Amazon Redshift. Dentro del mismo clúster, puede consultar otra base de datos mediante una notación simple de tres partes database.schema.table
, siempre que disponga de los permisos necesarios en los objetos de la otra base de datos.
Comparación del uso compartido de datos para escrituras en varios almacenamientos y para solo lectura
Anteriormente, los objetos de los recursos compartidos de datos eran de solo lectura en todas las circunstancias. Escribir en un objeto de un recurso compartido de datos es una característica nueva. Los objetos de los recursos compartidos de datos solo están habilitados para escritura cuando un productor concede específicamente privilegios de escritura, como INSERT o CREATE, a los objetos del recurso compartido de datos. Además, para el uso compartido entre cuentas, el productor debe autorizar las escrituras en el recurso compartido de datos y el consumidor debe asociar clústeres y grupos de trabajo específicos para las escrituras.
Limitaciones de las lecturas en el uso compartido de datos
A continuación, se describen las limitaciones que se presentan a la hora de trabajar con lecturas de recursos compartidos de datos en Amazon Redshift:
-
El uso compartido de datos se admite para todos los tipos de clúster RA3 aprovisionados y Amazon Redshift sin servidor. No se admite para otros tipos de clúster.
-
Si los clústeres del productor y del consumidor y los espacios de nombres sin servidor están en la misma cuenta, deben tener el mismo tipo de cifrado (ambos sin cifrar o ambos cifrados). En todos los demás casos, como los recursos compartidos de datos administrados por Lake Formation, el consumidor y el productor deben estar cifrados. Esto se hace por motivos de seguridad. Sin embargo, no es necesario que compartan la misma clave de cifrado.
-
Solo puede compartir UDF de SQL a través de recursos compartidos de datos. No se admiten los UDF de Python y Lambda.
-
Si la base de datos productora tiene una intercalación específica, utilice la misma configuración de intercalación para la base de datos consumidora.
-
Amazon Redshift no admite funciones definidas por el usuario de SQL anidadas en clústeres productores.
-
Amazon Redshift no admite el uso compartido de tablas con claves de ordenación intercaladas ni vistas que referencien tablas con claves de ordenación intercaladas.
-
Los consumidores no pueden añadir objetos de recursos compartidos de datos a otro recurso compartido de datos. Además, los consumidores no pueden añadir vistas que hagan referencia a objetos de recursos compartidos de datos a otro recurso compartido de datos.
-
Amazon Redshift no admite el acceso a un objeto de recurso compartido de datos en el que se haya producido un DDL simultáneo entre la preparación y la ejecución del acceso.
-
Amazon Redshift no admite el uso compartido de procedimientos almacenados a través de recursos compartidos de datos.
-
Amazon Redshift no permite compartir tablas del sistema ni vistas del sistema de metadatos.
Limitaciones de las escrituras en varios almacenamientos
nota
Las escrituras en varios almacenamientos de Amazon Redshift mediante el uso compartido de datos solo se admiten en el parche 186 de Amazon Redshift para los clústeres aprovisionados en la versión 1.0.78881 actual o posteriores y para los grupos de trabajo de Amazon Redshift sin servidor en la versión 1.0.78890 o posteriores.
A continuación, se describen las limitaciones que se presentan a la hora de trabajar con escrituras en recursos compartidos de datos en Amazon Redshift:
-
Conexiones: debe estar conectado directamente a una base de datos del recurso compartido de datos o ejecutar el comando USE para escribir en recursos compartidos de datos. También puede utilizar la notación de tres partes. El comando USE no se admite en tablas externas.
-
Tipo de computación: debe utilizar grupos de trabajo sin servidor y clústeres ra3.xlplus, ra3.4xl o ra3.16xl para usar esta característica.
-
Descubrimiento de metadatos: si es un consumidor conectado directamente a una base de datos de recurso compartido de datos mediante los controladores Redshift JDBC, ODBC o Python, puede ver los datos del catálogo de las siguientes maneras:
-
Los comandos SHOW de SQL
-
Consulta de las tablas y vistas information_schema
-
Consulta de las vistas de metadatos SVV
-
-
Visibilidad de permisos: los consumidores pueden ver los permisos concedidos a los recursos compartidos de datos a través del comando de SQL SHOW GRANTS.
-
Cifrado: para compartir datos entre cuentas, tanto el clúster productor como el consumidor deben estar cifrados.
-
Nivel de aislamiento: el nivel de aislamiento de la base de datos debe ser de instantáneas para permitir que otros grupos de trabajo sin servidor y clústeres aprovisionados escriban en ella.
-
Operaciones automáticas: los consumidores que escriban en objetos de recursos compartidos de datos no desencadenarán ninguna operación de análisis automático. Como resultado, el productor debe ejecutar el análisis manualmente después de insertar los datos en la tabla para actualizar las estadísticas de la tabla. Sin esto, los planes de consulta podrían no ser óptimos.
-
Consultas y transacciones de varias instrucciones: actualmente no se admiten las consultas de varias instrucciones fuera de un bloque de transacciones. Por tanto, si utiliza un editor de consultas como dbeaver y tiene varias consultas de escritura, debe incluir las consultas en una instrucción de transacción explícita BEGIN...END.
Cuando se utilizan instrucciones de varios comandos fuera de las transacciones, si el primer comando es una escritura en una base de datos de productor, los siguientes comandos de escritura de la instrucción solo se permiten en esa base de datos de productor. Si el primer comando es una lectura, los comandos de escritura posteriores solo se permiten en la base de datos utilizada, si esta está configurada; de lo contrario, en la base de datos local. Tenga en cuenta que las escrituras en una transacción solo se admiten en una única base de datos.
-
Dimensionamiento del consumidor: los clústeres del consumidor deben tener al menos 64 sectores para poder realizar escrituras mediante el uso compartido de datos.
-
Vistas y vistas materializadas: no puede crear, actualizar ni alterar vistas ni vistas materializadas en una base de datos de recursos compartidos de datos.
-
Seguridad: no puede asociar ni eliminar políticas de seguridad, como las de columna (CLS), fila (RLS) y enmascaramiento dinámico de datos (DDM), en los objetos de los recursos compartidos de datos.
-
Facilidad de administración: los almacenes de consumidor no pueden añadir a otro recurso compartido de datos objetos de recursos compartidos de datos ni vistas que hagan referencia a objetos de recursos compartidos de datos. Los consumidores tampoco pueden modificar ni eliminar un recurso compartido de datos existente.
-
Operaciones de truncado: las escrituras de recursos compartidos de datos admiten elementos truncados transaccionales para tablas remotas. Es diferente de los truncados que ejecuta localmente en un clúster, que son de confirmación automática. Para obtener más información sobre el comando SQL, consulte TRUNCATE.
Limitaciones de las tablas de lagos de datos
A continuación, se describen las limitaciones que se presentan a la hora de trabajar con tablas de lagos de datos en Amazon Redshift:
-
Los recursos compartidos de tablas de lagos de datos no admiten AWS KMS keys administradas por el cliente para el cifrado de buckets de Amazon S3. Se puede utilizar Claves administradas por AWS para el cifrado. Para obtener más información, consulte Uso del cifrado del servidor con claves administradas por Amazon S3 (SSE-S3).
-
Para compartir datos de tablas de lagos de datos de un catálogo cifrado del AWS Glue, debe delegar las operaciones de AWS KMS en un rol de IAM siguiendo las instrucciones de Cifrado del Catálogo de datos.
Permisos que puede conceder a los recursos compartidos de datos
Puede concederles distintos tipos de objetos y varios permisos en un contexto de uso compartido de datos.
Esquemas:
-
CREATE
-
USAGE
-
ALTER
-
DROP
Tablas:
-
SELECT
-
INSERT
-
UPDATE
-
DELETE
-
TRUNCATE
-
DROP
-
ALTER
-
REFERENCES
Funciones:
-
EXECUTE
Bases de datos:
-
CREATE
-
USAGE
-
ALTER
-
DROP
Instrucciones SQL compatibles para consumidores de recursos compartidos de datos
Se admiten las siguientes instrucciones del lenguaje de definición de datos (DDL) para el uso compartido de datos con escrituras:
-
ALTER TABLE RENAME TO
-
ALTER TABLE RENAME COLUMN TO
-
ALTER TABLE ADD/DROP COLUMN
-
ALTER SCHEMA RENAME TO
-
{ CREATE | DROP } SCHEMA
-
{ CREATE | DROP | SHOW } TABLE
-
CREATE TABLE table_name AS
-
BEGIN | START TRANSACTION
-
END | COMMIT | ROLLBACK
-
TRUNCATE
Se admiten las siguientes instrucciones del lenguaje de manipulación de datos (DML) para el uso compartido de datos con escrituras:
-
SELECT
-
INSERT
-
INSERT INTO SELECT
-
UPDATE
-
DELETE
-
MERGE
-
COPY sin COMPUPDATE
Las siguientes instrucciones de análisis son compatibles con el uso compartido de datos con escrituras:
-
ANALYZE. El consumidor ejecuta USER ANALYZE y envía las estadísticas al productor.
-
Análisis activado por CTAS/COPY que se ejecuta en el consumidor. Esto incluye la multiplexación para consumidores pequeños.
-
Análisis automático ejecutado en el productor después de COPY.
Las siguientes instrucciones de permisos son compatibles con el uso compartido de datos con escrituras:
-
{ GRANT | REVOKE } privilege_name ON OBJECT_TYPE object_name TO consumer_user
-
SHOW GRANTS. Para obtener más información, consulte SHOW GRANTS.
Tipos de instrucción no compatibles. No se admite lo siguiente:
-
Consultas de varias instrucciones a los almacenes de los consumidores cuando se escribe a los productores.
-
Consultas de varias instrucciones a almacenamientos de consumidor en una base de datos diferente, si el comando anterior es una instrucción de lectura.
-
Referencias a objetos que no son notaciones de tres puntos, como las notaciones de un punto o dos puntos, si no están conectadas a una base de datos compartida.
-
Consultas de escalación simultáneas que se escriben de los consumidores a los productores.
-
Trabajos de copia automática que se escriben de los consumidores a los productores.
-
Trabajos de transmisión que se escriben de los consumidores a los productores.
-
Consumidores que crean tablas de integración sin ETL en clústeres de productores. Para obtener información sobre las integraciones sin ETL, consulte Uso de integraciones sin ETL.
-
Escribir en una tabla con una clave de clasificación intercalada a través de un recurso compartido de datos.
-
Escribir en un procedimiento almacenado a través de un recurso compartido de datos.
-
Escribir en una función definida por el usuario (UDF) de SQL a través de un recurso compartido de datos. Incluye UDF anidadas, de Python y Lambda.
-
Instrucciones UPDATE, INSERTE o COPY en columnas de identidad para almacenamientos de consumidor con más sectores de computación que el productor.
-
Instrucciones MERGE en tablas externas que no son de RMS para almacenamientos de consumidores, cuando se escribe en los productores.
-
Instrucciones CREATE TABLE con:
-
Expresión DEFAULT establecida en el tipo de datos VARBYTE. El tipo de datos VARBYTE no se puede convertir de forma implícita en otros tipos de datos. Para obtener más información, consulte Función CAST.
-
Instrucciones AS OF SELECT con el parámetro NULL para almacenamientos de consumidores, al escribir en los productores.
-
Parámetro LIKE para almacenamientos de consumidores cuando se escribe en los productores.
-