¿Qué es la certificación de conocimientos profesionales para ingenieros de software integrado?
Idioma utilizado por CouchDB: Erlang Características: consistencia de base de datos, fácil de usar Licencia: Protocolo Apache: replicación de datos bidireccional HTTP/REST, procesamiento continuo o temporal, verificación de conflictos durante el procesamiento, por lo tanto, el principal - Copia maestra (ver nota 2). Las operaciones MVCC _Write no bloquean las operaciones de lectura. Se pueden guardar versiones anteriores de archivos. Los diseños de solo fallas (confiables) a veces requieren compresión de datos. Vista: Mapeo integrado/vista de formato simplificado: la visualización de lista admite la verificación de documentos del lado del servidor, la autenticación admite actualizaciones en tiempo real basadas en cambios y admite el procesamiento de archivos adjuntos. Por lo tanto, las CouchApps (aplicaciones js independientes) requieren el mejor escenario de aplicación de la biblioteca jQuery: adecuado para datos que no cambian mucho.
Adecuado para aplicaciones que necesitan proporcionar soporte de versión de datos.
Por ejemplo: CRM, sistema CMS.
La replicación maestro-maestro es útil para implementaciones en múltiples sitios.
(Nota 2: Replicación maestro-maestro: es un método de sincronización de bases de datos que permite compartir datos entre un grupo de computadoras, y cualquier miembro del grupo puede actualizar los datos dentro del grupo.< /p >
)2
Idioma utilizado en Redis: C/C Características: se ejecuta extremadamente rápido Licencia: Protocolo BSD: tipo Telnet tiene una base de datos en memoria compatible con almacenamiento en disco duro, pero desde 2
Después de la versión 0, los datos se pueden intercambiar al disco duro (tenga en cuenta que las versiones posteriores a la 2
4 no admiten esta función. La replicación maestro-esclavo (consulte la nota 3) utiliza datos simples o indexados por tablas Hash de valores clave, pero también admite operaciones complejas como
INCR & Co (bueno para calcular valores extremos o estadísticas) admite conjuntos (también admite union/diff/inter). ) y listas (también admite Admite colas; bloqueo de operaciones emergentes) admite tablas hash (objetos con múltiples campos), admite conjuntos ordenados (tablas de puntuación más alta, adecuadas para consultas de rango), Redis admite transacciones y establece datos en datos caducados (similar a diseño de búfer rápido). /Sub permite a los usuarios implementar los mejores escenarios de aplicación del mecanismo de mensajes: adecuado para aplicaciones donde los datos cambian rápidamente y el tamaño de la base de datos es accesible (adecuado para la capacidad de la memoria). precios de acciones, análisis de datos, recopilación de datos en tiempo real, comunicación en tiempo real
(Nota 3: Replicación maestro-esclavo: si solo un servidor maneja todas las solicitudes de replicación al mismo tiempo, esto se llama 3. : Replicación maestro-esclavo, que generalmente se usa en clústeres de servidores que necesitan proporcionar alta disponibilidad
)3
Lenguaje utilizado por MongoDB: C Características: Conserva algunas características amigables de SQL. (consulta, índice)
Licencia: AGPL (iniciador. :Apache) protocolo: copia maestra/esclava binaria (BSON) personalizada (admite recuperación automática de errores, utiliza replicación de colecciones) mecanismo de fragmentación incorporado compatible con javascript consultas de expresión y puede ejecutar funciones javascript arbitrarias en el lado del servidor. El soporte de actualización local es mejor que CouchDB. Mejor que el almacenamiento de datos, que se centra más en el rendimiento que en los requisitos funcionales. función (parámetro _journal), y el tamaño de la base de datos está limitado a aproximadamente 2 Gb. Los mejores escenarios de aplicación para usar GridFS para almacenar big data o metadatos (no un sistema de archivos real) son: adecuado para soporte de consultas dinámicas; para reemplazar funciones de mapa/rece; necesita requisitos de rendimiento para bases de datos grandes; una que requiere CouchDB pero aplicaciones que llenan la memoria porque los datos cambian con demasiada frecuencia.
Por ejemplo, planea usar MySQL o PostgreSQL, pero. le desaniman sus propias columnas predefinidas
Cuatro
p>Lenguaje Riak: Erlang y C, y algunas características de Javascript: tolerancia a fallos. Licencia: Protocolo Apache: HTTP/REST o custombinary. Asignación y replicación ajustables (N, R, W). Utilice JavaScript o Erlang para validación previa o posterior a la operación y soporte de seguridad.
Uniones de mapas/rece y recorridos de unión usando JavaScript o Erlang: se puede utilizar como base de datos de gráficos. Indexación: ingrese los metadatos para buscar (1
La versión 0 será compatible pronto) Soporte de objetos de Big Data (Luwak) Ofrece versiones de "código abierto" y "empresarial" de búsqueda e indexación de texto completo y consultas a través del servidor de búsqueda Riak (versión beta) Admite replicación multisitio sin propietario y licencias comerciales. Los mejores escenarios de aplicación para el monitoreo SNMP: adecuado para situaciones en las que desea utilizar una base de datos similar a Cassandra (similar a Dynamo), pero no puede manejar la hinchazón y la complejidad.
Es adecuado para situaciones en las que planea realizar una replicación de múltiples sitios, pero tiene requisitos de escalabilidad, disponibilidad y manejo de errores de un solo sitio.
Por ejemplo: recopilación de datos de ventas, sistema de control de fábrica; tiene requisitos estrictos sobre el tiempo de inactividad; se puede utilizar como un servidor de red fácilmente actualizado.
Cinco
Lenguaje de Membase: Erlang y C. Características: Compatible con Memcache, pero admite persistencia y agrupación. Licencia: Apache2.
Protocolo 0: el almacenamiento en caché distribuido y la expansión son muy rápidos (200 k/s) y los datos se pueden almacenar permanentemente en el disco duro mediante la indexación de valores clave. Todos los nodos son únicos (réplicas maestro-maestro). En la memoria, también se admiten unidades de caché similares a las cachés distribuidas. Reduzca IO eliminando datos duplicados al escribir datos. Proporciona una muy buena interfaz web de gestión de clústeres. Al actualizar el software, no es necesario detener el servicio de base de datos. Admite agrupación y multiplexación de conexiones. Mejor caso de uso: para agentes de conexión que requieren acceso a datos de baja latencia. Aplicaciones con soporte de alta concurrencia y alta disponibilidad, como: acceso a datos de baja latencia, como aplicaciones de orientación publicitaria, aplicaciones web de alta concurrencia, como juegos en línea (como Zynga) 6.
Lenguaje de segundo nivel: Java Funciones: Licencia de base de datos de gráficos basada en relaciones: GPL, algunas funciones utilizan AGPL/acuerdo de licencia comercial: HTTP/REST (o integrado en Java) se puede utilizar de forma independiente o integrado en Java aplicaciones Los gráficos, los nodos y los bordes pueden tener sus propias capacidades de administración web, con buenos metadatos. Admite la búsqueda de rutas utilizando varios algoritmos, indexa y optimiza las operaciones de lectura utilizando valores y relaciones clave, admite transacciones (usando la API de Java), el lenguaje transversal de gráficos Gremlin admite scripts Groovy, admite copias de seguridad en línea, admite monitoreo avanzado y alta confiabilidad, usa AGPL/ Licencia comercial. Mejor escenario de aplicación: Adecuado para gráficos 1.
Esta es la diferencia más significativa entre las bases de datos secundarias y otras bases de datos NoSQL, como relaciones sociales, redes de transporte público, mapas y topología de red7.
Idioma utilizado por Cassandra: Java Características: Mejor para tablas grandes y Dynamo Licencia: Apache Protocolo: Personalizado, Binario (Económico) Distribución y replicación ajustables (N, R, W) Compatible con La consulta de columna de a cierto rango de valores clave es similar a la función de una tabla grande: columna, y la operación de escritura de un conjunto de columnas de una determinada característica es más rápida que la operación de lectura. Map/rece basado en la plataforma distribuida Apache tanto como sea posible. Admito que estoy predispuesto en contra de Cassandra, en parte debido a su naturaleza inflada y compleja, pero también por problemas con Java (configuración, excepciones, mejores casos de uso: cuando se usan más escrituras que lecturas (registro), si todos los sistemas deben estar escrito en Java (nadie fue despedido por elegir el software Apache), como en las industrias bancaria y financiera (aunque no se requieren para transacciones financieras, estas industrias tendrán mayores requisitos de bases de datos que ellas) escribir es más rápido que leer, por lo que una característica natural es análisis de datos en tiempo real 8.
HBase (usado con ghshephard) Idioma: Java Características: Admite mil millones de filas x un millón de columnas Licencia: Apache Protocolo: HTTP/REST (Admite Thrift, consulte el post-modelado de BigTable, utiliza la arquitectura distribuida Map/rece para optimizar las consultas en tiempo real, utiliza la puerta de enlace Thrift de alto rendimiento para escanear y filtrar en el lado del servidor para predecir las operaciones de consulta, admite XML, Protobuf y binario, hive, pigsource y fregaderos shell basados en Jruby (JIRB) Revierte cambios de configuración y actualizaciones menores sin un solo punto de falla. El mejor escenario de aplicación para el rendimiento del acceso aleatorio es comparable a MySQL: adecuado para situaciones en las que se prefiere BigTable :) y se requiere acceso aleatorio en tiempo real a big data.
Por ejemplo: base de datos de mensajes de Facebook (próximamente aparecerán casos de uso más comunes) Nota 4: Thrift es un lenguaje de definición de interfaz que proporciona servicios de definición y creación para muchos otros idiomas, desarrollado por Facebook y de código abierto.
Por supuesto, todos los sistemas tienen más que solo las características enumeradas anteriormente.
Aquí solo enumero algunas características importantes basadas en mi propio punto de vista. Al mismo tiempo, la tecnología avanza rápidamente. El contenido definitivamente necesita ser actualizado.
Haré todo lo posible para mantener esta lista actualizada.