Las diferencias y conexiones entre bases de datos, hadoop y sistemas de archivos distribuidos
Ampliar las bases de datos relacionales comerciales es caro. Están diseñados para que sea más fácil escalarlos hacia arriba. Para ejecutar una base de datos
más grande, necesitarás comprar una máquina más grande. De hecho, no es raro que los proveedores de servidores comercialicen sus costosas máquinas de alta gama como "servidores de clase base de datos". Pero a veces es posible que necesite procesar conjuntos de datos más grandes y no pueda encontrar una máquina lo suficientemente grande.
Más importante aún, las máquinas de alta gama no son económicas para muchas aplicaciones.
Más importante aún, para muchas aplicaciones, las máquinas de alta gama no son económicas. Por ejemplo, una máquina con cuatro veces el rendimiento de una PC estándar costaría mucho más
que poner las mismas cuatro PC en un clúster. Para un clúster de Hadoop, agregar más recursos significa agregar más máquinas. Los clústeres de Hadoop vienen de serie con entre diez y cien ordenadores. De hecho, si no es para fines de desarrollo, no hay razón para ejecutar Hadoop en un único servidor.
2. Utilice pares clave/valor para reemplazar tablas relacionales.
Uno de los principios básicos de las bases de datos relacionales es almacenar datos en tablas con estructuras de datos relacionales de acuerdo con un patrón determinado. Aunque el patrón relacional tiene una serie de propiedades formales, muchas aplicaciones actuales tratan con tipos de datos que no son adecuados para este patrón. Los archivos de texto, imágenes y XML son excelentes ejemplos. Además, los grandes conjuntos de datos suelen estar no estructurados o semiestructurados.
Hadoop utiliza pares clave/valor como unidad de datos básica y es lo suficientemente flexible como para manejar tipos de datos menos estructurados. En hadoop,
las fuentes de datos pueden adoptar cualquier forma, pero en última instancia se convierten en pares clave/valor para su procesamiento.
3. Reemplazar la consulta declarativa (SQL) con programación funcional (MapReduce)
Básicamente hablando, SQL es un lenguaje declarativo de alto nivel. La forma de consultar datos es declarar los resultados de la consulta deseados y dejar que el motor de la base de datos decida cómo obtener los datos. En MapReduce, usted especifica los pasos reales de procesamiento de datos, al igual que el plan de ejecución del motor SQL; SQL usa declaraciones de consulta, mientras que MapReduce usa scripts y código. Con MapReduce, puede procesar datos de una manera más general que las consultas SQL
. Por ejemplo, puede crear modelos estadísticos complejos de sus datos o cambiar el formato de
datos de imágenes. SQL no se adapta bien a estas tareas.
4.
Tanto los sistemas de archivos distribuidos (dfs) como las bases de datos distribuidas admiten el depósito, la eliminación y la eliminación. Pero los sistemas de archivos distribuidos son más toscos y pueden usarse como acceso clave/valor. Las bases de datos distribuidas implican refinar datos, mientras que las bases de datos relacionales distribuidas tradicionales definen patrones de grupos de elementos de datos, con menor granularidad de almacenamiento y eliminación.
Los sistemas de archivos distribuidos ahora son más conocidos como GFS (non-open source), HDFS (Hadoop Distributed File System).
Las bases de datos distribuidas ahora se llaman Hbase y oceanbase se basa en HDFS, mientras que oceanbase es su sistema de archivos distribuido interno
También se puede decir que las bases de datos distribuidas se basan en la distribución. sistema de archivos como almacenamiento básico.