Athrun Data Intelligence


Desplazamiento al rojo del Amazonas es un almacén de datos en la aglomeración rápido y totalmente administrado que hace que sea rentable analizar sus datos utilizando SQL unificado y herramientas de inteligencia empresarial. Puede utilizar Amazon Redshift para analizar datos estructurados y semiestructurados y consultar sin problemas lagos de datos y bases de datos operativas, utilizando hardware diseñado por AWS y ajustes automatizados basados ​​en formación inevitable (ML) para ofrecer un rendimiento de precios de primer nivel a escalera.

Amazon Redshift cumple Rendimiento de precio desde el primer momento. Sin incautación, igualmente ofrece optimizaciones adicionales que puede utilizar para mejorar aún más este rendimiento y conseguir tiempos de respuesta de consultas aún más rápidos desde su almacén de datos.

Una de esas optimizaciones para acortar el tiempo de ejecución de la consulta es precalcular los resultados de la consulta en forma de clarividencia materializada. Las vistas materializadas en Redshift aceleran la ejecución de consultas en tablas grandes. Esto es útil para consultas que involucran agregaciones y uniones de varias tablas. Las vistas materializadas almacenan un conjunto de resultados precalculados de estas consultas y igualmente admiten la capacidad de modernización incremental para tablas locales.

Los clientes utilizan tablas de lagos de datos para conseguir un almacenamiento rentable y la interoperabilidad con otras herramientas. Con formatos de tabla abierta (OTF), como Apache Iceberg, los datos se agregan y actualizan continuamente.

Amazon Redshift ahora ofrece la capacidad de desempolvar de forma incremental sus vistas materializadas en tablas del laguna de datos, incluidos formatos de tablas y archivos abiertos, como Apache Iceberg.

En esta publicación, le mostraremos paso a paso qué operaciones se admiten tanto en formatos de archivos abiertos como en tablas de lagos de datos transaccionales para permitir la modernización incremental de la clarividencia materializada.

Requisitos previos

Para ver los ejemplos de esta publicación, necesita los siguientes requisitos previos:

  1. Puede probar la modernización incremental de vistas materializadas en tablas de laguna de datos unificado en su cuenta utilizando un almacén de datos y un laguna de datos de Redshift existentes. Sin incautación, si desea probar los ejemplos utilizando datos de muestra, descargar los datos de muestra. Los archivos de muestra son ‘|’ archivos de texto delimitados.
  2. Un Mandato de acercamiento e identidad de AWS (IAM) función asignada a Amazon Redshift para otorgar la permisos mínimos requerido para usar Espectro de desplazamiento al rojo con Servicio de almacenamiento simple de Amazon (Amazon S3) y Pegamento AWS.
  3. Establecer la función de IAM como predeterminada papel en Amazon Redshift.

Aggiornamento incremental de vistas materializadas en tablas de laguna de datos unificado

En esta sección, aprenderá cómo crear y desempolvar de forma incremental vistas materializadas en Amazon Redshift en archivos de texto unificado en Amazon S3, manteniendo la modernización de los datos con un enfoque rentable.

  1. Subir el primer archivo, customer.tbl.1descargado del Requisitos previos sección en el depósito S3 que desee con el prefijo customer.
  2. Conéctese a su comunidad de trabajo sin servidor de Amazon Redshift o al clúster aprovisionado de Redshift mediante Editor de consultas v2.
  3. Crea un esquema extranjero.
    create external schema datalake_mv_demo
    from data catalog   
    database 'datalake-mv-demo'
    iam_role default;

  4. Crea una tabla externa citación customer en el esquema extranjero datalake_mv_demo creado en el paso antecedente.
    create external table datalake_mv_demo.customer(
            c_custkey int8,
            c_name varchar(25),
            c_address varchar(40),
            c_nationkey int4,
            c_phone char(15),
            c_acctbal numeric(12, 2),
            c_mktsegment char(10),
            c_comment varchar(117)
        ) row format delimited fields terminated by '|' stored as textfile location 's3:///customer/';

  5. Validar los datos de muestra en el cliente extranjero.
    select * from datalake_mv_demo.customer;

  6. Cree una clarividencia materializada en la tabla externa.
    CREATE MATERIALIZED VIEW customer_mv 
    AS
    select * from datalake_mv_demo.customer;

  7. Validar los datos en la clarividencia materializada.
    select * from customer_mv limit 5;

  8. Sube un nuevo archivo customer.tbl.2 en el mismo depósito S3 y customer ubicación del prefijo. Este archivo contiene un registro adicional.
  9. Usando Editor de consultas v2 actualiza la clarividencia materializada customer_mv.
    REFRESH MATERIALIZED VIEW customer_mv;

  10. Valide la modernización incremental de la clarividencia materializada cuando se agregue el nuevo archivo.
    select mv_name, status, start_time, end_time
    from SYS_MV_REFRESH_HISTORY
    where mv_name="customer_mv"
    order by start_time DESC;

  11. Recuperar el número contemporáneo de filas presentes en la clarividencia materializada customer_mv.
    select count(*) from customer_mv;

  12. Borrar el archivo existente customer.tbl.1 del mismo depósito S3 y prefijo customer. Sólo deberías tener customer.tbl.2 en el customer prefijo de su depósito S3.
  13. Usando Editor de consultas v2actualiza la clarividencia materializada customer_mv de nuevo.
    REFRESH MATERIALIZED VIEW customer_mv;

  14. Verifique que la clarividencia materializada se actualice de forma incremental cuando se elimine el archivo existente.
    select mv_name, status, start_time, end_time
    from SYS_MV_REFRESH_HISTORY
    where mv_name="customer_mv"
    order by start_time DESC;

  15. Recuperar el recuento de filas contemporáneo en la clarividencia materializada customer_mv. Ahora debería tener un registro como presente en el customer.tbl.2 archivo.
    select count(*) from customer_mv;

  16. Modificar el contenido del descargado previamente customer.tbl.2 archivo modificando la secreto de cliente de 999999999 a 111111111.
  17. Guarde el archivo modificado y cárguelo nuevamente en el mismo depósito de S3, sobrescribiendo el archivo existente adentro del customer prefijo.
  18. Usando Editor de consultas v2actualiza la clarividencia materializada customer_mv
    REFRESH MATERIALIZED VIEW customer_mv;

  19. Valide que la clarividencia materializada se actualizó incrementalmente luego de que se modificaron los datos en el archivo.
    select mv_name, status, start_time, end_time
    from SYS_MV_REFRESH_HISTORY
    where mv_name="customer_mv"
    order by start_time DESC;

  20. Valide que los datos en la clarividencia materializada reflejen sus cambios de datos anteriores desde 999999999 a 111111111.
    select * from customer_mv;

Aggiornamento incremental de la clarividencia materializada en las tablas del laguna de datos Apache Iceberg

Iceberg apache es un formato de tabla abierta de laguna de datos que se está convirtiendo rápidamente en un unificado de la industria para la papeleo de datos en lagos de datos. Iceberg presenta nuevas capacidades que permiten que múltiples aplicaciones trabajen juntas con los mismos datos de modo transaccionalmente consistente.

En esta sección exploraremos cómo Desplazamiento al rojo del Amazonas Puede integrarse perfectamente con Apache Iceberg. Puede utilizar esta integración para crear vistas materializadas y actualizarlas gradualmente utilizando un enfoque rentable, manteniendo la modernización de los datos almacenados.

  1. Inicie sesión en el Consola de empresa de AWSir a Atenea amazónicay ejecute el venidero SQL para crear una cojín de datos en un catálogo de AWS Glue.
    create database iceberg_mv_demo;

  2. Crear una nueva tabla Iceberg
    create table iceberg_mv_demo.category (
      catid int ,
      catgroup string ,
      catname string ,
      catdesc string)
      PARTITIONED BY (catid, bucket(16,catid))
      LOCATION 's3:///iceberg/'
      TBLPROPERTIES (
      'table_type'='iceberg',
      'write_compression'='snappy',
      'format'='parquet');

  3. Agregue algunos datos de muestra a iceberg_mv_demo.category.
    insert into iceberg_mv_demo.category values
    (1, 'Sports', 'MLB', 'Major League Basebal'),
    (2, 'Sports', 'NHL', 'National Hockey League'),
    (3, 'Sports', 'NFL', 'National Football League'),
    (4, 'Sports', 'NBA', 'National Básquet Association'),
    (5, 'Sports', 'MLS', 'Major League Soccer');

  4. Validar los datos de muestra en iceberg_mv_demo.category.
    select * from iceberg_mv_demo.category;

  5. Conéctese a su comunidad de trabajo sin servidor de Amazon Redshift o al clúster aprovisionado de Redshift mediante Editor de consultas v2.
  6. Crear un esquema extranjero
    CREATE external schema iceberg_schema
    from data catalog
    database 'iceberg_mv_demo'
    region 'us-east-1'
    iam_role default;

  7. Consulta los datos de la tabla Iceberg de Amazon Redshift.
    SELECT *  FROM "dev"."iceberg_schema"."category";

  8. Cree una clarividencia materializada utilizando el esquema extranjero.
    create MATERIALIZED view mv_category as
    select  * from
    "dev"."iceberg_schema"."category";

  9. Validar los datos en la clarividencia materializada.
    select  * from
    "dev"."iceberg_schema"."category";

  10. Usando Atenea amazónicamodificar la tabla Iceberg iceberg_mv_demo.category e insertar datos de muestra.
    insert into category values
    (12, 'Concerts', 'Comedy', 'All stand-up comedy performances'),
    (13, 'Concerts', 'Other', 'Militar');

  11. Usando Editor de consultas v2actualiza la clarividencia materializada mv_category.
    Refresh  MATERIALIZED view mv_category;

  12. Valide la modernización incremental de la clarividencia materializada luego de que se completaron los datos adicionales en la tabla Iceberg.
    select mv_name, status, start_time, end_time
    from SYS_MV_REFRESH_HISTORY
    where mv_name="mv_category"
    order by start_time DESC;

  13. Usando Atenea amazónicamodificar la tabla Iceberg iceberg_mv_demo.category eliminando y actualizando registros.
    delete from iceberg_mv_demo.category
    where catid = 3;
     
    update iceberg_mv_demo.category
    set catdesc="American National Básquet Association"
    where catid=4;

  14. Validar los datos de muestra en iceberg_mv_demo.category para confirmar que catid=4 ha sido actualizado y catid=3 ha sido eliminado de la tabla.
    select * from iceberg_mv_demo.category;

  15. Usando Editor de consultas v2Desempolvar la clarividencia materializada mv_category.
    Refresh  MATERIALIZED view mv_category;

  16. Valide la modernización incremental de la clarividencia materializada luego de que se actualizó una fila y se eliminó otra.
    select mv_name, status, start_time, end_time
    from SYS_MV_REFRESH_HISTORY
    where mv_name="mv_category"
    order by start_time DESC;

Mejoras de rendimiento

Para comprender las mejoras de rendimiento de la modernización incremental en comparación con el recálculo completo, utilizamos el unificado de la industria Prueba comparativa TPC-DS utilizando conjuntos de datos de 3 TB para tablas Iceberg configuradas en copia en escritura. En nuestro punto de remisión, las tablas de hechos se almacenan en Amazon S3, mientras que las tablas de dimensiones están en Redshift. Nosotros creamos 34 vistas materializadas que representa diferentes casos de uso de clientes en un clúster aprovisionado por Redshift de tamaño ra3.4xl con 4 nodos. aplicamos 1% inserciones y eliminaciones en tablas de hechos, es aseverar, tablas store_sales, catalog_sales y web_sales. Ejecutamos las inserciones y eliminaciones con Spark SQL en EMR sin servidor. Actualizamos las 34 vistas materializadas mediante modernización incremental y medimos latencias de modernización. Repetimos el tentativa utilizando un nuevo cálculo completo.

Nuestros experimentos muestran que la modernización incremental proporciona mejoras sustanciales en el rendimiento con respecto al recálculo completo. Luego de las inserciones, se realizó una modernización incremental. 13,5 veces más rápido en promedio que el recálculo completo (mayor 43,8 veces, pequeño 1,8 veces). Luego de las eliminaciones, se realizó una modernización incremental. 15 veces más rápido en promedio (mayor 47X, pequeño 1,2X). Los siguientes gráficos ilustran la latencia de modernización.

Insertos

Elimina

Eliminar

Cuando haya terminado, elimine los medios que ya no necesite para evitar cargos continuos.

  1. Ejecute el venidero script para sisar los objetos de Amazon Redshift.
    DROP  MATERIALIZED view mv_category;
    
    DROP  MATERIALIZED view customer_mv;

  2. Ejecute el venidero script para sisar las tablas de Apache Iceberg usando Atenea amazónica.
    DROP  TABLE iceberg_mv_demo.category;

Conclusión

Las vistas materializadas en Amazon Redshift pueden ser una poderosa aparejo de optimización. Con la modernización incremental de las vistas materializadas en las tablas del laguna de datos, puede juntar los resultados calculados previamente de sus consultas en una o más tablas cojín, lo que proporciona un enfoque rentable para permanecer datos actualizados. Le recomendamos que actualice las cargas de trabajo de su laguna de datos y utilice la función de clarividencia materializada incremental. Si es nuevo en Amazon Redshift, pruebe la Tutorial de inclusión y usar el prueba gratuita para crear y aprovisionar su primer clúster y verificar con la función.

Ver Vistas materializadas en tablas de lagos de datos externos en Amazon Redshift Spectrum para consideraciones y mejores prácticas.


Sobre los autores

Raks KhareRaks Khare es un arquitecto senior de soluciones especializado en observación en AWS con sede en Pensilvania. Ayuda a clientes de diversas industrias y regiones a diseñar soluciones de observación de datos a escalera en la plataforma AWS. Fuera del trabajo, le gusta explorar nuevos destinos de viajes y restauración y advenir tiempo de calidad con su grupo.

Tahir Aziz es arquitecto de soluciones de observación en AWS. Ha trabajado en la construcción de almacenes de datos y soluciones de big data durante más de 15 abriles. Le encanta ayudar a los clientes a diseñar soluciones de observación de un extremo a otro en AWS. Fuera del trabajo, le gusta delirar y cocinar.

Raza Hafeez es directivo senior de productos en Amazon Redshift. Tiene más de 13 abriles de experiencia profesional en la creación y optimización de almacenes de datos empresariales y le apasiona permitir que los clientes se den cuenta del poder de sus datos. Se especializa en portar almacenes de datos empresariales a AWS Modern Data Architecture.

Enrico Siragusa es ingeniero sénior de incremento de software en Amazon Redshift. Contribuyó al procesamiento de consultas y vistas materializadas. Enrico tiene un M.Sc. en Ciencias de la Computación de la Universidad de Paris-Est y un Ph.D. en Bioinformática de la Escuela Internacional de Investigación Max Planck en Biología Computacional y Computación Científica en Berlín.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *