Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Introducción a la ingesta de streaming de Amazon Kinesis Data Streams - Amazon Redshift

Introducción a la ingesta de streaming de Amazon Kinesis Data Streams

En este tema se describe cómo consumir datos de streaming de Kinesis Data Streams mediante una vista materializada.

Configurar la ingesta de streaming de Amazon Redshift implica crear un esquema externo que se asigna al origen de datos de streaming y crear una vista materializada que haga referencia a ese esquema externo. La ingesta de streaming de Amazon Redshift admite Kinesis Data Streams como origen. Por ello, debe disponer de un origen de Kinesis Data Streams antes de configurar la ingesta de streaming. Si no dispone de un origen, siga las instrucciones de la documentación de Kinesis en Introducción a Amazon Kinesis Data Streams, o bien cree uno en la consola mediante las instrucciones de Creación de un flujo a través de la consola de administración de AWS.

La ingesta de streaming de Amazon Redshift utiliza una vista materializada, que se actualiza directamente desde el flujo cuando se ejecuta REFRESH. La vista materializada se asigna al origen de datos del flujo. Puede realizar filtrado y agregaciones en los datos del flujo como parte de la definición de la vista materializada. La vista materializada de ingesta de streaming (la vista materializada base) solo puede hacer referencia a un flujo, pero se pueden crear vistas materializadas adicionales que se unan con la vista materializada base y con otras tablas o vistas materializadas.

nota

Ingesta de streaming y Amazon Redshift sin servidor: los pasos de configuración de este tema se aplican a los clústeres de Amazon Redshift y Amazon Redshift sin servidor aprovisionados. Para obtener más información, consulte Comportamiento y tipos de datos de ingesta de streaming.

Suponiendo que disponga de un flujo de Kinesis Data Streams, el primer paso es definir un esquema en Amazon Redshift con CREATE EXTERNAL SCHEMA y hacer referencia a un recurso de Kinesis Data Streams. Después de eso, para acceder a los datos del flujo defina STREAM en una vista materializada. Puede almacenar registros del flujo con el formato SUPER semiestructurado, o bien definir un esquema cuyo resultado sean datos convertidos a tipos de datos de Redshift. Cuando se consulta la vista materializada, los registros devueltos son una vista de un punto temporal del flujo.

  1. Cree un rol de IAM con una política de confianza que permita que el clúster de Amazon Redshift o el grupo de trabajo de Amazon Redshift sin servidor asuma el rol. Para obtener información sobre cómo configurar la política de confianza del rol de IAM, consulte Autorización a Amazon Redshift para acceder a otros servicios de AWS en su nombre. Una vez creado, el rol debe tener la siguiente política de IAM, que proporciona permiso para comunicarse con el flujo de datos de Amazon Kinesis.

    Política de IAM para un flujo no cifrado de Kinesis Data Streams

    { "Version": "2012-10-17", "Statement": [ { "Sid": "ReadStream", "Effect": "Allow", "Action": [ "kinesis:DescribeStreamSummary", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards", "kinesis:DescribeStream" ], "Resource": "arn:aws:kinesis:*:0123456789:stream/*" }, { "Sid": "ListStream", "Effect": "Allow", "Action": "kinesis:ListStreams", "Resource": "*" } ] }

    Política de IAM para un flujo cifrado de Kinesis Data Streams

    { "Version": "2012-10-17", "Statement": [{ "Sid": "ReadStream", "Effect": "Allow", "Action": [ "kinesis:DescribeStreamSummary", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards", "kinesis:DescribeStream" ], "Resource": "arn:aws:kinesis:*:0123456789:stream/*" }, { "Sid": "DecryptStream", "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-1:0123456789:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, { "Sid": "ListStream", "Effect": "Allow", "Action": "kinesis:ListStreams", "Resource": "*" } ] }
  2. Consulte la VPC y verifique que el clúster de Amazon Redshift o Amazon Redshift sin servidor dispone de una ruta para llegar a los puntos de conexión de Kinesis Data Streams a través de Internet mediante una puerta de enlace NAT o una puerta de enlace de Internet. Si desea que el tráfico entre Redshift y Kinesis Data Streams permanezca dentro de la red de AWS, considere la posibilidad de utilizar un punto de conexión de VPC de interfaz de Kinesis. Para obtener más información, consulte Using Amazon Kinesis Data Streams Kinesis Data Streams with Interface VPC Endpoints (Uso de Kinesis de Amazon Kinesis Data Streams con puntos de conexión de VPC de interfaz).

  3. En Amazon Redshift, cree un esquema externo para asignar los datos de Kinesis a un esquema.

    CREATE EXTERNAL SCHEMA kds FROM KINESIS IAM_ROLE { default | 'iam-role-arn' };

    La ingesta de streaming para el flujo de datos de Kinesis no requiere ningún tipo de autenticación. Utiliza el rol de IAM definido en la instrucción CREATE EXTERNAL SCHEMA para realizar solicitudes de flujo de datos de Kinesis.

    Opcional: Utilice la palabra clave REGION para especificar la región en la que reside la transmisión de Amazon Kinesis Data Streams o Amazon MSK.

    CREATE EXTERNAL SCHEMA kds FROM KINESIS REGION 'us-west-2' IAM_ROLE { default | 'iam-role-arn' };

    En este ejemplo, la región especifica la ubicación del flujo de origen. El IAM_ROLE es un ejemplo.

  4. Cree una vista materializada para consumir los datos del flujo. Con una instrucción como la siguiente, si un registro no se puede analizar, se produce un error. Use un comando como este si no quiere que se omitan los registros de errores.

    CREATE MATERIALIZED VIEW my_view AUTO REFRESH YES AS SELECT * FROM kds.my_stream_name;

    Los nombres de flujo de Kinesis distinguen entre mayúsculas y minúsculas y pueden contener letras tanto mayúsculas como minúsculas. Para la ingesta de flujos con nombres en mayúsculas, puede establecer la configuración enable_case_sensitive_identifier a true en el nivel de la base de datos. Para obtener más información, consulte Nombres e identificadores e enable_case_sensitive_identifier.

    Para activar la actualización automática, utilice AUTO REFRESH YES. El comportamiento predeterminado es la actualización manual. Tenga en cuenta que cuando usa CAN_JSON_PARSE, es posible que se omitan los registros que no se pueden analizar.

    Las columnas de metadatos incluyen lo siguiente:

    Columna de metadatos Tipo de datos: Descripción
    approximate_arrival_timestamp TIMESTAMP sin zona horaria La hora aproximada en que se insertó el registro en el flujo de Kinesis
    partition_key varchar (256) La clave que utiliza Kinesis para asignar el registro a una partición
    shard_id char(20) El identificador único de la partición en el flujo del que se ha recuperado el registro
    sequence_number varchar(128) El identificador único del registro de la partición de Kinesis
    refresh_time TIMESTAMP sin zona horaria La hora de inicio de la actualización
    kinesis_data varbyte El registro del flujo de Kinesis

    Si tiene lógica empresarial en la definición de su vista materializada, es importante tener en cuenta que los errores de lógica empresarial pueden hacer que la ingesta de streaming se bloquee en algunos casos. Esto podría llevarlo a tener que eliminar y volver a crear la vista materializada. Para evitarlo, le recomendamos que mantenga su lógica lo más simple posible y realice la mayoría de las comprobaciones de lógica empresarial en los datos después de la ingesta.

  5. Actualice la vista, lo que invoca a Redshift para que lea del flujo y cargue los datos en la vista materializada.

    REFRESH MATERIALIZED VIEW my_view;
  6. Consulte los datos en la vista materializada.

    select * from my_view;
PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.