diff --git a/BigData-es001.html b/BigData-es001.html index dd9da3f..5c8926f 100644 --- a/BigData-es001.html +++ b/BigData-es001.html @@ -171,6 +171,7 @@
  • Ingesta y almacenamiento de datos
  • Bases de datos para Big Data
  • Consulta y visualización de datos
  • +
  • Tutorial MongoDB
  • Frameworks y aplicaciones
  • Tutorial Apache Hadoop
  • @@ -399,7 +400,7 @@

    Contents

  • Análisis prescriptivo
  • Big Data analytics y Business Intelligence
  • Fuentes libres de datos
  • -
  • Herramientas para Big Data
  • +
  • ASF: Herramientas para Big Data
  • Apache Hadoop
  • Módulos de Apache Hadoop
  • @@ -422,7 +423,7 @@

    Big Data y el análisis de datos -
  • En el pasado solo las grandes organizaciones podían aprovecharse de Big Data.

    +
  • En el pasado solo las grandes organizaciones podían aprovecharse de Big Data:

    • Walmart, Google, agentes financieros especializados.

    @@ -582,7 +583,7 @@

    2021 Machine Learning, AI and Data (MAD) Landscape

    MAD 2024#

    -
    -

    Herramientas para Big Data#

    +
    +

    ASF: Herramientas para Big Data#

    +
      +
    • La ASF (Apache Software Foundation) https://apache.org/ desarrolla, administra e incuba cientos de proyectos de código de fuente abierta (open source) de nivel empresarial utilizados mundialmente.

    • +
    • Actualmente administra más de 70 proyectos relacionados con Big Data https://projects.apache.org/projects.html?category#big-data.

    • +
    • Entre ellos, se pueden mencionar Hadoop para el procesamientos en lotes (batch processing) de grandes conjuntos de datos, Spark para procesamiento in-memory de datos y analítica, Kafka para la ingesta de datos en tiempo real y streaming; y Cassandra o HBase almacenamiento NoSQL escalable de datos.

    • +
    • El blog de la ASF se encuentra en https://news.apache.org/.

    • +

    Apache Hadoop#

    @@ -1267,7 +1275,7 @@

    Módulos de Apache HadoopAnálisis prescriptivo

  • Big Data analytics y Business Intelligence
  • Fuentes libres de datos
  • -
  • Herramientas para Big Data
  • +
  • ASF: Herramientas para Big Data
  • Apache Hadoop
  • Módulos de Apache Hadoop
  • diff --git a/BigData-es002.html b/BigData-es002.html index eb28848..36e3f8d 100644 --- a/BigData-es002.html +++ b/BigData-es002.html @@ -171,6 +171,7 @@
  • Ingesta y almacenamiento de datos
  • Bases de datos para Big Data
  • Consulta y visualización de datos
  • +
  • Tutorial MongoDB
  • Frameworks y aplicaciones
  • Tutorial Apache Hadoop
  • @@ -375,10 +376,23 @@

    Contents

  • Ingestión de datos
  • Cuestiones a considerar
  • Buenas prácticas en ingestión de datos
  • -
  • Herramientas para la ingesta de datos
  • -
  • Otras herramientas
  • -
  • Sistemas de mensajería
  • Problemas en la ingesta de datos
  • +
  • Procesamiento de datos en tiempo real
  • +
  • Apache Spark
  • +
  • Apache Flume
  • +
  • Apache Flink
  • +
  • Sistemas de mensajería
  • +
  • Apache Kafka
  • +
  • Apache ActiveMQ
  • +
  • Apache Pulsar
  • +
  • Pub/Sub
  • +
  • Otras herramientas
  • +
  • Logstash
  • +
  • Apache Nifi
  • +
  • Apache Beam
  • +
  • Apache Samza
  • +
  • Apache Airflow
  • +
  • Otras herramientas
  • Modelo semántico de datos (SDM)
  • Almacenamiento de datos (Data Storage)
  • Persistencia políglota
  • @@ -391,11 +405,13 @@

    Contents

  • Amazon Services
  • Microsoft Azure Data Lake Store
  • Google BigQuery
  • -
  • Databricks
  • +
  • Lagos de datos
  • Snowflake
  • +
  • Databricks
  • Delta Lake
  • Apache Iceberg
  • Apache Hudi
  • +
  • Apache XTable
  • NoSQL databases
  • Herramientas Apache para Big Data
  • Apache Mesos
  • @@ -476,7 +492,7 @@

    Cuestiones a considerar + +
    +

    Apache Samza#

    +
    +
    +

    Apache Airflow#

    -
    -

    Otras herramientas#

    - +
    -
    -

    Problemas en la ingesta de datos#

    - - - -

    Modelo semántico de datos (SDM)#

      -
    • Polyglot Persistance tiene tiempos de respuesta más rápidos.

    • +
    • Polyglot Persistance tiene tiempos de respuesta más rápidos.

    • Las bases de datos NoSQL escalan bien cuando se modelan correctamente para los datos que se desean almacenar.

    • La experiencia de usuario es mejor cuando se aprovecha el poder de múltiples bases de datos al mismo tiempo.

    • -
    • Por ejemplo, si desea buscar productos en una aplicación de comercio electrónico, se utiliza ElasticSearch, que devuelve los resultados en función de la relevancia, lo que MongoDB no puede hacer fácilmente.

      +
    • Por ejemplo, si desea buscar productos en una aplicación de comercio electrónico, se utiliza ElasticSearch, que devuelve los resultados en función de la relevancia, lo que MongoDB no puede hacer fácilmente.

    • Como contrapartida, tiene como desventaja la necesidad de contratar personal especializado para la integración de las bases de datos y una mayor cantidad de recursos de almacenamiento.

    Herramientas de almacenamiento para Big Data#

    @@ -1045,24 +1069,27 @@

    Google BigQuery -

    Databricks#

    +
    +

    Lagos de datos#

    +
    +
    +

    Snowflake#

      -
    • Fundada en 2013 por los creadores originales de Apache Spark, Delta Lake y MLflow, Databricks reúne ingeniería de datos, ciencia y análisis en una plataforma abierta y unificada para que los equipos de datos puedan colaborar e innovar más rápido.

    • -
    • Está alojada en Microsoft Azure.

      +
    • Nacido como almacén de datos Snowflake facilita el almacenamiento, procesamiento, y brinda soluciones analíticas flexibles y veloces de manera fácil con una escalabilidad casi infinita, habilitada automáticamente o sobre la marcha.

    • +
    • Está alojado en Amazon AWS.

    -
    -

    Snowflake#

    +
    +

    Databricks#

      -
    • Permite acceder, integrar y analizar datos de manera fácil y segura con una escalabilidad casi infinita, habilitada automáticamente o sobre la marcha.

    • -
    • Está alojada en Amazon AWS.

      +
    • Fundada en 2013 por los creadores originales de Apache Spark, Delta Lake y MLflow, Databricks reúne ingeniería de datos, ciencia y análisis en una plataforma abierta y unificada para que los equipos de datos puedan colaborar e innovar más rápido.

    • +
    • Está alojado en Microsoft Azure.

    @@ -1095,6 +1122,18 @@

    Apache Hudi
  • Fuente: https://hudi.apache.org/.

  • +
  • Comparativa entre Hudi, Delta Lake e Iceberg:

  • +
  • https://www.onehouse.ai/blog/apache-hudi-vs-delta-lake-vs-apache-iceberg-lakehouse-feature-comparison.

  • + +

    +
    +

    Apache XTable#

    +
      +
    • Apache XTable foca en la interoperabilidad entre los distintos formatos de tablas de lagos de datos como Apache Hudi, Delta Lake, y Apache Iceberg.

    • +
    • Actúa como capa intermedia que traduce los metadatos de los formatos de tablas de la fuente al destino sin necesidad de duplicar o reescribir los ficheros de datos.

    • +
    +
    @@ -1130,7 +1169,7 @@

    NoSQL databases

    Herramientas Apache para Big Data#

      -
    • Algunas de las herramientas de la Apache Software Foundation https://apache.org/ para Big Data:

    • +
    • Algunas de las herramientas de la ASF (Apache Software Foundation) https://apache.org/ para Big Data:

    @@ -1148,7 +1187,7 @@

    Apache Mesos -
  • Una comparativa entre las tecnologías Apache mesos junto al gestor de contenedores Marathon https://mesosphere.github.io/marathon/ y Kubernetes:

    +
  • Una comparativa entre las tecnologías Apache Mesos junto al gestor de contenedores Marathon https://mesosphere.github.io/marathon/ y Kubernetes:

    @@ -1265,10 +1304,23 @@

    Apache Sentry (Attic)Ingestión de datos

  • Cuestiones a considerar
  • Buenas prácticas en ingestión de datos
  • -
  • Herramientas para la ingesta de datos
  • -
  • Otras herramientas
  • -
  • Sistemas de mensajería
  • Problemas en la ingesta de datos
  • +
  • Procesamiento de datos en tiempo real
  • +
  • Apache Spark
  • +
  • Apache Flume
  • +
  • Apache Flink
  • +
  • Sistemas de mensajería
  • +
  • Apache Kafka
  • +
  • Apache ActiveMQ
  • +
  • Apache Pulsar
  • +
  • Pub/Sub
  • +
  • Otras herramientas
  • +
  • Logstash
  • +
  • Apache Nifi
  • +
  • Apache Beam
  • +
  • Apache Samza
  • +
  • Apache Airflow
  • +
  • Otras herramientas
  • Modelo semántico de datos (SDM)
  • Almacenamiento de datos (Data Storage)
  • Persistencia políglota
  • @@ -1281,11 +1333,13 @@

    Apache Sentry (Attic)Amazon Services
  • Microsoft Azure Data Lake Store
  • Google BigQuery
  • -
  • Databricks
  • +
  • Lagos de datos
  • Snowflake
  • +
  • Databricks
  • Delta Lake
  • Apache Iceberg
  • Apache Hudi
  • +
  • Apache XTable
  • NoSQL databases
  • Herramientas Apache para Big Data
  • Apache Mesos
  • diff --git a/BigData-es003.html b/BigData-es003.html index 3b24a85..d1e9a3b 100644 --- a/BigData-es003.html +++ b/BigData-es003.html @@ -171,6 +171,7 @@
  • Ingesta y almacenamiento de datos
  • Bases de datos para Big Data
  • Consulta y visualización de datos
  • +
  • Tutorial MongoDB
  • Frameworks y aplicaciones
  • Tutorial Apache Hadoop
  • @@ -389,6 +390,7 @@

    Contents

  • Tutorial Redis
  • +
  • Apache Ignite
  • Bases de datos columnares
  • Apache Cassandra
  • Bases de datos columnares#

    @@ -857,18 +875,27 @@

    Apache Cassandra -
  • Híbrida

  • +
  • Híbrida:

    +
    • La arquitectura sin servidor maestro y la baja latencia significan que Cassandra resistirá una interrupción completa del centro de datos sin pérdida de datos, en nubes públicas o privadas, o en las instalaciones.

    +
  • +
      -
    • Tolerante a fallos

    • +
    • Tolerante a fallos:

      +
      • El soporte de Cassandra para la replicación en varios centros de datos es el mejor de su clase, lo que proporciona una latencia más baja para sus usuarios y la tranquilidad de saber que puede sobrevivir a las interrupciones regionales.

      • Los nodos con fallas se pueden reemplazar sin tiempo de inactividad.

      +
    • +
      -
    • Centrada en la calidad

    • +
    • Centrada en la calidad:

      +
      • Para garantizar la confiabilidad y la estabilidad, Cassandra se prueba en clústeres de hasta 1,000 nodos y con cientos de casos de uso y esquemas del mundo real probados con pruebas de reproducción, fuzz, basadas en propiedades, inyección de fallas y de rendimiento.

      +
    • +
    @@ -1149,6 +1182,7 @@

    Amazon NeptuneTutorial Redis +
  • Apache Ignite
  • Bases de datos columnares
  • Apache Cassandra
      -
    • En este apartado se verán las fases de análisis y consulta de datos, y visualización.

    • +
    • En este apartado se verán las fases de procesamiento, análisis y consulta de datos; y visualización.

  • @@ -509,6 +520,14 @@

    Apache Scoop (Attic) +

    Motores de consultas#

    +
      +
    • Los motores de consultas SQL (SQL query engine) permiten realizar consultas a grandes cantidades de datos (terabytes o petabytes) en distintas fuentes simultáneamente.

    • +
    • Las consultas pueden localizar datos, actualizarlos, agregarlos, etc.

    • +
    • Entre las herramientas más populares de esta categoría se encuentran Spark, Impala, Hive, y Presto/Trino; entre otras.

    • +
    +

    Apache Spark#

      @@ -523,9 +542,9 @@

      Apache Spark -

      Apache Storm#

      -
        -
      • Es un sistema distribuido open source para procesar datos en tiempo real durante la ingesta de datos.

      • -
      • Es escalable, tiene tolerancia a fallos, y es fácil de configurar y operar.

      • -
      • Facilita el procesamiento confiable de flujos ilimitados de datos, haciendo para el procesamiento en tiempo real lo que Hadoop hizo para el procesamiento por lotes.

        - -
      • -
      -
        -
      • No existe ningún truco que convierta a Hadoop en un sistema en tiempo real.

      • -
      • El procesamiento de datos en tiempo real tiene un conjunto de requisitos fundamentalmente diferente al procesamiento por lotes.

      • -
      • Apache Storm agrega a Hadoop esta funcionalidad de manera sencilla.

      • -
      -
        -
      • Casos de uso:

        -
          -
        • Análisis en tiempo real

        • -
        • Aprendizaje automático

        • -
        • Monitoreo continuo de operaciones

        • -
        • RPC distribuido, ETL, y más.

        • -
        -
      • -
      -

    -
    -

    Storm vs. Spark#

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    Situation

    Spark

    Storm

    Stream processing

    Batch processing

    Micro-batch processing

    Latency

    Latency of a few seconds

    Latency of milliseconds

    Multi-language support

    Lesser language support

    Multiple language support

    Languages

    Java – Scala

    Java – Scala – Clojure

    Stream sources

    HDFS

    Spout

    Resource management

    Yarn, Mesos

    Yarn, Mesos

    Provisioning

    Basic using Ganglia

    Apache Ambari

    Messaging

    Netty, Akka

    ZeroMQ, Netty

    -

    Apache Impala#

    @@ -726,23 +673,15 @@

    Trino#
  • Se puede descargar el libro Trino: The Definitive Guide, 2nd Edition (los autores son los creadores de Trino) registrándose en https://www.starburst.io/info/oreilly-trino-guide/.

  • -
    -

    Apache Hadoop YARN#

    -
      -
    • Tecnología de gestión de clústeres en Hadoop de segunda generación.

    • -
    • La idea de YARN es dividir las funcionalidades de gestión de recursos y programación/supervisión de trabajos en servicios separados: un ResourceManager (RM) global y un ApplicationMaster (AM) por aplicación.

    • -
    • Una aplicación es un solo trabajo o un DAG de trabajos.

    • -
    • El ResourceManager y el NodeManager forman el framework de cálculo de datos.

    • -
    - +
    +

    Otras herramientas: Hue#

      -
    • El ResourceManager arbitra los recursos entre todas las aplicaciones del sistema.

    • -
    • El NodeManager es el agente del framework por máquina que es responsable de los contenedores, monitorea el uso de sus recursos (cpu, memoria, disco, red) e informa al ResourceManager/Scheduler.

    • +
    • Hue es un asistente open source de SQL para bases de datos y data warehouses.

    • +
    • Provee un editor de código SQL con componentes y autocompletado que permite conectarse a cualquier base de datos.

      + -
        -
      • La aplicación ApplicationMaster es en efecto una biblioteca específica del framework y tiene la tarea de negociar recursos del ResourceManager y trabajar con el/los NodeManager(s) para ejecutar y monitorear las tareas.

      • +
    @@ -756,21 +695,56 @@

    Alluxiohttps://www.alluxio.io/data-orchestration/.

    -
    -

    Otras herramientas#

    +
    +

    Analítica de datos en tiempo real#

    +
    +
    +

    Apache Doris#

      -
    • Vertica es un almacén de datos (data warehouse) de análisis unificado.

    • -
    • Ha sido diseñado para ofrecer velocidad, escalabilidad y aprendizaje automático integrado para cargas de trabajo analíticamente intensivas.

      -
        -
      • Extraído de https://www.vertica.com/landing-page/start-your-free-trial-today/.

      • +
      • Apache Doris es un moderno data warehouse open source para analíticas en tiempo real.

      • +
      • Puede ser utilizado para realizar informes de análisis, consultas ad-hoc, unificar almacenes de datos o acelerar consultas a lagos de datos.

      • +
      • Permite construir aplicaciones para análisis del comportamiento del usuario, A/B testing, log analysis, análisis de perfiles de usuario, o de pedidos de ventas.

      -
    • + +
    +
    +

    Apache Druid#

      -
    • Hue es un asistente open source de SQL para bases de datos y data warehouses.

    • -
    • Provee un editor de código SQL con componentes y autocompletado que permite conectarse a cualquier base de datos.

      +
    • Apache Druid es una base de datos diseñada para análisis en tiempo real (consultas OLAP) en grandes conjuntos de datos.

    • +
    • Se especializa en casos de uso donde la ingesta de datos en tiempo real, un desempeño veloz en las consultas y una disponibulidad alta son importantes.

    • +
    + +
    +
    +

    Apache Kylin#

    +
      +
    • Apache Kylin es un almacén de datos analíticos distribuido de código abierto para Big Data.

    • +
    • Diseñado para proporcionar capacidad OLAP (procesamiento analítico en línea) para Big Data.

    • +
    • Al renovar el cubo multidimensional y la tecnología de precálculo en Hadoop y Spark, Kylin puede lograr una velocidad de consulta casi constante independientemente del volumen de datos en constante crecimiento.

    • +
    • Al reducir la latencia de las consultas de minutos a menos de un segundo, Kylin devuelve la analítica en línea a los grandes datos.

    • +
    + +
    +
    +

    Apache Pinot#

    +
      +
    • Apache Pinot es una plataforma de código abierto de analítica en tiempo real ideal para obtener información ultrarrápida, escalabilidad sin esfuerzo y decisiones rentables basadas en datos.

    • +
    • Fuente: https://pinot.apache.org/.

    • +
    +
    +
    +

    Vertica#

    + @@ -823,8 +797,9 @@

    Prevención y pérdida de datos -

    Visualización de datos#

    +

    +
    +

    Visualización de datos#

    • La fase de visualización o presentación es donde los usuarios pueden sentir el VALOR de los DATOS.

    • La visualización de hallazgos ayuda a tomar mejores decisiones de negocios.

    • @@ -858,7 +833,6 @@

      Visualización de datos

    -

    Elastic Stack#

    Kibana#

    @@ -1022,59 +999,12 @@

    Kibana
  • Cuenta además con herramientas para la línea de comandos:

  • -
    -
    -
    elasticsearch-certgen
    -elasticsearch-certutil
    -elasticsearch-croneval
    -elasticsearch-keystore
    -elasticsearch-migrate
    -
    -
    -
    -
    -
    ---------------------------------------------------------------------------
    -NameError                                 Traceback (most recent call last)
    -Cell In [1], line 1
    -----> 1 elasticsearch-certgen
    -      2 elasticsearch-certutil
    -      3 elasticsearch-croneval
    -
    -NameError: name 'elasticsearch' is not defined
    -
    -
    -
    -
    -
    -
    -
    elasticsearch-node
    -elasticsearch-saml-metadata
    -elasticsearch-setup-passwords
    -elasticsearch-shard
    -elasticsearch-syskeygen
    -elasticsearch-users
    -
    -
    -
    -
    • Un documento en Kibana se compone de campos con valores:

    -
    -
    -
    # Un documento puede contener varios campos con valores
    -{
    -  "name" : "Elastic",
    -  ...
    -  <field> : <value>
    -}
    -
    -
    -
    -
    @@ -1089,7 +1019,7 @@

    Tutorial Elasticsearch

    Salesforce, Amazon, Google y Microsoft#

      -
    • Otras herramientas de modelización y visualización de datos son las proporcionadas por Salesforce, Google y Microsoft.

    • +
    • Otras herramientas de modelización y visualización de datos son las proporcionadas por Salesforce, Amazon, Google y Microsoft.

    • Salesforce adquirió Tableau y google hizo lo mismo con Looker en 2019.

    • La reciente integración entre estos productos le permitirán al usuario modelar datos con LookML y usar Tableau, o Looker para explorar ese modelo.

    @@ -1104,99 +1034,18 @@

    Salesforce, Amazon, Google y Microsoft
  • Amazon ofrece Amazon QuickSight, una herramienta de inteligencia empresarial unificada a hiperescala.

  • -
  • Apache Superset es una moderna plataforma de exploración de datos y visualización.

  • -
  • Documentación: https://superset.apache.org/docs/intro.

  • -
  • Sus características principales son:

  • -
  • Más de 40+ visualizaciones pre-instaladas.

  • -
  • Soporte para drag-and-drop y consultas SQL.

  • -
  • Uso de cache para datos que acelera la carga de informes y gráficos.

  • -
  • Plantillas Jinja para crear dashboards interactivos.

  • -
  • Plantillas CSS para personalizar gráficos e informes.

  • -
  • Capa semántica de transformaciones con el lenguaje SQL.

  • -
  • Filtros avanzados para análisis de datos más profundos.

  • -
  • Acceso a nuevas funcionalidades mediante feature flags.

  • -
  • Fuente https://superset.apache.org/.## Apache Superset

  • -
  • Apache Superset es una moderna plataforma de exploración de datos y visualización.

  • -
  • Documentación: https://superset.apache.org/docs/intro.

  • -
  • Sus características principales son:

  • -
  • Más de 40+ visualizaciones pre-instaladas.

  • -
  • Soporte para drag-and-drop y consultas SQL.

  • -
  • Uso de cache para datos que acelera la carga de informes y gráficos.

  • -
  • Plantillas Jinja para crear dashboards interactivos.

  • -
  • Plantillas CSS para personalizar gráficos e informes.

  • -
  • Capa semántica de transformaciones con el lenguaje SQL.

  • -
  • Filtros avanzados para análisis de datos más profundos.

  • -
  • Acceso a nuevas funcionalidades mediante feature flags.

  • -
  • Fuente https://superset.apache.org/.## Apache Superset

  • -
  • Apache Superset es una moderna plataforma de exploración de datos y visualización.

  • -
  • Documentación: https://superset.apache.org/docs/intro.

  • -
  • Sus características principales son:

  • -
  • Más de 40+ visualizaciones pre-instaladas.

  • -
  • Soporte para drag-and-drop y consultas SQL.

  • -
  • Uso de cache para datos que acelera la carga de informes y gráficos.

  • -
  • Plantillas Jinja para crear dashboards interactivos.

  • -
  • Plantillas CSS para personalizar gráficos e informes.

  • -
  • Capa semántica de transformaciones con el lenguaje SQL.

  • -
  • Filtros avanzados para análisis de datos más profundos.

  • -
  • Acceso a nuevas funcionalidades mediante feature flags.

  • -
  • Fuente https://superset.apache.org/.## Apache Superset

  • -
  • Apache Superset es una moderna plataforma de exploración de datos y visualización.

  • -
  • Documentación: https://superset.apache.org/docs/intro.

  • -
  • Sus características principales son:

  • -
  • Más de 40+ visualizaciones pre-instaladas.

  • -
  • Soporte para drag-and-drop y consultas SQL.

  • -
  • Uso de cache para datos que acelera la carga de informes y gráficos.

  • -
  • Plantillas Jinja para crear dashboards interactivos.

  • -
  • Plantillas CSS para personalizar gráficos e informes.

  • -
  • Capa semántica de transformaciones con el lenguaje SQL.

  • -
  • Filtros avanzados para análisis de datos más profundos.

  • -
  • Acceso a nuevas funcionalidades mediante feature flags.

  • -
  • Fuente https://superset.apache.org/.## Apache Superset

  • -
  • Apache Superset es una moderna plataforma de exploración de datos y visualización.

  • -
  • Documentación: https://superset.apache.org/docs/intro.

  • -
  • Sus características principales son:

  • -
  • Más de 40+ visualizaciones pre-instaladas.

  • -
  • Soporte para drag-and-drop y consultas SQL.

  • -
  • Uso de cache para datos que acelera la carga de informes y gráficos.

  • -
  • Plantillas Jinja para crear dashboards interactivos.

  • -
  • Plantillas CSS para personalizar gráficos e informes.

  • -
  • Capa semántica de transformaciones con el lenguaje SQL.

  • -
  • Filtros avanzados para análisis de datos más profundos.

  • -
  • Acceso a nuevas funcionalidades mediante feature flags.

  • -
  • Fuente https://superset.apache.org/.## Apache Superset

  • -
  • Apache Superset es una moderna plataforma de exploración de datos y visualización.

  • -
  • Documentación: https://superset.apache.org/docs/intro.

  • -
  • Sus características principales son:

  • -
  • Más de 40+ visualizaciones pre-instaladas.

  • -
  • Soporte para drag-and-drop y consultas SQL.

  • -
  • Uso de cache para datos que acelera la carga de informes y gráficos.

  • -
  • Plantillas Jinja para crear dashboards interactivos.

  • -
  • Plantillas CSS para personalizar gráficos e informes.

  • -
  • Capa semántica de transformaciones con el lenguaje SQL.

  • -
  • Filtros avanzados para análisis de datos más profundos.

  • -
  • Acceso a nuevas funcionalidades mediante feature flags.

  • -
  • Fuente https://superset.apache.org/.## Apache Superset

  • -
  • Apache Superset es una moderna plataforma de exploración de datos y visualización.

  • -
  • Documentación: https://superset.apache.org/docs/intro.

  • -
  • Sus características principales son:

  • -
  • Más de 40+ visualizaciones pre-instaladas.

  • -
  • Soporte para drag-and-drop y consultas SQL.

  • -
  • Uso de cache para datos que acelera la carga de informes y gráficos.

  • -
  • Plantillas Jinja para crear dashboards interactivos.

  • -
  • Plantillas CSS para personalizar gráficos e informes.

  • -
  • Capa semántica de transformaciones con el lenguaje SQL.

  • -
  • Filtros avanzados para análisis de datos más profundos.

  • -
  • Acceso a nuevas funcionalidades mediante feature flags.

  • -
  • Fuente https://superset.apache.org/.

    • Google Looker conecta, analiza, y visualiza datos en ambientes multicloud.

    • -
    • Looker puede facilitar la creación de una plataforma de exploración de datos que facilite el acceso a datos de una manera significativa e intuitiva para la organización.

    • +
    • Looker puede facilitar la creación de una plataforma de exploración de datos que facilite el acceso a datos de una manera significativa e intuitiva para la organización.

      + +
    • +

    Consultar documentos#

    @@ -524,130 +489,30 @@

    Consultar documentos
  • Crear una nueva base de datos llamada “inventario”:

  • -
    -
    -
    use inventario
    -
    -
    -
    -
    • Ingresar datos en la base de datos:

    -
    -
    -
    db.inventario.insertMany([
    -   { item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" },
    -   { item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "A" },
    -   { item: "paper", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" },
    -   { item: "planner", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" },
    -   { item: "postcard", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" }
    -]);
    -
    -
    -
    -
    • Seleccionar todos los documentos en “inventario”:

    -
    -
    -
    db.inventario.find( {} )
    -
    -
    -
    -
    • Esta orden es similar a la utilizada en SQL: SELECT * FROM inventario

    • Seleccionar todos los documentos donde la clave “status” es igual a “D”:

    -
    -
    -
    db.inventario.find( { status: "D" } )
    -
    -
    -
    -
    -
    -
    -
    SELECT * FROM inventario WHERE status = "D"
    -
    -
    -
    -
    • Mostrar todos los documents de “inventario” donde “status” es igual a “A” o “D”:

    -
    -
    -
    db.inventario.find( { status: { $in: [ "A", "D" ] } } )
    -
    -
    -
    -
    -
    -
    -
    SELECT * FROM inventario WHERE status in ("A", "D")
    -
    -
    -
    -
    • Recuperar todos los documentos de “inventario” donde “status” es igual a “A” y “qty” es menor que ($lt) 30:

    -
    -
    -
    db.inventario.find( { status: "A", qty: { $lt: 30 } } )
    -
    -
    -
    -
    -
    -
    -
    SELECT * FROM inventario WHERE status = "A" AND qty < 30
    -
    -
    -
    -
    • Recuperar todos los documentos de “inventario” donde “status” es igual a “A” o “qty” es menor que ($lt) 30:

    -
    -
    -
    db.inventario.find( { $or: [ { status: "A" }, { qty: { $lt: 30 } } ] } )
    -
    -
    -
    -
    -
    -
    -
    SELECT * FROM inventario WHERE status = "A" OR qty < 30
    -
    -
    -
    -
    • Recuperar todos los documentos de “inventario” donde “status” es igual a “A” y/o “qty” es menor que ($lt) 30, o item comienza con la letra p:

    -
    -
    -
    db.inventario.find( {
    -     status: "A",
    -     $or: [ { qty: { $lt: 30 } }, { item: /^p/ } ]
    -} )
    -
    -
    -
    -
    -
    -
    -
    SELECT * FROM inventario WHERE status = "A" AND ( qty < 30 OR item LIKE "p%")
    -
    -
    -
    -

    @@ -687,7 +552,7 @@

    Consultar documentos

    previous

    -

    Bases de datos para Big Data

    +

    Consulta y visualización de datos

    Ingesta y almacenamiento de datos
  • Bases de datos para Big Data
  • Consulta y visualización de datos
  • +
  • Tutorial MongoDB
  • Frameworks y aplicaciones
  • Tutorial Apache Hadoop
  • @@ -385,6 +386,7 @@

    Contents

  • Casos de uso de Spark
  • Apache Storm
  • Características de Apache Storm
  • +
  • Storm vs. Spark
  • Apache Kafka
  • Características de Apache Kafka
  • Transmisión de eventos
  • @@ -665,6 +667,7 @@

    Casos de uso de Spark

    @@ -742,6 +745,9 @@

    Características de Apache Storm +

    Storm vs. Spark#

    +

    Apache Kafka#

    Ejecutar tareas de pruebas en Hadoop#

    @@ -476,40 +433,10 @@

    Ejecutar tareas de pruebas en Hadoop -
    -
    hadoop jar /opt/bitnami/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar pi 10 100
    -
    -
    -
    -
    • Ejecutar una tarea con mapreduce involucrando a HDFS

    • Este ejemplo cuenta la cantidad de palabras y letras c que aparecen en el texto

    -
    -
    -
    echo "A Cuesta le cuesta subir la cuesta y en medio de la cuesta va y se acuesta." | \ 
    -hadoop fs -put - /tmp/hdfs-ejemplo-input
    -
    -
    -
    -
    -
    -
    -
    hadoop jar /opt/bitnami/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar \
    -grep /tmp/hdfs-ejemplo-input /tmp/hdfs-ejemplo-output 'c*'
    -
    -
    -
    -
    -
    -
    -
    hadoop fs -cat /tmp/hdfs-ejemplo-output/part-r-00000
    -
    -
    -
    -

    Apache Hive#

    @@ -520,86 +447,19 @@

    Apache Hive
  • Para conectarse a Hive a través de un túnel SSH:

  • -
    -
    -
    beeline -u jdbc:hive2://localhost:10000 -n hadoop
    -
    -
    -
    -
    • Acceder a la información básica

    -
    -
    -
    help
    -
    -
    -
    -
    • Crear una base de datos

    -
    -
    -
    show databases;
    -show tables;
    -
    -
    -
    -
    -
    -
    -
    CREATE DATABASE basededatos;    # También se puede usar la orden CREATE SCHEMA
    -
    -
    -
    -
    • También se puede utilizar JDBC para crear una base de datos.

    • El script se guarda en un fichero llamado HiveCreateDb.java con el siguiente código:

    -
    -
    -
    import java.sql.SQLException;
    -import java.sql.Connection;
    -import java.sql.ResultSet;
    -import java.sql.Statement;
    -import java.sql.DriverManager;
    -
    -public class HiveCreateDb {
    -   private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver";
    -   
    -   public static void main(String[] args) throws SQLException {
    -      // Register driver and create driver instance
    -   
    -      Class.forName(driverName);
    -      // get connection
    -      
    -      Connection con = DriverManager.getConnection("jdbc:hive://localhost:10000/default", "", "");
    -      Statement stmt = con.createStatement();
    -      
    -      stmt.executeQuery("CREATE DATABASE basededatos");
    -      System.out.println(“Base de datos creada exitosamente.”);
    -      
    -      con.close();
    -   }
    -}
    -
    -
    -
    -
    • Para compilar y ejecutar el programa:

    -
    -
    -
    javac HiveCreateDb.java
    -java HiveCreateDb
    -
    -
    -
    -

    Documentación: https://cwiki.apache.org/confluence/display/Hive/GettingStarted

    @@ -607,100 +467,30 @@

    Apache Spark
  • Abrir el puerto 4040

  • -
    -
    -
    sudo ufw allow 4040
    -
    -
    -
    -
    • Crear el fichero a analizar

    -
    -
    -
    vim entrada.txt
    -
    -
    -
    -
    • Entrar a la shell de spark

    -
    -
    -
    spark-shell
    -
    -
    -
    -
    -
    -
    -
    :help
    -
    -
    -
    -
    • Crear el RDD para el fichero entrada.txt

    -
    -
    -
    val inputfile = sc.textFile("entrada.txt")
    -
    -
    -
    -
    • Contar las palabras:

    -
    -
    -
    val counts = inputfile.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey(_+_);
    -
    -
    -
    -
    • Mostrar para tareas de debugging el RDD

    -
    -
    -
    counts.toDebugString
    -
    -
    -
    -
    • Guardar en memoria

    -
    -
    -
    counts.cache()
    -
    -
    -
    -
    • Guardar la salida en un fichero

    -
    -
    -
    val outputfile = sc.textFile("salida.txt")
    -
    -
    -
    -
    • Almacenamiento no persistente de RDD

    -
    -
    -
    counts.unpersist()
    -
    -
    -
    -

    Ejecutar un productor y un consumidor en Kafka#

    @@ -476,54 +426,15 @@

    Ejecutar un productor y un consumidor en Kafka -
    -
    export KAFKA_OPTS="-Djava.security.auth.login.config=/opt/bitnami/kafka/config/kafka_jaas.conf"
    -
    -
    -
    -
    • Crear un nuevo tópico con una única partición y una única réplica.

    -
    -
    -
    /opt/bitnami/kafka/bin/kafka-topics.sh --create --zookeeper \ 
    -SERVER-IP:2181 --replication-factor 1 --partitions 1 --topic test
    -
    -
    -
    -
    • Crear un nuevo productor y generar el mensaje para el tópico.

    -
    -
    -
    /opt/bitnami/kafka/bin/kafka-console-producer.sh --broker-list \
    -SERVER-IP:9092 --producer.config /opt/bitnami/kafka/config/producer.properties --topic test
    -
    -
    -
    -
    -
    -
    -
      Este es mi primer mensaje
    -  ... y este es el segundo
    -
    -
    -
    -
    • Recuperar y presentar los mensajes.

    -
    -
    -
    /opt/bitnami/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 \
    ---topic test --consumer.config /opt/bitnami/kafka/config/consumer.properties --from-beginning
    -
    -
    -
    -

    +
    +

    KDD#

    +
      +
    • El proceso KDD (knowledge discovery in databases) o descubrimiento de conocimiento en bases de datos sirve para extraer conocimiento de los datos en el contexto de grandes bases de datos.

    • +
    • Es utilizado por los investigadores para aprendizaje automático, reconocimiento de patrones en bases de datos, estadísticas, inteligencia artificial, adquisición de conocimiento para sistemas expertos, y visualización de datos.

    • +
    • En este contexto, emplea métodos de minería de datos para extraer lo que se considera conocimiento mediante preprocesamiento, submuestreo y las transformaciones necesarias en los datos.

    • +
    +
      +
    • El proceso KDD puede envolver la repetición de los siguientes pasos:

    • +
    +
      +
    • Desarrollar el conocimiento del dominio de la aplicación, los conocimientos previos, y el objetivo del usuario final.

    • +
    • Establecer un conjunto de datos o un subconjunto de variables, o datos de ejemplo donde el descubrimiento va a ser realizado.

    • +
    • Limpiar outliers, gestionar campos vacíos, eliminar datos innecesarios, etc.

    • +
    • Utilizar métodos de reducción de dimensionalidad o transformación para reducir el número de variables o para encontrar representaciones invariantes de los datos.

    • +
    +
      +
    • Decidir la tarea de minería de daatos a realizar: clasificación, regresión, clustering, etc.

    • +
    • Seleccionar el algoritmo de minería de datos (modelos y parámetros, métodos).

    • +
    • Realizar la minería de datos buscando patrones de interés.

    • +
    • Interpretar los patrones obtenidos.

    • +
    • Consolidad el conocimiento adquirido.

    • +
    + + +

    Minería de datos#

    • La minería de datos (data mining) nació a finales de los años ‘90 cuando las grandes organizaciones ya contaban con una sustancial cantidad de datos.

    • -
    • También llamada exploración de datos (knowledge discovery in databases - KDD) es un campo de la estadística y las ciencias de la computación.

    • -
    • El objetivo de la minería de datos es descubrir patrones en grandes volúmenes de conjuntos de datos (big data).

    • +
    • El objetivo de la minería de datos es descubrir patrones en grandes volúmenes de conjuntos de datos (Big Data).

    • Se podría también definir data mining como la aplicación de algoritmos específicos para extraer patrones de los datos (NIST [CG19]. Pág.26.

    • La minería de datos no solamente necesita conocimientos de estadística y matemática sino además saber como los datos fueron producidos y de que manera se pueden utilizar.

    • +
    +
    • En este contexto, a mediados de los 2000 nació la ciencia de datos que juntaba varias disciplinas para poder extraer información:

      • Conocimiento de los datos y procesos.

      • @@ -563,6 +601,24 @@

        CRISP-DM[She00]

    +
    +

    SEMMA#

    +
      +
    • El modelo SEMMA (Sample,Explore, Modify, Model, Assess) fue desarrollado por la empresa SAS para tareas de datamining y consta de cinco pasos:

    • +
    +
      +
    • Sample: identifica, combina, particiona, y obtiene muestras de conjuntos de datos, entre otras tareas.

    • +
    • Explore: Explora los conjuntos de datos de forma estadística y gráfica; graficando los datos, onteniendo estadísticas descriptivas, identificando variables importantes y realizando análisis de asociación.

    • +
    • Modify: Prepara los datos para el análisis; creando variables adicionales, transformando variables existentes, identificando outliers, reemplazando valores inexistentes, desempeñando cluster analysis, y analizando datos con SOMs (self-organizing maps) o redes Kohonen.

    • +
    +
      +
    • Model: Ajusta un modelo predictivo a una variable objetivo. Entre los modelos disponibles se encuentran los árboles de decisión, redes neuronales, least angle regressions, support vector machines, regresión lineal, y regresiones logísticas.

    • +
    • Assess: Compara los modelos predictivos que compiten entre sí y generan gráficos que representan el porcentaje de encuestados, el porcentaje de respondents captures, el aumento y las ganancias.

    • +
    + +