Acceso a Datos para soluciones altamente escalables usando SQL, NoSQL y Almacenamiento políglota

Documentos relacionados
Si soy un desarrollador, qué debo conocer de SQL Server?

Modelos Multidimensionales con Analysis Services Primeros Pasos

Optimización de motores SQL Server desde el código hasta la administración

Septiembre 12, Bogotá, Colombia. #sqlsatbogota

El Sistema Gestor de Base de Datos (DBMS)

Búsqueda de Nuevas Soluciones de Bases de Datos para la Gestión de Espectro. Junio 2013 DANIEL HUMIRE. Solutions in Radiocommunications 0/6

Bases de Datos. Diseño y Programación Avanzada de Aplicaciones. Curso

Big Data y NO-SQL el futuro de la Arquitectura de Información

Alta Disponibilidad en SQL Server: AlwaysOn

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE ESTUDIOS SUPERIORES CUAUTITLÁN LICENCIATURA EN INFORMÁTICA

Introducción a Big Data

Administering System Center Configuration Manager

Developing ASP.NET MVC 4 Web Applications

Bases de datos NoSQL Fernando Berzal,

10776 Developing Microsoft SQL Server 2012 Databases

BASES DE DATOS AVANZADAS Transacciones en MYSQL

BIG DATA. Jorge Mercado. Software Quality Engineer

Administre, Diagnostique y Resuelva problemas sobre su SQL Server

Curso: 10983A Upgrading Your Skills To Windows Server 2016

INSTITUTO INTERNACIONAL EN CONSERVACION DE VIDA SILVESTRE

Bases de datos distribuidas Fernando Berzal,

Visual Basic.net Completo

COMPUTACIÓN EN NUBE. Nuevas tecnologías para antiguas ideas.

Trabajos de Ampliación. Bases de datos NoSQL.

UNIVERSIDAD NACIONAL DE INGENIERIA Dirección de Estudios de Posgrado y Educación Continua UNI-DEPEC

Asignaturas Temas Asignaturas Temas

Aplicaciones Concurrentes

CREAR TABLAS EN BASES DE DATOS CON phpmyadmin. TIPOS DE DATOS BÁSICOS (VARCHAR, INT, FLOAT). INSERTAR FILAS. (CU00840B)

Beneficios del centro de datos del futuro para el mercado bursatil. Mauricio L. García Ramírez Cisco Data Center Product Sales Specialist

Nuevas Características de la Versión 9.1 de PostgreSQL. Alcides Rivera Posso

Manual avanzado Excel 2010

Guía Práctica Ingresa al nuevo mundo de Windows 8

Procesadores de lenguaje Tema 6 La tabla de símbolos

Modelos de Datos Gestión y Modelación de Datos. María Constanza Pabón mcpabon@javerianacali.edu.co

Oracle Database 11g: Conceptos Fundamentales de SQL y PL/SQL Nuevo

Para tener en cuenta

Windows Server Optimizando IT para tu nube. Guillermo Sanchez Daniel S. Levi

acenswhitepapers Bases de datos NoSQL. Qué son y tipos que nos podemos encontrar

Soluciones OLAP con Microsoft Analysis Services

Top-Down Network Design. Tema 9

ISValue Portal c/pujades, Barcelona (Barcelona)

MANUAL DEL PROGRAMA EXCEL LABORAL

Daniel Laco Director Ejecutivo

PROGRAMACIÓN VISUAL III (Power Builder)

Windows Server 2012 FAILOVER CLUSTERING

Big Data: retos a nivel de desarrollo. Ing. Jorge Camargo, MSc, PhD (c) jcamargo@bigdatasolubons.co

Bases de Datos NoSql. Conceptos generales. Lic. Gerardo Rossel Lic. Fernando Bugni

PROPUESTA DE APROBACIÓN DE CURSO DE ESPECIALIZACIÓN Y ACTIVIDADES ACADÉMICAS ORIENTADAS A LA FORMACIÓN

Crear emprendedores con soluciones útiles a la sociedad.

SISTEMAS DE ARCHIVOS DISTRIBUIDOS

VISUAL BASIC.NET. NIVEL COMPLETO

Modelo de Gobierno de Datos con SPARK

Oracle Database: Introducción a SQL

GUÍA DOCENTE DE LA ASIGNATURA

Introducción a las Bases de Datos

Oracle Database: Programación con PL/SQL

Arquitectura y Diseño de Software

Tabla de Símbolos. Programación II Margarita Álvarez

Software Libre para Aplicaciones de Big Data

PROGRAMAS DE ESPECIALIZACIÓN EN COMPUTACIÓN E INFORMÁTICA (PECI)

IVista: es la interfaz con la que el Presentador se comunica con la vista.

Toda nuestra Experiencia a tu alcance

Durabilidad diferida de transacciones y mejoras en gestión de bloqueos para tareas administrativas en SQL Server 2014

18 y 19 Sistemas de Archivos Distribuidos y Tarea 05

Instalación de Casandra Para instalar cassandra se recomienda tener la última versión de JAVA instalada.

ORACLE DEVELOPER 10g

Aprender a desarrollar con JavaScript

INNOVACIONES TECNOLÓGICAS UNOMAS.EC S.A. MANUAL DE USUARIO. Bodegas Móvil

El piano, el camión y los vochos

Virtualización Open Source. Virtulización basado en Linux para escritorios y servidores con compatibilidad para Microsoft Windows

TBK NEO PC Viewer Manual de usuario

Módulo 7. Administración de MySQL

UNIVERSIDAD NACIONAL FEDERICO VILLARREAL FACULTAD DE INGENIERÍA ELECTRÓNICA E INFORMÁTICA SÍLABO ASIGNATURA: TALLER DE BASE DE DATOS

Big Data y Seguridad

Capa de datos con Entity Framework Jorge Bustos

Lección 1. Estructura de las Tablas Bases de Datos para la creación de informes de Tabla Dinámica.

Sistemas Escalables. Club de Investigación Tecnológica San José, Costa Rica. Theodore Hope

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO

CURSOS DE VERANO 2014

SOLUCIONES DE RENDIMIENTO MÓVIL

Plan 95 Adecuado. Visión:

PROGRAMAS DE ESPECIALIZACIÓN EN COMPUTACIÓN E INFORMÁTICA (PECI)

Mitos y Realidades del Big Data -Introducción al Big Data-

Buenas Prácticas en Bases de Datos. María del Pilar Angeles. Posgrado de la Facultad de Ingeniería, UNAM.

Utilizando MDT 2013 para instalaciones automatizadas de Sistemas Operativos Microsoft

- Acción para errores de comandos de lotes o sqlcmd. - Se conecta a una instancia de SQL Server.

CUTCSA INFO Manual del Usuario

Desarrollo de sitios web basados en JavaScript y HTML5 con Visual Studio 2012

FORMACIÓN PARA LA CERTIFICACIÓN OFICIAL MICROSOFT. MCSA: SQL Server Solutions Associate

Características de las BD NoSQL

MCTS Exchange Server 2010 Administración. Fabricante: Microsoft Grupo: Servidores Subgrupo: Microsoft Exchange Server 2010

Tipos de Arquitecturas usadas en MMOG

Diseño del proceso de lubricación - (LPD)

BASES DE DATOS - SQL. Javier Enciso

Tecnología de Información

formación CURSO ONLINE de Administración de vsphere IVA

DIPLOMADO EN PRUEBAS PARA EVALUACION NEUROPSICOLOGICA.

INTRODUCCIÓN A BASE DE DATOS. Excel - Access

Oracle Database 10g: Conceptos Básicos de SQL y PL/SQL

Transcripción:

Acceso a Datos para soluciones altamente escalables usando SQL, NoSQL y Almacenamiento políglota Walter Montes Delgado Most Valuable Professional MCSA, MCSD, MCPD, MCITP, MCT @tewar93 http://waltermontes.com

#SQLSat443

Patrocinadores del SQL Saturday Gold Sponsor Bronze Sponsor Geek Sponsor

Walter Montes Delgado Solutions Architecture Consultant en Enhance Solutions Microsoft MVP ASP.NET/IIS CR Developers.NET http://waltermontes.com

Entrando en contexto??? 1998 NoSQL 1969 Relational Model

Modelos relacionales

Modelos relacionales

Modelos relacionales Capa de mappeo Bases de datos a entidades Entidades a base de datos Esfuerzo/tiempo Rendimiento

Modelos relacionales Los requerimientos cambian, los procedimientos cambian, y las aplicaciones? Análisis de impacto detallados Crecimiento de cantidad de datos Cientos? Ok Miles? Ummm Millones?

Modelos relacionales Alta disponibilidad y escalabilidad = altos costos

Modelos relacionales Agilidad y programabilidad Flexibilidad Rendimiento y escalabilidad Disponibilidad

Modelos relacionales Rendimiento y escalabilidad Scale up Aumentar proporcionalmente Scale out Escalar horizontalmente

Internet Usuarios concurrentes Volúmenes de tráfico Más datos a capturar Globalización

No sólo SQL Nube Llave/Valor No estructura Grafos Escalable No SQL Documentos No Relacional Internet Agilidad BigData Columna-Familia

Qué es NoSQL? No sólo SQL (relacional)

Entonces cómo se almacenan datos? Almacenamiento Llave/Valor (key/value store) Bases de datos de Documentos (document databases) Bases de datos Columna-Familia (column-family database) Bases de datos de Gráfos (graph databases)

Almacenamiento Llave/Valor Tablas de Hash 18

Almacenamiento Llave/Valor Función Hash 0 1 2 3 4 5 Toma la primera letra de la llave

Almacenamiento Llave/Valor Insert Key: Amarillo Función Hash 0 1 2 3 4 5 Resultado: Posición 0

Almacenamiento Llave/Valor Search Key: Dorado Función Hash 0 Amarillo 1 Blanco 2 Café 3 4 5 Resultado: Posición 3

Almacenamiento Llave/Valor Insert Key: Azul Función Hash Colisión 0 Amarillo Azul 1 Blanco 2 Café 3 4 5

Almacenamiento Llave/Valor n Insert Key: Ámbar Función Hash 0 Amarillo Azul Ámbar 1 Blanco 2 Café 3 k 4 5 Colisión n=10 k=1,000 10,000 0.01 microsegundos n=10 k=1 10 0.00001 microsegundos O(n/k) O(n)

Bases de datos de Documentos Documento: colección de campos nombrados y valores XML, YAML, JSON, BSON

Bases de datos de Documentos Participantes ParticipacionCharlas Charlas PK Cedula PK ParticipacionCharlaId PK CharlaId Nombre FK ParticipanteId Titulo ApellidoMaterno FK CharlaId HoraInicio ApellidoPaterno FK CedulaExpositor FechaNacimiento EmpresaId Expositores TelefonosParticipantes PK TelefonoId FK CedulaParticipante Telefono EmpresasParticipantes PK EmpresaId Nombre PK Cedula Nombre ApellidoMaterno ApellidoPaterno TipoTelefonoId

Bases de datos de Documentos Participantes PK Cedula Nombre ApellidoMaterno ApellidoPaterno FechaNacimiento EmpresaId TelefonosParticipantes EmpresasParticipantes PK TelefonoId PK EmpresaId FK CedulaParticipante Nombre Telefono TipoTelefonoId

Base de datos de Documentos Identificador 1234 { 1235 Valor } Cedula: 1000000, Nombre: { Nombre: Walter, ApellidoMaterno: Montes, ApellidoPaterno: Delgado }, FechaNacimiento: { Anno:0000, Mes: 00, Dia: 00 }, Telefonos:{ [ { Telefono: 1111-2222, TipoTelefono: Cel }, { Telefono: 1111-4444, TipoTelefono: Casa } ] }, EmpresaId: 1

Bases de datos Columna-Familia Denormalización

Bases de datos Columna-Familia

Bases de datos Columna-Familia

Bases de datos de gráfos Relaciones de las entidades Nodos (nodes) y bordes (edges) Consultas y analizar relaciones entre entidades

Bases de datos de gráfos

Bases de datos de gráfos

Importante Agregados siempre en mente Como se consultarán los datos Como se procesará la información en las operaciones 34

CÓMO FUNCIONA EN UN MUNDO REAL?

Algunos problemas comunes en sistemas distribuidos Alta Disponibilidad Escalabilidad y reducción de latencia de red Consistencia eventual? No uniformidad y esquemas

Alta disponibilidad SQL Consistencia Clustering Altos recursos No SQL Disponibilidad Consistencia baja prioridad Eventualmente consistente

Alta disponibilidad SQL Consistencia Clustering Altos recursos No SQL Disponibilidad Consistencia baja prioridad Eventualmente consistente

Alta disponibilidad Primary/Secondary Replication y Peer to Peer Replication

Alta disponibilidad Primary/Secondary Replication 1 Insertar 2 Confirmar Application1 4 Replicar Primary Secondary

Alta disponibilidad Peer to Peer Replication 1 Insertar 2 Confirmar Application1 Replicar Peer1 1 Insertar 2 Confirmar Application2 Peer2

Escalabilidad y reducir la latencia de red Diseñar con agregados y sharding en mente Distribución geográfica Tipos de Sharding Shared Nothing Auto Sharding

Escalabilidad y reducir la latencia de red Porqué Sharding es más sencillo en nosql? Usuarios Id Nombre Apellido Apellido2 1 Linus Benedict Torvalds 2 William Gates III 3 Shakira Mebarak Ripoll Telefonos Id UserId Telefono Tipo 134 1 1234-1234 Cel 135 2 2555-564 Cel 136 3 7896-1235 Cel 137 3 5555-5547 Home

Escalabilidad y reducir la latencia de red Porqué Sharding es más sencillo en nosql? Usuarios Telefonos Id Nombre Apellido Apellido2 Id UserId Telefono Tipo 1 Linus Benedict Torvalds 134 1 1234-1234 Cel Conocer las relaciones de Usuarios las tablas y datos Telefonos para hacer un sharding Id Nombre Apellido Apellido2 adecuado Id UserId Telefono Tipo 2 William Gates III 135 2 2555-564 Cel 3 Shakira Mebarak Ripoll 136 3 7896-1235 Cel 137 3 5555-5547 Home

Escalabilidad y reducir la latencia de red Porqué Sharding es más sencillo en nosql? Usuarios Id Nombre Apellido U1 Apellido2 1 Linus Benedict Torvalds Telefonos Id UserId Telefono T1 Tipo 134 1 1234-1234 Cel Usuarios Id Nombre Apellido Apellido2 U2 2 William Gates III 3 Shakira Mebarak Ripoll Telefonos Id UserId Telefono Tipo 135 2 2555-564 T2 Cel 136 3 7896-1235 Cel 137 3 5555-5547 Home

Escalabilidad y reducir la latencia de red Porqué Sharding es más sencillo en nosql? U1 U2 T2 T1

Escalabilidad y reducir la latencia de red Usando almacenamiento con documentos Usuarios Id: 1, Nombre: Linus, Apellido: Benedict, Apellido2: Torvalds, Telefonos: [ { Telefono:1234-1234, Tipo: Cel } ] Id: 2, Nombre: William, Apellido: Gates, Apellido2: III, Telefonos: [ { Telefono:2555-564, Tipo: Cel } ] Id: 1, Nombre: Shakira, Apellido: Mebarak, Apellido2: Ripoll, Telefonos: [ { Telefono:7896-1235, Tipo: Cel }, { Telefono: 5555-5547, Tipo: Home } ] Usuarios Id: 1, Nombre: Linus, Apellido: Benedict, Apellido2: Torvalds, Telefonos: [ { Telefono:1234-1234, Tipo: Cel } ] Usuarios Id: 2, Nombre: William, Apellido: Gates, Apellido2: III, Telefonos: [ { Telefono:2555-564, Tipo: Cel } ] Id: 1, Nombre: Shakira, Apellido: Mebarak, Apellido2: Ripoll, Telefonos: [ { Telefono:7896-1235, Tipo: Cel }, { Telefono: 5555-5547, Tipo: Home } ]

Escalabilidad y reducir la latencia de red Usando almacenamiento con documentos Usuarios Id: 1, Nombre: Linus, Apellido: Benedict, Apellido2: Torvalds, Telefonos: [ { Telefono:1234-1234, Tipo: Cel } ] Id: 2, Nombre: William, Apellido: Gates, Apellido2: III, Telefonos: [ { Telefono:2555-564, Tipo: Cel } ] Id: 1, Nombre: Shakira, Apellido: Mebarak, Apellido2: Ripoll, Telefonos: [ { Telefono:7896-1235, Tipo: Cel }, { Telefono: 5555-5547, Tipo: Home } ] Usuarios Id: 1, Nombre: Linus, Apellido: Benedict, Apellido2: Torvalds, U1 Telefonos: [ { Telefono:1234-1234, Tipo: Cel } ] Usuarios Id: 2, Nombre: William, Apellido: Gates, Apellido2: III, Telefonos: [ { Telefono:2555-564, Tipo: Cel } ] U2 Id: 1, Nombre: Shakira, Apellido: Mebarak, Apellido2: Ripoll, Telefonos: [ { Telefono:7896-1235, Tipo: Cel }, { Telefono: 5555-5547, Tipo: Home } ]

Escalabilidad y reducir la latencia de red Porqué Sharding es más sencillo en nosql? U2 U1

Mejorando la consistencia Sharding y replicación aumentan el riesgo de inconsistencias Quórums de lectura y escritura Como un consenso Versionar datos y resolver conflictos

Mejorando la consistencia - Quórums de lectura { Nombre: Walter, Apellido: Montes } Db.users.findOne( {Id:1} ) { Nombre: Walter, Apellido: Montes } { Nombre: Walter, Apellido: Montes } Read Quorum

Mejorando la consistencia - Quórums de escritura Ok, estoy listo Db.users.insert( {Nombre: Walter, Apellido: Montes } ) Esperando... Ok, estoy listo Write Quorum

Versionar datos y resolver conflictos Escenario común 4. Update object Bloqueo pesimista App1 Bloqueo optimista 1. Find(1) 3. Update Object App2 2. Find(1) Database

Versionar datos y resolver conflictos Bloqueo optimista 1. Obtiene el dato y la versión 2. Si intenta actualizar verifica la versión 3. Si no ha cambiado actualiza 4. Si cambió, retorna los datos actuales y retorna antes del paso 2 Identificador y timestamp

Versionar datos y resolver conflictos Problemas de sincronización de horarios Viernes 25 de Abril, 4:25am Jueves 24 de Abril, 1:25pm

Versionar datos y resolver conflictos Vector Clocks Vector Clocks App1 App2 Insertar A:1 Server:A Server:B

Versionar datos y resolver conflictos Vector Clocks Vector Clocks App1 App2 A:1 A:1 A:1 Sincroniza Server:A Server:B

Versionar datos y resolver conflictos Vector Clocks Vector Clocks App1 Modifica App2 Modifica A:2 A:1, B:1 Server:A Server:B

Versionar datos y resolver conflictos Vector Clocks Vector Clocks App1 App2 A:2 A:1, B:1 Conflicto Sincronizar Server:A Server:B

No uniformidad y esquemas Diseño de la base de datos Crear columnas con tipos de datos, rangos, si permite o no nulos, etc Depende Depende Cambia

No uniformidad y esquemas Con nosql y sin esquema Depende Depende Se actualiza sin problemas Cambia

Puedo usar NoSQL siempre?

Usos comunes de NoSQL Almacenamiento de sesiones y perfiles de usuario (preferencias) Contenido y metadatos Móviles Caché (búsquedas populares, objetos, páginas) E-Commerce Juegos y aplicaciones cambiantes Análisis y almacenamiento de datos sociales

Servidores Llave/Valor

Servidores Documentos

Servidores Columna-Familia

Servidores Gráfos

No SQL SOLUCIONES POLIGLOTAS

Soluciones políglotas

Demostración DocumentDB ESTUDIANTES SQL Azure DISTRIBUCIÓN AULAS Table Storage AULAS

PREGUNTAS Y RESPUESTAS contacto @waltermontes.com waltermontes.com Walter Montes Delhado @tewar93

Evaluaciones Evaluacion del evento http://www.sqlsaturday.com/443/eventeval.aspx Evaluacion de las charlas http://www.sqlsaturday.com/443/sessions/sessionevaluation.aspx

Proxima sesion Titulo proxima conferencia