Llegamos a ustedes gracias a:



Reportajes y análisis

Cómo elegir un data warehouse en la nube

[15/12/2021] Los data warehouse empresariales, o EDW, son bases de datos unificadas para todos los datos históricos de una empresa, optimizados para el análisis. Hoy en día, las organizaciones que implementan data warehouses suelen considerar la posibilidad de crearlos en la nube, en lugar de en las instalaciones. Muchas también consideran el uso de lagos de datos que soportan consultas en lugar de los data warehouses tradicionales. Una tercera cuestión es si se quieren combinar los datos históricos con la transmisión de datos en directo.

Un data warehouse es una base de datos analítica, normalmente relacional, creada a partir de dos o más fuentes de datos, normalmente para almacenar datos históricos, que pueden tener una escala de petabytes. Los data warehouses suelen disponer de importantes recursos informáticos y de memoria para ejecutar consultas complicadas y generar informes, y suelen ser las fuentes de datos para los sistemas de inteligencia empresarial (BI) y el aprendizaje automático.

[Reciba lo último de CIO Perú suscribiéndose a nuestro newsletter semanal]

Los requisitos de rendimiento de escritura de las bases de datos operacionales transaccionales limitan el número y el tipo de índices que se pueden crear (más índices significan más escrituras y actualizaciones por registro añadido, y más contención posible). Esto, a su vez, ralentiza las consultas analíticas contra la base de datos operativa. Una vez que haya exportado sus datos a un data warehouse, puede indexar todo lo que le interese en él para obtener un buen rendimiento de las consultas analíticas, sin afectar al rendimiento de escritura de la base de datos OLTP (procesamiento de transacciones en línea) independiente.

Los mercados de datos contienen datos orientados a una línea de negocio específica. Los mercados de datos pueden depender del data warehouse, ser independientes del data warehouse (es decir, proceder de una base de datos operativa o de una fuente externa), o ser un híbrido de ambos.

Los lagos de datos, que almacenan archivos de datos en su formato nativo, son esencialmente "esquema en lectura", lo que significa que cualquier aplicación que lea datos del lago tendrá que imponer sus propios tipos y relaciones a los datos. Los data warehouses tradicionales, en cambio, son de "esquema en escritura", lo que significa que los tipos de datos, los índices y las relaciones se imponen a los datos a medida que se almacenan en el data warehouse.

Los data warehouses modernos suelen poder manejar datos estructurados y semiestructurados y consultarlos simultáneamente. Además, los data warehouses modernos suelen poder consultar simultáneamente datos históricos y datos recientes.

Data warehouse en la nube frente a data warehouse on-prem

Un data warehouse puede implementarse en las instalaciones, en la nube o como un híbrido. Históricamente, los data warehouses siempre han sido on-prem, pero el costo de capital y la falta de escalabilidad de los servidores on-prem en los centros de datos eran a veces un problema. Las instalaciones de EDW on-prem aumentaron cuando los proveedores empezaron a ofrecer dispositivos de almacenamiento de datos. Ahora, sin embargo, la tendencia es trasladar todo o parte del data warehouse a la nube para aprovechar la escalabilidad inherente de los almacenes de datos en la nube y la facilidad de conexión con otros servicios en la nube.

El inconveniente de poner petabytes de datos en la nube es el costo operativo, tanto del almacenamiento de datos en la nube como de los recursos de computación y memoria del almacén de datos en la nube. Se podría pensar que el tiempo para subir petabytes de datos a la nube sería una gran barrera, pero los proveedores de nubes a hiperescala ofrecen ahora servicios de transferencia de datos de gran capacidad basados en disco.

Requisitos de velocidad y escalabilidad

Los data warehouses están diseñados para que las consultas analíticas se ejecuten rápidamente. En los antiguos data warehouses on-prem, los informes con múltiples consultas basadas en datos históricos solían ejecutarse de un día para otro. Para los modernos data warehouses en la nube, los requisitos de rendimiento son más estrictos, ya que los analistas esperan ejecutar consultas basadas en datos históricos y de flujo de forma interactiva, y luego profundizar con más consultas.

Los data warehouses en la nube suelen estar diseñados para escalar la capacidad de la CPU en función de las necesidades, de modo que las consultas interactivas contra petabytes de datos puedan devolver respuestas en minutos. Algunos data warehouses en la nube pueden aumentar los recursos de la CPU mientras se ejecuta una consulta sin reiniciarla, y volver a reducirlos cuando el data warehouse está inactivo. El aumento y la reducción agresivos pueden ser una buena estrategia para obtener un alto rendimiento cuando sea necesario con un costo global bajo.

Almacenamiento en columnas o en filas

Las bases de datos orientadas a filas organizan los datos por registros, y normalmente intentan almacenar una fila de la base de datos en un bloque de almacenamiento, de manera que toda la fila pueda recuperarse con una sola operación de lectura. Las bases de datos orientadas a filas son eficientes tanto para leer como para escribir filas. La mayoría de las bases de datos transaccionales están orientadas a filas y utilizan índices de árbol b.

Las bases de datos orientadas a columnas organizan los datos por campos, y tratan de almacenar todos los datos asociados a un campo de forma conjunta. Las bases de datos columnares son eficientes para la lectura y la computación en columnas. La mayoría de los data warehouses almacenan los datos en columnas, los comprimen en gran medida y utilizan índices de árbol LSM. El documento original que describe C-Store, una base de datos orientada a columnas de lectura optimizada, se publicó en el 2005. El documento de C-Store sentó las bases de la mayoría de los data warehouses de columnas modernos, como Amazon Redshift, Google BigQuery y Snowflake.

Algunas bases de datos combinan el almacenamiento en filas y en columnas. Utilizan el almacenamiento en filas para el OLTP y el almacenamiento en columnas para las consultas analíticas. Unas pocas bases de datos pueden consultar los datos en el almacenamiento en columnas y en filas de forma conjunta, lo que acelera las consultas en las que no caben todos los campos en el almacenamiento en columnas.

Almacenamiento en memoria y almacenamiento en capas

¿Qué es más rápido que un almacenamiento en columnas comprimido en disco? Un almacén columnar comprimido en memoria. ¿Qué puede manejar más datos que un almacén en columnas en memoria? Un sistema de almacenamiento en capas que respalde la memoria con PMEM, como Intel Optane, que es más rápido que el flash y más barato que la DRAM. Las capas adicionales serían flash y discos giratorios. La parte difícil de un esquema como éste es implementar el almacenamiento en caché de varios niveles sin ralentizar las recuperaciones, o permitir el vaciado innecesario de la caché en las capas más rápidas.

ETL frente a ELT

Las herramientas ETL (extracción, transformación y carga) extraen los datos, realizan las asignaciones y transformaciones deseadas, y cargan los datos en la capa de almacenamiento de datos. Las herramientas ELT almacenan los datos primero y los transforman después. Cuando se utilizan herramientas ELT, es habitual utilizar también un lago de datos.

Data warehouses en nube agrupados y distribuidos

Dado que los data warehouses son bases de datos de lectura, es más fácil agruparlos, que agrupar bases de datos OLTP. También es más fácil distribuir los almacenes de datos geográficamente sin incurrir en una alta latencia de escritura. Una vez que su data warehouse tiene una arquitectura en clúster, es fácil añadir nodos al clúster para aumentar la capacidad de procesamiento y devolver los resultados más rápidamente.

Interfaz de usuario en la nube para la administración y las consultas

Casi todos los data warehouses en la nube tienen su propia interfaz de usuario para la administración y las consultas. Algunas son más fáciles de usar que otras. La administración es más sencilla que la creación de consultas. Añadir un nodo (o establecer un número máximo de nodos para el autoescalado) puede ser tan fácil como pulsar un botón. Algunos data warehouses en la nube ofrecen un constructor de consultas gráfico, que es útil para los novatos en SQL. Muchos almacenes de datos en la nube ofrecen un panel de historial para las consultas anteriores y sus respuestas.

Principales data warehouses en la nube

Los 13 productos que se enumeran a continuación, por orden alfabético, son data warehouses en la nube, o bien proporcionan la funcionalidad de los data warehouses, pero se basan en una arquitectura diferente, como los lagos de datos. Se podría argumentar que Ahana, Delta Lake y Qubole están construidos sobre lagos de datos en lugar de empezar como data warehouses, pero también se podría argumentar que proporcionan casi la misma funcionalidad que data warehouses incuestionables como AWS Redshift, Azure Synapse y Google BigQuery. Como todos estos productos añaden motores de consulta federados y heterogéneos, la distinción funcional entre los lagos de datos y los data warehouses tiende a difuminarse. 

Ahana Cloud for Presto: Ahana Cloud for Presto convierte un lago de datos en Amazon S3 en lo que es efectivamente un data warehouses, sin mover ningún dato. Las consultas SQL se ejecutan rápidamente incluso cuando se unen múltiples fuentes de datos heterogéneas.

Presto es un motor de consulta SQL distribuido de código abierto para ejecutar consultas analíticas interactivas contra fuentes de datos de todos los tamaños. Presto permite consultar los datos allí donde se encuentren, incluidos Hive, Cassandra, bases de datos relacionales y data warehouses propios. Una sola consulta de Presto puede combinar datos de múltiples fuentes. Facebook utiliza Presto para realizar consultas interactivas en varios almacenes de datos internos, incluido su almacén de datos de 300PB.

Ahana Cloud for Presto se ejecuta en Amazon, tiene una interfaz de usuario bastante sencilla y cuenta con una gestión del ciclo de vida del clúster de principio a fin. Se ejecuta en Kubernetes y es altamente escalable. Tiene un catálogo incorporado y una fácil integración con fuentes de datos, catálogos y herramientas de cuadros de mando. La interfaz de consulta predeterminada de Ahana es Apache Superset. También puedes usar Jupyter o Zeppelin notebooks, especialmente si está haciendo machine learning (ML).

Ahana afirma tener un rendimiento tres veces superior al de otros servicios Presto, como Amazon Elastic MapReduce y Amazon Athena.

Amazon Redshift: Con Amazon Redshift puede consultar y combinar exabytes de datos estructurados y semiestructurados en su data warehouse, base de datos operativa y lago de datos utilizando SQL estándar. Redshift le permite guardar fácilmente los resultados de sus consultas en su lago de datos S3 utilizando formatos abiertos, como Apache Parquet, para que pueda realizar análisis adicionales desde otros servicios de análisis como Amazon EMR, Amazon Athena y Amazon SageMaker.

Azure Synapse Analytics: Azure Synapse Analytics es un servicio de análisis que reúne la integración de datos, el almacenamiento de datos y el análisis de big data. Permite ingerir, explorar, preparar, gestionar y servir datos para necesidades inmediatas de BI y aprendizaje automático, y consultar datos utilizando recursos sin servidor o dedicados a escala. Azure Synapse puede ejecutar consultas utilizando motores Spark o SQL. Tiene una profunda integración con Azure Machine Learning, Azure Cognitive Services y Power BI.

Delta Lake: Delta Lake es un proyecto de código abierto que permite construir una arquitectura "lakehouse" sobre sistemas de almacenamiento existentes como Amazon S3, Microsoft Azure Data Lake Storage, Google Cloud Storage y HDFS. Añade a los lagos de datos transacciones ACID, gestión de metadatos, versionado de datos, aplicación de esquemas y evolución de esquemas. Databricks Lakehouse Platform utiliza Delta Lake, Spark y MLflow en un servicio en la nube que se ejecuta en AWS, Microsoft Azure y Google Cloud para combinar la gestión de datos y el rendimiento que suelen tener los data warehouses con los almacenes de objetos flexibles y de bajo costo que ofrecen los lagos de datos.

Google BigQuery: Google BigQuery es un data warehouse en la nube, sin servidor y a escala de petabytes, con un motor interno de BI, aprendizaje automático interno accesible a través de extensiones SQL e integraciones en todos los servicios de Google Cloud, incluidos Vertex AI y TensorFlow. BigQuery Omni amplía BigQuery para analizar datos en las nubes, utilizando Anthos. Data QnA proporciona una interfaz de lenguaje natural para BigQuery. Connected Sheets permite a los usuarios analizar miles de millones de filas de datos de BigQuery en directo en Google Sheets. BigQuery puede procesar consultas federadas, incluyendo fuentes de datos externas en el almacenamiento de objetos (Google Cloud Storage) para los formatos de archivo Parquet y ORC (Optimized Row Columnar), bases de datos transaccionales (Google Cloud Bigtable, Google Cloud SQL) u hojas de cálculo en Google Drive.

Oracle Autonomous Data Warehouse: Oracle Autonomous Data Warehouse es un servicio de data warehouse en la nube que automatiza el aprovisionamiento, la configuración, la seguridad, el ajuste, el escalado y las copias de seguridad del data warehouse. Incluye herramientas para la carga de datos de autoservicio, transformaciones de datos, modelos de negocio, perspectivas automáticas y capacidades integradas de bases de datos convergentes que permiten consultas más sencillas a través de múltiples tipos de datos y análisis de aprendizaje automático. Está disponible tanto en la nube pública de Oracle como en los centros de datos de los clientes con Oracle Cloud@Customer. 

Qubole: Qubole es una plataforma de lago de datos sencilla, abierta y segura para el aprendizaje automático, el streaming y la analítica ad hoc. Está disponible en las nubes de AWS, Azure, Google y Oracle. Qubole le ayuda a ingerir conjuntos de datos de un lago de datos, construir esquemas con Hive, consultar los datos con Hive, Presto, Quantum o Spark, y continuar con su ingeniería de datos y ciencia de datos. Puede trabajar con los datos de Qubole en cuadernos Zeppelin o Jupyter y en flujos de trabajo Airflow.

Rockset: Rockset es una base de datos de análisis operacional. Ocupa un nicho entre las bases de datos transaccionales y los data warehouses. Rockset puede analizar de gigabytes a terabytes de datos recientes, en tiempo real y en flujo, y tiene los índices para hacer que la mayoría de las consultas se ejecuten en milisegundos. Rockset construye un índice convergente sobre datos estructurados y semiestructurados de bases de datos OLTP, flujos y lagos de datos en tiempo real, y expone una interfaz SQL RESTful.

Snowflake: Snowflake es un data warehouse empresarial dinámicamente escalable diseñado para la nube. Se ejecuta en AWS, Azure y Google Cloud. Snowflake cuenta con capas de almacenamiento, computación y servicios globales que están físicamente separadas, pero lógicamente integradas. Las cargas de trabajo de datos se escalan independientemente unas de otras, lo que convierte a Snowflake en una plataforma adecuada para el almacenamiento de datos, los lagos de datos, la ingeniería de datos, la ciencia de datos, el intercambio moderno de datos y el desarrollo de aplicaciones de datos.

Teradata Vantage: Teradata Vantage es una plataforma de datos multicloud conectada para la analítica empresarial que unifica los lagos de datos, los data warehouses, la analítica y las nuevas fuentes y tipos de datos. Vantage se ejecuta en nubes públicas (como AWS, Azure y Google Cloud), entornos híbridos multi-nube, en las instalaciones con Teradata IntelliFlex, o en hardware básico con VMware.

Vertica: Vertica proporciona un almacén de análisis unificado en las principales nubes públicas y centros de datos locales, e integra los datos en el almacenamiento de objetos en la nube y en HDFS sin obligarle a mover ninguno de sus datos. Vertica ofrece dos opciones de despliegue. Vertica en Modo Empresa se ejecuta en servidores estándar del sector con almacenamiento estrechamente acoplado, lo que ofrece el máximo rendimiento para casos de uso que exigen una capacidad de computación constante. Vertica en modo Eon tiene una arquitectura nativa de la nube que separa la computación del almacenamiento, lo que permite una gestión simplificada para cargas de trabajo variables, con la flexibilidad de aplicar recursos de computación específicos al almacenamiento compartido para diferentes casos de uso empresarial. Vertica in Eon Mode está disponible en Amazon Web Services y Google Cloud Platform, pero no se limita a las implementaciones en la nube pública.

Yandex ClickHouse: Yandex ClickHouse es un sistema de gestión de bases de datos OLAP de código abierto, orientado a columnas, que gestiona volúmenes de datos extremadamente grandes, incluidos datos no agregados, y permite generar informes de datos personalizados en línea y en tiempo real. El sistema es linealmente escalable y puede ampliarse para almacenar y procesar billones de filas y petabytes de datos. ClickHouse está diseñado para trabajar en discos duros normales, lo que significa que el costo por GB de almacenamiento de datos es bajo, pero también se utilizan plenamente las SSD y la RAM adicional si están disponibles.

En ClickHouse, los datos pueden residir en diferentes shards. Cada shard puede ser un grupo de réplicas que se utilizan para la tolerancia a fallas. La consulta se procesa en todos los fragmentos en paralelo. ClickHouse utiliza la replicación multimaster asíncrona. Después de escribirse en cualquier réplica disponible, los datos se distribuyen a todas las réplicas restantes en segundo plano. ClickHouse está disponible como servicio en la nube de Yandex, Altinity (en AWS), Alibaba, SberCloud y Tencent.

Yellowbrick Data Warehouse: Yellowbrick Data Warehouse es una moderna base de datos analítica de procesamiento masivo en paralelo diseñada para las cargas de trabajo más exigentes en lote, en tiempo real, interactivas y mixtas. Yellowbrick le permite aprovisionar data warehouses donde sea necesario, en centros de datos privados, múltiples nubes públicas y el borde de la red. Yellowbrick promueve su uso para el aumento del lago de datos y la modernización del almacén de datos.

Al evaluar los data warehouses en la nube, busque la simplicidad administrativa, la alta escalabilidad, el alto rendimiento, las buenas integraciones y el costo razonable. Pida referencias de clientes, especialmente en el caso de grandes implantaciones, y haga su propia prueba de concepto. Examine explícitamente las capacidades de aprendizaje automático actuales y previstas del proveedor, ya que gran parte del valor empresarial de los data warehouses proviene de la obtención y aplicación de análisis predictivos.

Puede ver también: