When Relational-Based Applications Go to NoSQL Databases: A Survey
Abstract
:1. Introduction
1.1. Survey Scope: What Is Out
1.2. Paper Organization
2. NoSQL Background
3. Architectural Classification
4. SQL-to-NoSQL Wrapping Approaches
4.1. Layer Approach
4.1.1. Architectural Issues
4.1.2. Schema Mapping
4.1.3. Join Processing
4.1.4. Comparison
4.2. Storage Engine
4.2.1. Architectural Issues
4.2.2. Schema Mapping
4.2.3. Join Processing
4.2.4. Comparison
5. Comparative Analysis
Final Remarks
6. Conclusions
Author Contributions
Funding
Conflicts of Interest
References
- Liu, Z.H.; Hammerschmidt, B.C.; McMahon, D. JSON data management: Supporting schema-less development in RDBMS. In Proceedings of the International Conference on Management of Data (SIGMOD), Snowbird, UT, USA, 22–27 June 2014. [Google Scholar]
- Nance, C.; Losser, T.; Iype, R.; Harmon, G. NoSQL vs RDBMS—Why There Is Room for Both. In Proceedings of the Southern Association for Information Systems (SAIS), Atlanta, GA, USA, 23–24 March 2013. [Google Scholar]
- Cattell, R. Scalable SQL and NoSQL Data Stores. SIGMOD Rec. 2011, 39, 12–27. [Google Scholar] [CrossRef]
- Sadalage, P.J.; Fowler, M. NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence; Pearson Education: London, UK, 2012. [Google Scholar]
- Bisbal, J.; Lawless, D.; Wu, B.; Grimson, J. Legacy information systems: Issues and directions. IEEE Softw. 1999, 16, 103–111. [Google Scholar] [CrossRef]
- Llewellyn, B. Oracle Multitenant; White Paper; Oracle: Redwood City, CA, USA, 2013. [Google Scholar]
- EnterpriseDB. A Cloud-Ready Enterprise Database Checklist; White Paper; PostgreSQL Global Development Group: Bedford, MA, USA, 2012. [Google Scholar]
- Lee, J.; Malcolm, G.; Matthews, A.; Negrin, R.; Owens, Z.; Robinson, D.; Azure, S. Overview of Microsoft SQL Azure Database; White Paper; Microsoft: Redmond, WA, USA, 2009. [Google Scholar]
- Stonebraker, M. New Opportunities for New SQL. Commun. ACM 2012, 55, 10–11. [Google Scholar] [CrossRef]
- Cetintemel, U.; Du, J.; Kraska, T.; Madden, S.; Maier, D.; Meehan, J.; Pavlo, A.; Stonebraker, M.; Sutherland, E.; Tatbul, N.; et al. S-Store: A Streaming NewSQL System for Big Velocity Applications. VLDB 2014, 7, 1633–1636. [Google Scholar] [CrossRef]
- Kallman, R.; Kimura, H.; Natkins, J.; Pavlo, A.; Rasin, A.; Zdonik, S.; Jones, E.P.; Madden, S.; Stonebraker, M.; Zhang, Y.; et al. H-store: A high-performance, distributed main memory transaction processing system. Proc. VLDB Endow. 2008, 1, 1496–1499. [Google Scholar] [CrossRef]
- Taft, R.; Mansour, E.; Serafini, M.; Duggan, J.; Elmore, A.J.; Aboulnaga, A.; Pavlo, A.; Stonebraker, M. E-store: Fine-grained Elastic Partitioning for Distributed Transaction Processing Systems. Proc. VLDB Endow. 2014, 8, 245–256. [Google Scholar] [CrossRef]
- Aguilera, M.K.; Leners, J.B.; Walfish, M. Yesquel: Scalable Sql Storage for Web Applications. In Proceedings of the 25th Symposium on Operating Systems Principles (SOSP ’15), Monterey, CA, USA, 4–7 October 2015. [Google Scholar]
- Serafini, M.; Taft, R.; Elmore, A.J.; Pavlo, A.; Aboulnaga, A.; Stonebraker, M. Clay: Fine-grained Adaptive Partitioning for General Database Schemas. Proc. VLDB Endow. 2016, 10, 445–456. [Google Scholar] [CrossRef]
- Yuan, L.Y.; Wu, L.; You, J.H.; Chi, Y. Rubato DB: A Highly Scalable Staged Grid Database System for OLTP and Big Data Applications. In Proceedings of the 23rd ACM International Conference on Conference on Information and Knowledge Management, Shanghai, China, 3–7 November 2014; ACM: New York, NY, USA, 2014; pp. 1–10. [Google Scholar]
- Alsubaiee, S.; Altowim, Y.; Altwaijry, H.; Behm, A.; Borkar, V.; Bu, Y.; Carey, M.; Cetindil, I.; Cheelangi, M.; Faraaz, K.; et al. AsterixDB: A Scalable, Open Source BDMS. Proc. VLDB Endow. 2014, 7, 1905–1916. [Google Scholar] [CrossRef]
- Armbrust, M.; Xin, R.S.; Lian, C.; Huai, Y.; Liu, D.; Bradley, J.K.; Meng, X.; Kaftan, T.; Franklin, M.J.; Ghodsi, A.; et al. Spark SQL: Relational Data Processing in Spark. In Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data (SIGMOD ’15), Melbourne, VIC, Australia, 31 May–4 June 2015. [Google Scholar]
- Chaiken, R.; Jenkins, B.; Larson, P.; Ramsey, B.; Shakib, D.; Weaver, S.; Zhou, J. SCOPE: Easy and Efficient Parallel Processing of Massive Data Sets. Proc. VLDB Endow. 2008, 1, 1265–1276. [Google Scholar] [CrossRef]
- Gouda, Y.G.; Mohammed, H.S.; Khafagy, M.H. Advanced SQL Query To Flink Translator. Int. J. Appl. Inf. Syst. 2016, 10, 11–15. [Google Scholar]
- Isard, M.; Yu, Y. Distributed Data-parallel Computing Using a High-level Programming Language. In Proceedings of the 2009 ACM SIGMOD International Conference on Management of Data (SIGMOD ’09), Providence, RI, USA, 29 June–2 July 2009. [Google Scholar]
- Olston, C.; Reed, B.; Srivastava, U.; Kumar, R.; Tomkins, A. Pig Latin: A Not-so-foreign Language for Data Processing. In Proceedings of the 2008 ACM SIGMOD International Conference on Management of Data (SIGMOD ’08), Vancouver, BC, Canada, 10–12 June 2008. [Google Scholar]
- Ong, K.W.; Papakonstantinou, Y.; Vernoux, R. The SQL++ unifying semi-structured query language, and an expressiveness benchmark of SQL-on-Hadoop, NoSQL and NewSQL databases. arXiv 2014, arXiv:1405.3631. [Google Scholar]
- Vathy-Fogarassy, Á.; Hugyák, T. Uniform data access platform for SQL and NoSQL database systems. Inf. Syst. 2017, 69, 93–105. [Google Scholar] [CrossRef]
- Kolev, B.; Bondiombouy, C.; Valduriez, P.; Jimenez-Peris, R.; Pau, R.; Pereira, J. The CloudMdsQL Multistore System. In Proceedings of the 2016 International Conference on Management of Data (SIGMOD ’16), San Francisco, CA, USA, 26 June–1 July 2016. [Google Scholar]
- Thusoo, A.; Sarma, J.S.; Jain, N.; Shao, Z.; Chakka, P.; Anthony, S.; Liu, H.; Wyckoff, P.; Murthy, R. Hive: A Warehousing Solution over a Map-reduce Framework. Proc. VLDB Endow. 2009, 2, 1626–1629. [Google Scholar] [CrossRef]
- Giannakouris, V.; Papailiou, N.; Tsoumakos, D.; Koziris, N. MuSQLE: Distributed SQL query execution over multiple engine environments. In Proceedings of the 2016 IEEE International Conference on Big Data (Big Data), Washington, DC, USA, 5–8 December 2016. [Google Scholar]
- Alami, A.E.; Bahaj, M. Migration of a relational databases to NoSQL: The way forward. In Proceedings of the 2016 5th International Conference on Multimedia Computing and Systems (ICMCS), Marrakech, Morocco, 29 September–1 October 2016. [Google Scholar]
- Jia, T.; Zhao, X.; Wang, Z.; Gong, D.; Ding, G. Model Transformation and Data Migration from Relational Database to MongoDB. In Proceedings of the 2016 IEEE International Congress on Big Data (BigData Congress), San Francisco, CA, USA, 27 June–2 July 2016. [Google Scholar]
- Liu, Z.H.; Hammerschmidt, B.C.; McMahon, D.; Liu, Y.; Chang, H.J. Closing the functional and Performance Gap between SQL and NoSQL. In Proceedings of the 2016 International Conference on Management of Data (SIGMOD ’16), San Francisco, CA, USA, 26 June–1 July 2016. [Google Scholar]
- DB, I. DB2 JSON Capabilities; White Paper; IBM: Armonk, NY, USA, 2016. [Google Scholar]
- Microsoft. JSON Support in SQL Server 2016; White Paper; Microsoft: Redmond, WA, USA, 2016; Available online: https://blogs.msdn.microsoft.com/jocapc/2015/05/16/json-support-in-sql-server-2016/ (accessed on 13 January 2017).
- PostgreSQL. JSON Types. 2016. Available online: https://www.postgresql.org/docs/9.4/static/datatype-json.html (accessed on 14 February 2017).
- Chasseur, C.; Li, Y.; Patel, J.M. Enabling JSON Document Stores in Relational Systems. In Proceedings of the 16th International Workshop on the Web and Databases, New York, NY, USA, 23 June 2013. [Google Scholar]
- Tahara, D.; Diamond, T.; Abadi, D.J. Sinew: A SQL system for multi-structured data. In Proceedings of the International Conference on Management of Data (SIGMOD’ 14), Snowbird, UT, USA, 22–27 June 2014. [Google Scholar]
- DiScala, M.; Abadi, D.J. Automatic Generation of Normalized Relational Schemas from Nested Key-Value Data. In Proceedings of the 2016 International Conference on Management of Data (SIGMOD ’16), San Francisco, CA, USA, 26 June–1 July 2016. [Google Scholar]
- Corbellini, A.; Mateos, C.; Zunino, A.; Godoy, D.; Schiaffino, S. Persisting big-data: The NoSQL landscape. Inf. Syst. 2017, 63, 1–23. [Google Scholar] [CrossRef]
- IMDb. Internet Movie Database. 2019. Available online: www.imdb.com/interfaces (accessed on 12 July 2019).
- Zhang, H.; Wang, Y.; Han, J. Middleware design for integrating relational database and NOSQL based on data dictionary. In Proceedings of the International Conference on Transportation, Mechanical, and Electrical Engineering (TMEE), ChangChun, China, 16–18 December 2011; pp. 1469–1472. [Google Scholar]
- Dos Santos Ferreira, G.; Calil, A.; dos Santos Mello, R. On Providing DDL Support for a Relational Layer over a Document NoSQL Database. In Proceedings of the International Conference on Information Integration and Web-based Applications & Services, Vienna, Austria, 2–4 December 2013. [Google Scholar]
- Chung, W.C.; Lin, H.P.; Chen, S.C.; Jiang, M.F.; Chung, Y.C. JackHare: A framework for SQL to NoSQL translation using MapReduce. Autom. Softw. Eng. 2014, 21, 489–508. [Google Scholar] [CrossRef]
- Lawrence, R. Integration and Virtualization of Relational SQL and NoSQL Systems Including MySQL and MongoDB. In Proceedings of the International Conference on Computational Science and Computational Intelligence (CSCI), Las Vegas, NV, USA, 10–13 March 2014. [Google Scholar]
- Rith, J.; Lehmayr, P.S.; Meyer-Wegener, K. Speaking in Tongues: SQL Access to NoSQL Systems. In Proceedings of the 29th Annual ACM Symposium on Applied Computing (SAC’14), Gyeongju, Korea, 24–28 March 2014. [Google Scholar]
- Apache. White Paper: Apache Phoenix. 2017. Available online: http://phoenix.apache.org/ (accessed on 2 March 2017).
- Schreiner, G.A.; Duarte, D.; dos Santos Mello, R. SQLtoKeyNoSQL: A Layer for Relational to Key-based NoSQL Database Mapping. In Proceedings of the 17th International Conference on Information Integration and Web-based Applications & Services, Brussels, Belgium, 11–13 December 2015. [Google Scholar]
- Schreiner, G.A.; Duarte, D.; dos Santos Mello, R. Bringing SQL databases to key-based NoSQL databases: A canonical approach. Computing 2019. [Google Scholar] [CrossRef]
- Ribeiro, E.L.F.; Vieira, M.A.; Claro, D.B.; Silva, N. Transparent Interoperability Middleware between Data and Service Cloud Layers. In Proceedings of the 2018 International Conference on Cloud Computing and Services Science, Funchal, Madeira, Portugal, 19–21 March 2018. [Google Scholar]
- Adriana, J.; Holanda, M. NoSQL2: SQL to NoSQL Databases. In Proceedings of the 2018 Trends and Advances in Information Systems and Technologies (WorldCist), Naples, Italy, 27–29 March 2018. [Google Scholar]
- Li, C.; Gu, J. An integration approach of hybrid databases based on SQL in cloud computing environment. Softw. Pract. Exp. 2019, 49, 401–422. [Google Scholar] [CrossRef]
- Dean, J.; Ghemawat, S. MapReduce: Simplified Data Processing on Large Clusters. Commun. ACM 2008, 51, 107–113. [Google Scholar] [CrossRef]
- Arnaut, D.E.; Schroeder, R.; Hara, C.S. Phoenix: A Relational Storage Component for the Cloud. In Proceedings of the 2013 IEEE Sixth International Conference on Cloud Computing, Washington, DC, USA, 28 June–3 July 2013; IEEE Computer Society: Washington, DC, USA, 2013. [Google Scholar]
- Egger, D. SQL in the Cloud. Master’s Thesis, ETH Zurich, Zurich, Switzerland, 2009. [Google Scholar]
- Vilaça, R.; Cruz, F.; Pereira, J.; Oliveira, R. An Effective Scalable SQL Engine for NoSQL Databases. In Distributed Applications and Interoperable Systems: IFIP International Conference on Distributed Applications and Interoperable Systems; Dowling, J., Taïani, F., Eds.; Springer: Berlin/Heidelberg, Germany, 2013. [Google Scholar]
Approach | Data Model | SQL Support | SQL Mapping | Dict. | Join Processing |
---|---|---|---|---|---|
ZhangWork | Col./Doc. | DDL + DML Subset | API Methods | Yes | - |
SimpleSQL | Document | DDL + DML Subset | API Methods | Yes | Similarity |
JackHare | Columnar | DDL + DML Subset | Map-Reduce Jobs | Yes | Map-Reduce Jobs |
Unity | Col./Doc. | DML Subset | API Methods | Yes | Hash Join |
RithWork | Col./Doc. | DML Subset | API Meth./Access Com. | - | - |
APache Phoenix | Columnar | DDL + DML | API Methods | Yes | Hash Join |
SQLToKeyNoSQL | Key-based | DDL + DML Subset | API Methods | Yes | Hash Join |
MIDAS 1.8 | Document | DML Subset | API Methods | Yes | Nested Loop |
NoSQL | Independent | DDL Subset | Manually Configured | No | - |
MSI | Key-based | DML Subset | API Methods | Yes | Nested Loop |
Approach | Data Model | RDB | Mapping Information |
---|---|---|---|
Phoenix | Key-value | MySQL | VOEM |
CloudyStore | Columnar | MySQL | Dictionary |
DQE | Columnar | Derby | Dictionary |
Approach | Category | NoSQL Data Model | SQL Support | Multiple Sources |
---|---|---|---|---|
ZhangWork | Layer | Document/Column | DDL + DML subset | Yes |
Phoenix | Storage Engine | Key-value | Full SQL | No |
Apache Phoenix | Layer | Document | DML + DDL | No |
CloudyStore | Storage Engine | Column | Full SQL | No |
DQE | Storage Engine | Column | DDL + DML | No |
JackHare | Layer | Column | DML + DDL subset | No |
SimpleSQL | Layer | Document | DDL + DML subset | No |
RithWork | Layer | Document/Column | DML subset | Yes |
Unity | Layer | Document/Column | DML subset | Yes |
SQLToKeyNoSQL | Layer | Key-based | DML + DDL subset | Yes |
NoSQL | Layer | Independent | DDL subset | Yes |
MIDAS 1.8 | Layer | Document | DML subset | Yes |
MSI | Layer | Key-based | DML subset | Yes |
Approach | Target NoSQL Data Model | Relational-to-NoSQL Mapping Strategy | ||||
---|---|---|---|---|---|---|
Database | Table | Tuple | Attribute | Value | ||
Phoenix | Key-Value | database | key component | - | key component | value |
SQLToKeyNoSQL | database | key component | value | value component | value component | |
MSI | database | key component | value | value component | value component | |
JackHare | Columnar | HTable | key component | column set | column | value |
DQE | keyspace | HTable | column set | column | value | |
Apache Phoenix | keyspace | HTable | column set | column | value | |
CloudyStore | keyspace | column family | column set | column | value | |
SQLToKeyNoSQL | keyspace | column family | column set | column | value | |
SimpleSQL | Document | collection | attribute | document | attribute | value |
Unity | database | collection | document | attribute | value | |
Midas 1.8 | DBaaS and DaaS | collection | document | attribute | value | |
MSI | database | collection | document | attribute | value | |
SQLToKeyNoSQL | database | collection | document | attribute | value |
Approach | SQL Compiler | SQL Parser + Hand-Coded Wrappers | SQL Query Optimizer |
---|---|---|---|
ZhangWork | - | X | - |
Phoenix | X | - | - |
Apache Phoenix | X | - | - |
CloudyStore | X | - | X |
DQE | X | - | X |
JackHare | X | - | - |
SimpleSQL | X | - | - |
RithWork | - | X | - |
Unity | - | X | X |
SQLToKeyNoSQL | - | X | X |
NoSQL | - | X | - |
MSI | - | X | X |
Midas 1.8 | - | X | - |
© 2019 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).
Share and Cite
Schreiner, G.A.; Duarte, D.; Mello, R.d.S. When Relational-Based Applications Go to NoSQL Databases: A Survey. Information 2019, 10, 241. https://doi.org/10.3390/info10070241
Schreiner GA, Duarte D, Mello RdS. When Relational-Based Applications Go to NoSQL Databases: A Survey. Information. 2019; 10(7):241. https://doi.org/10.3390/info10070241
Chicago/Turabian StyleSchreiner, Geomar A., Denio Duarte, and Ronaldo dos Santos Mello. 2019. "When Relational-Based Applications Go to NoSQL Databases: A Survey" Information 10, no. 7: 241. https://doi.org/10.3390/info10070241
APA StyleSchreiner, G. A., Duarte, D., & Mello, R. d. S. (2019). When Relational-Based Applications Go to NoSQL Databases: A Survey. Information, 10(7), 241. https://doi.org/10.3390/info10070241