Acerca de este curso
La tecnología NoSQL fue creada por las compañías líderes de internet – incluyendo Google, Facebook, Amazon y LinkedIn – para acabar con las limitaciones de las antiguas tecnologías de bases de datos relacionales para su uso con las aplicaciones web modernas. Hoy, las empresas están adoptando NoSQL para un amplio número de casos de uso, una elección para cuatro mega tendencias relacionadas: Big Users, Big Data, Internet de las Cosas y Cloud Computing.
Couchbase se ha consolidado en los últimos años como una de las Bases de Datos NoSQL líderes en el mercado, siendo utilizada por desarrolladores de todo el mundo para construir aplicaciones web de empresa, móviles y de Internet de las Cosas que soportan volúmenes masivos de datos en tiempo real.
A lo largo del presente curso, el alumno aprenderá la arquitectura y diseño de datos NoSQL utilizando N1QL, lenguaje de consultas SQL declarativo que se extiende por JSON, y focalizándose en el modelado de datos, búsqueda, almacenamiento y acceso para las aplicaciones NoSQL robustas, escalables y de alto rendimiento.
PUE es Training Partner oficial de Couchbase autorizado por dicha multinacional para impartir formación oficial en tecnologías Couchbase NoSQL.
PUE está también acreditado y reconocido para realizar servicios de consultoría y mentoring en la implementación de soluciones Couchbase en el ámbito empresarial con el consiguiente valor añadido en el enfoque práctico y de negocio del conocimiento que se traslada en sus cursos oficiales.
A quién va dirigido
Este curso va dirigido a desarrolladores, arquitectos, ingenieros de software, administradores de bases de datos, mánagers de almacén de datos, analistas de business intelligence, ingenieros de datos y profesionales DevOps que deseen utilizar Couchbase para el modelado de datos, almacenamiento y recuperación.
Para un correcto aprovechamiento del curso se requiere que el alumno este familiarizado con los fundamentos básicos de la programación y conceptos de datos
Objetivos del curso
El curso tiene como objetivo que el alumno aprenda sobre el almacenamiento y acceso a datos de manera rápida a nivel web, en diversos casos de uso de documentos en bases de datos basadas en JSON y utilizando Couchbase Server, N1QL y tecnologías relacionadas.
Contenidos
1.Introducción al curso
2.Introducción al NoSQL
- Reto de las aplicaciones modernas
- Crecimiento del Digital Data
- ¿Por qué no usar una Base de Datos Relacional?
- ¿Qué es el Big Data?
- Estrategias comunes para el manejo de Big Data
- Propiedades ACID en Bases de Datos Relacionales
- BASE
- Teoría de CAP
- Hadoop y NoSQL
- Tipos de NoSQL
- Programación políglota
3.Introducción a Couchbase
- Historia de Couchbase Server
- NoSQL y Couchbase Server
- ¿Qué es Couchbase Server?
- JavaScript Object Notation
- Couchbase como almacenador de claves vs almacenador de documentos
- Almacenar datos en Couchbase Server
- Arquitectura de Couchbase Server
- ¿Qué es Couchbase Document?
- Anatomía de una Aplicación Couchbase
- Lectura, Escritura y Modificación con couchbase
- Cache Miss
- “write path” de Couchbase
- Escalabilidad en Couchbase
- Arquitectura MDS
- Herramientas para integrar en couchbase
4.Características esenciales de N1QL
- JavaScript Object Notation
- Json como formato de base de datos de almacenaje
- Modelo Relacional Vs. JSON
- ¿Qué es N1QL?
- Objetivos de N1QL
- Quien usa N1QL
- Query Workbench
- CBQ
- Características clave de N1QL
- Querying con N1QL
- SELECT Query
- Querying con elementos anidados
- Document Meta-Data
- Realización de Aritmética simple
- Filtrando Documentos
- Búsqueda de Patrones
- Valores NULL y MISSING
- Búsqueda elementos en Arrays anidados con ANY
- Querying utilizando Claves de Documento
- Ordenación y agrupaciones
- Unnest
- Obtener información del sistema
- Querying Datastores
- Querying Namespaces
- Querying Keyspaces
- Querying Indexes
- Array, Objetos y Array de Objetos
- Operadores de recopilación
- Funciones en N1QL
- ARRAY_APPEND(expression, value, ...)
- ARRAY_INTERSECT(expression1, expression2, ...)
- DATE_ADD_MILLIS(date1, n, part)
- Otras funciones Date
- Funciones de búsqueda de patrones
- Funciones Token
- Funciones String
- Subqueries
- Joins
- Join de Documentos con un Key Array
- Sentencias de Manipulación de datos
5.Indexes en N1QL
- Opciones de Index
- Primary Index
- Named Primary Index
- Secondary Index
- Secondary Composite Index
- Functional Index
- Array Index
- Partial Index
- Covering Index
- Duplicate Index
- Intersecar Scans en N1QL
- Análisis Bucket
- Comando INFER
- Indexing Architectures Arquitectura de Indexación
- GSI Vs. Vistas
6.Motor de Querys
- Ejecución de Query
- Servicio Client to Query: REST API
- Fase de análisis
- Fase de planificación
- Fase de escaneo
- Fase de Búsqueda
- Joins
- Filtro
- Aggregate, Sort, Offset, Limit
- Fase de proyección
- Indexes cubiertos y no cubiertos
- Capacidad de administración de nodo de Querys
7.Planning y Optimización de Querys
- Query Planning
- Metodos de Acceso al Data Source
- Index Selection
- Index Scans – Index Scan regulares y de recubrimiento
- Index Scans – CountScan y IndexCountScan
- Index Scans – ValueScan y DummyScan
- Pushdowns - Predicates
- Pushdowns - Order
- Pushdowns - Limit
- Pushdowns - Offset
- Optimización de Querys en N1QL
- Checklist de la optimización de querys
8.Consejos de rendimiento y otras herramientas de N1QL
- Pretty – Query Setting
- UPDATE en Arrays Anidados
- cURL en N1QL
9.Introducción al Data Modeling
- ¿Qué es el Data Modeling?
- Data Modeling para Sistemas Distribuidos
- Data Modeling para Couchbase Server
- Data Modeling conceptual
- Data Modeling Lógico
- Data Modeling Físico
- Data Models usados en este curso
10.Data Modeling para Couchbase Server
- ¿Qué es el Data Modeling?
- Data Modeling para Sistemas Distribuidos
- Data Modeling para Couchbase Server
- Data Modeling Conceptual
- Data Modeling Lógico
- Data Modeling Físico
- Diseño de Documento JSON
- Elecciones de diseño JSON
- Atributos Single Roor
- Objectos vs. Arrays
- Tipos de Array Element
- Formatos de Timestamp
- Nombre de propiedad
- Valores de propiedad de Empty y Null
- JSON Schema
- Anidación de datos (conocido como Desnormalización)
- Diseño de Claves
- Búsqueda de patron de claves
- Realizando Trade-offs
- Escoger decisiones complicadas: Tamaño de documento, Atomicity, Complejidad, velocidad
- Embebido vs Referido
11. Monitorización y Troubleshooting de Querys
- ¿Qué es la monitorización de Querys?
- REST API Endpoints en N1QL
- Vitals
- REST: Solicitudes activas
- REST: Solicitudes completas
- REST: Sentencias preparadas
- REST: Configuración de cache
- SYSTEM Namespaces y monitorización de Querys N1QL
- Utilización de la monitorización N1QL para la resolución de problemas
- Sentencias preparadas con el tiempo de ejecución más alta
- Sentencias preparadas con el mayor número de Counts preparados
- Sentencias no preparadas con el mayor tiempo de ejecución/Número de Counts
- Plans Using Sub-Optimal Indexes Uso de Indexes Sub-Opcionales
- Cancelación de solicitudes revoltosas
- Profiling
12.Características esenciales de las vistas
- ¿Qué es una Vista?
- MapReduce
- Diseñando Documentos
- Trabajar con vistas en la consola web de Couchbase
- Crear una vista de Desarrollo
- Escribir Funciones Map
- Función emit
- Escribir Funciones Reduce
- Incorporar Funciones Reduce
- Vistas group y group_level
- Emitir múltiples filas desde una Función Map
- Emitir Array de Claves
- Casos de Uso de Vistas
- Vista vs. N1QL