No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso Práctico de SQL

Curso Práctico de SQL

Israel Vázquez Morales

Israel Vázquez Morales

Sharding

26/29
Recursos

Aportes 25

Preguntas 5

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Sharding

Es un tipo de partición horizontal para nuestras bases de datos. Divide las tuplas de nuestras tablas en diferentes ubicaciones de acuerdo a ciertos criterios de modo que para hacer consultas, las tendremos que dirigir al shard o parte que corresponda.

Cuándo usar

Cuando tenemos grandes volúmenes de información estática que representa un problema para obtener solo unas cuantas tuplas en consultas frecuentes.

Inconvenientes

  • Cuando debamos hacer joins frecuentemente entre shards
  • Baja elasticidad. Los shards crecen de forma irregular unos más que otros y vuelve a ser necesario usar sharding (subsharding)
  • La llave primaria pierde utilidad

Interesante la solución del Sharding, investigando un poco más estuve leyendo el uso que le han intentado dar a través de las criptomonedas para bajar el uso del cómputo y que equipos que no sean tan potentes puedan realizar transacciones en criptomonedas, acá el Sharding se presenta como una solución, aunque tiene sus desventajas ya que hay problemas asociados a seguridad que se presentarían en caso de ser aplicado.

Por otro lado es interesante porque Libra de Facebook se planteaba usar el Sharding también desde un inicio.

Sharding
Es una técnica para distribuir las bases de datos de manera horizontal. La palabra viene de shard, que es el pedazo que queda de una ventana rota.

  • Son especialmente buenos para los datos estáticos
  • Una analogía válida para es una pizza (la base de datos) que una sola persona (el servidor) no se puede comer, entonces se parte en porciones que distintas personas (otros servidores) pueden comer.

Desventajas

  • Joins entre shards: no es recomendable para los casos de uso en donde precisaremos información de distintos shards regularmente
  • Baja elasticidad: porque se establece la estructura de antemano y los datos pueden cambiar (por ejemplo si el shard está hecho por fecha y en cierta época hay un pico de tráfico)
  • Reemplaza PK y sus ventajas: si precisamos un mismo rango de valores cuyos datos están en distintos shards

Sharping= Reparte la pizza entre tus amigos hambrientos

Se me antojo la pizza, excelente analogía!

Los Sharding son importantes cuando estamos trabajando con un gran volumen de datos, recorrer consultar frecuentes se hace costoso y muy lento cuando debemos de recorrer cientos de GB o incluso TB, las particiones aquí formar un rol importante. Les comparto un ejemplo en BigQuey que describí sobre este proceso y por que es importante.

https://github.com/sergio2526/BigQuery-fundamentals/blob/master/Modulo1/Tabla _particiones_de_fecha.md

Despues de esta clase nos vamos al curso de como hacer una pizza xd.

Resumen:

Estoy muy impresionado con el profesor Israel Vázquez Morales, el maestro del curso de Base de Datos de Platzi. Su claridad y habilidad para enseñar hacen que sea muy fácil entender los temas. Estoy muy agradecido por su trabajo y dedicación al curso. Él merece un gran reconocimiento por su excelente labor y se lo merece una recompensa por la claridad con la que ha impartido el curso.

SHARDING VS PARTICION DE TABLAS

  • Sharding distribuimos por Tuplas la Data en diferentes servidores.
  • Particion tambien distribuimos por Tuplas la Data pero en la misma Instancia o Servidor.

El Sharding creeria que funciona bien para los Data Warehouse, ya que es Data que lleva almacenada mucho tiempoy no es consultada constantemente, entonces la podemos dividir en Shards por algun concepto que vayamos a usar mucho para realizar Mineria.

existe algun ejemplo usando una base de datos real para aplicar sharding? Se supone que un curso práctico o me equivoco?

a principal ventaja que ofrece la fragmentación para una blockchain es mejorar la escalabilidad. Ya que las transacciones podrán ser procesadas y validadas de forma más rápida, reduciendo la cantidad de tiempo requerida para este proceso. Y por ende, la red tendrá la capacidad de procesar mayor número de transacciones por segundo.

XXV. SHARDING

• Técnica que se utiliza para partir la base de datos
• Es como si la base de datos es una pizza muy grande (Datos/Queris) que en general no te puedes acabar solo (servidor), entonces llamas a otros amigos (otros servidores) para que se coman la pizza. Se divide la pizza (tabla) por algunos criterios que te convienen a ti.
• Problemas del Sharding:
	○ Joins entre shards
	○ Baja elasticidad

Reemplaza PK

Técnica para partir la base de datos para optimizar los tiempos. (Ejemplo de la pizza), como no puedo con toda llamo a otros amigos para comerla toda, asi mismo llamo otros servidores para atender un serie de peticiones diferentes. Divide la data por algún criterio que sea útil para mi. Ejemplos: Sharding por zona geográfica o por datos de hace 5 o 10 años, o por informes nuevos, o por mes para realizar más rápido informes. Para que sea más fácil manejar las peticiones. **Problemas** * Joins entre shards: Traer entre 50 y 150, un poquito de un lado y otro no es óptimo. Tener en cuenta la latencia. * Baja elasticidad: Mucho datos que ingresan, subsharding, se puede volver muy complejo. * Reemplaza PK

Sharding es una técnica de diseño de bases de datos distribuidas que implica dividir los datos de una base de datos en fragmentos más pequeños llamados “shards” o “particiones”. Cada shard es un conjunto independiente de datos y se almacena en un servidor o grupo de servidores separado. El objetivo principal de sharding es mejorar la escalabilidad horizontal de la base de datos, distribuyendo la carga de trabajo entre varios nodos o servidores.

Muy interesante este curso, que gran profesor

Analogía de la pizza , base de datos → pizza, no tengo los recursos para tener toda la masa en un solo servidor, vamos a partir la data en pedasos y poner otros servidores para que cada uno atienda a cada parte Sharding → Divide la data por un criterio en comun, como datos ubicación geográfica .

Otro sistema datos pasados, hace 5 años, otro sistema informes nuevos (todo lo de enero) sharding por meses. Partir una serie de row o tuplas y ponerlo en diferentes lugares , servidores.

[[Sharding]]

Es una técnica de fragmentación en la que se divide una base de datos en fragmentos más pequeños llamados shards, que se almacenan en diferentes ubicaciones geográficas. Cada shard contiene una parte de los datos de la base de datos original y se puede acceder de forma independiente. Esta técnica se utiliza para mejorar el rendimiento y la escalabilidad de una base de datos distribuida, ya que permite que los datos se distribuyan más eficientemente y se accedan con mayor rapidez. Sin embargo, también puede presentar desafíos significativos en términos de complejidad de procesamiento y seguridad.

Este tema me recuerda a las particiones.

El Sharding es un método de partición horizontal de datos en varias instancias de bases de datos. Se recomienda usar Sharding si tienes uno o más de los siguientes desafíos con tu base de datos:

  • Rendimiento: Tu base de datos es lenta o no puede manejar un gran volumen de consultas y transacciones.

  • Escalabilidad: Tu base de datos está alcanzando su capacidad máxima de almacenamiento o no puede manejar un mayor tráfico.

  • Disponibilidad: deseas asegurarte de que tu base de datos permanezca disponible incluso si una o más instancias fallan.

-** Costo:** deseas reducir el costo de ejecutar una única instancia de base de datos grande distribuyendo la carga entre varias instancias más pequeñas.

Es importante tener en cuenta que el Sharding puede generar complejidad y requerir una planificación e implementación cuidadosas para garantizar la coherencia de los datos y evitar otros problemas. Antes de implementar el Sharding, considera enfoques alternativos como el almacenamiento en caché, la optimización de índices y el uso de una instancia de base de datos más potente.

Cuando traemos consultas de todos lados, aunque sea de poquito por poquito, pierde fluidez la consulta.