Una consulta SQL para acceder a múltiples fuentes de datos en Java (desde Oracle, Excel, SQL Server)

Viacheslav Vedenin:

Necesito desarrollar una aplicación que pueda obtener datos de múltiples fuentes de datos ( Oracle, Excel, Microsoft Sql Servery así sucesivamente) usando uno SQL query. Por ejemplo:

 SELECT o.employeeId, count(o.orderId) 
    FROM employees@excel e. customers@microsoftsql c, orders@oracle o 
    WHERE o.employeeId = e.employeeId and o.customerId = c.customerId 
    GROUP BY o.employeeId;

Este sql y las fuentes de datos deben ser cambiadas dinámicamente por el programa java. Mis clientes desean escribir y ejecutar sql-like querydesde diferentes bases de datos y almacenamiento al mismo tiempo con, group by, having, count, sumetc., en la interfaz web de mi aplicación. Otros requisitos son el rendimiento y el peso ligero.

Encuentro esta manera de hacerlo (y qué inconvenientes veo, por favor, arréglenme si me equivoco):

  1. Apache Spark ( inconvenientes : solución pesada, mejor para BigData, lenta si necesita obtener información actualizada sin almacenarla en caché en Spark),

  2. Consultas distribuidas en el servidor SQL ( enlace de base de datos de Oracle , servidor vinculado de Microsoft SQL Server , Power Query of Excel ) - inconvenientes : problema con el cambio de las fuentes de datos dinámicamente por el programa Java y problema con el trabajo con Excel,

  3. Prestodb ( inconvenientes : solución pesada, mejor para BigData),

  4. Apache Drill ( inconvenientes : solución bastante joven, algún problema con los últimos controladores odbc y algunos errores al trabajar),

  5. Apache Calcite (marco de luz que será utilizado por Apache Drill, inconvenientes : solución bastante joven todavía),

  6. Únase desde las fuentes de datos manualmente ( inconvenientes : mucho trabajo para desarrollar la unión correcta, "agrupar por" en el conjunto de resultados, encontrar el mejor plan de ejecución, etc.)

Puede ser, ¿conoce alguna otra forma (usando soluciones gratuitas de código abierto ) o me da algún consejo de su experiencia sobre las formas mencionadas anteriormente? Cualquier ayuda sería muy apreciada.

Dias:

Una de las soluciones apropiadas es la plataforma DataNucleus que tiene API JDO, JPA y REST. Tiene soporte para casi todos los RDBMS (PostgreSQL, MySQL, SQLServer, Oracle, DB2, etc.) y el almacén de datos NoSQL como los servicios web basados ​​en mapas, gráficos, documentos, etc., bases de datos web, LDAP, documentos como XLS, ODF, XML, etc.

Alternativamente, puede usar EclipseLink , que también es compatible con RDBMS, NoSQL, servicios web de bases de datos y XML.

Al utilizar JDOQL, que forma parte de la API de JDO, se cumplirá el requisito de tener una consulta para acceder a múltiples almacenes de datos. Ambas soluciones son de código abierto, relativamente livianas y de alto rendimiento.

¿Por qué sugerí esta solución?

  • Según sus requisitos, se entiende que el almacén de datos será su elección del cliente y que no está buscando una solución de Big Data.
  • Prefiere soluciones de código abierto, que son livianas y de alto rendimiento.
  • Teniendo en cuenta su caso de uso, es posible que necesite una plataforma de gestión de datos con comportamiento de persistencia políglota , que tenga la capacidad de aprovechar el almacén de datos múltiple, en función de los casos de uso de su cliente.

Para leer más sobre la persistencia políglota

https://dzone.com/articles/polyglot-persistence-future

https://www.mapr.com/products/polyglot-persistence

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

TOP Lista

CalienteEtiquetas

Archivo