2012-04-02 16 views
6

Nota: (He investigado CouchDB por algún tiempo y necesito algunas experiencias reales).Para CouchDB o no?

Tengo una base de datos Oracle para un servicio de seguimiento de la flota y algunos estado aquí están:

  1. 100 GB db
  2. enorme inserción/seg (nuestros mensajes recibidos)
  3. replicación fiable (a través de las corrientes de Oracle en 4 servidores)
  4. Consultas complejas complejas.

Ahora la pregunta: ¿Se puede usar CouchDB en este caso?

Nota: ¿Por qué pensé en CouchDB?

  1. He leído acerca de su capacidad para escalar horizontalmente muy bien. Eso es muy importante en nuestro caso.
  2. Como es un esquema libre, podemos manejar los cambios de manera más adecuada ya que tenemos muchos cambios en diferentes tablas y procedimientos almacenados.

Gracias

Editar I: que necesitan transacciones también. Pero puedo tolerar otras soluciones también. Y si hay un pequeño retraso en la replicación, eso no sería problema SI está garantizado.

+0

¿Necesita realizar alguna transacción?¿Necesita una replicación sincrónica garantizada? – edze

+0

Gracias por su aclaración. Sí; Necesito transacciones PERO puedo tolerar un poco de retraso en la replicación. –

+1

http://stackoverflow.com/questions/299723/can-i-do-transactions-and-locks-in-couchdb – edze

Respuesta

23

Usted está disfrutando de las siguientes características con su base de datos:

  1. de utilizarlo en la producción
  2. Los datos son naturalmente relacional (en relación a sí mismo)
  3. tasa de inserción enorme (no hay preocupaciones MVCC)
  4. consultas complejas
  5. Transacciones

Estos son todos los motivos no para cambiar a CouchDB.

Por supuesto, la historia no es tan simple. Creo que has descubierto lo que muchas personas nunca aprenden: los problemas complejos requieren soluciones complejas. No podemos simplemente reemplazar nuestra base de datos y tomarnos el resto del mes. Por supuesto, CouchDB (y BigCouch) admiten una escala horizontal excelente (¡y también la replicación de centros de datos cruzados!), Pero el costo será reescribir una aplicación de producción. Eso no está bien.

Entonces, ¿dónde puede beneficiarse CouchDB?

Sugiero que comience aumentando su aplicación con aplicaciones CouchDB. Implemente CouchDB, importe sus datos en él y cree aplicaciones que no sean de misión crítica. Vea dónde encaja mejor.

Para su proyecto, estos son los puntos fuertes CouchDB:

  1. Es una herramienta sencilla pequeña — fácil para que usted instale en una estación de trabajo o servidor
  2. Es un servidor web. Integra muy bien con su infraestructura y políticas de seguridad.
    • Por ejemplo, si usted tiene una política flexible, simplemente configurarlo en su LAN
    • Si usted tiene una red estricta y la política de cortafuegos, puede configurarlo detrás de una VPN, o con sus certificados SSL
  3. Con ese paso hecho, es muy fácil de acceder ahora. Simplemente realice solicitudes http o http. Ya sea que esté importando datos de Oracle con una herramienta personalizada o usando su navegador web , todo es lo mismo.
  4. ¡Sí! ¡CouchDB es un servidor de aplicaciones también! Tiene una aplicación administrativa incorporada, para explorar datos, cambiar la configuración, etc. (como un phpmyadmin incorporado). Pero para usted, el valor será construir aplicaciones e informes de administrador como aplicaciones simples, tradicionales HTML/Javascript/CSS. Puede ser tan elegante o tan simple como desee.
  5. A medida que el proyecto crece y se convierte en valiosa, que se encuentran en una gran posición para crecer, mediante la replicación
    • Cualquiera de ampliar el núcleo con racimos CouchDB grandes
    • O replicar sus datos y aplicaciones en diferentes centros de datos, o en estaciones de trabajo individuales, o teléfonos móviles, etc. (la estrategia será más evidente cuando llegue el momento.)

CouchDB le da un servidor web y sitio web sencilla. Le proporciona una API de servicios web incorporada a sus datos. Hace que sea fácil construir aplicaciones web. Por lo tanto, CouchDB parece ideal para extendiendo su aplicación principal, no reemplazando.

+2

Gracias ¡mucho! ¡Eso fue más informativo y valioso de lo que deseaba! –

+0

Una nota al margen: todavía estamos buscando reemplazar a Oracle (la razón principal es su alto costo) con una tecnología de código abierto (PostgreSQL o MySQL quizás (?)). –

+2

He escuchado a Jan Lehnardt (cofundador de Couchbase, comisionado original de Apache CouchDB) llamar a PostgreSQL, "la * otra * buena base de datos" :) – JasonSmith

0

No estoy de acuerdo con esta respuesta ..

Creo CouchDB se adapte caso especialmente bien flota utilización de seguimiento, debido a su naturaleza distribuida. Además, la naturaleza poco fiable de las conexiones gprs utilizadas para transmitir datos de posición hace que el paradigma de couchapps fuera de línea sea el socio perfecto para su aplicación.

Para cargar datos desde el camión, la tasa de inserción puede tomar una gran ventaja de la replicación de couchdb y las inserciones masivas, especialmente si se realiza en couchdb hosting basado en ssd.

Para descargar datos al camión, couchdb proporciona una replicación filtrada, lo que permite a cada camión descargar solo los datos que realmente necesita, en lugar de toda la base de datos.

En cuanto a las consultas complejas, la base de datos NoSQL es más flexible y puede funcionar mucho más rápido que las bases de datos de relaciones. Solo es cuestión de estructurar y consultar sus datos de forma razonable.

Cuestiones relacionadas