چکیده
مهاجرت از RDBMS به NoSQL به موضوع مهمی در عصر دادههای بزرگ تیدیل شده است. این مقاله، یک بررسی جامع را در مورد موضوعات مهم مهاجرت از RDBMS به NoSQL فراهم میآورد. ما در مورد چالشهای پیش رو در ترجمه کوئری های SQL بحث میکنیم؛ تأثیر لغو نرمالسازی، ایندکسهای ثانویه، و الگوریتمهای جوین، و مسائل باز. ما بر یک NoSQL ستون گرا، HBase تمرکز میکنیم زیرا آن بطور گستردهای توسط بسیاری از شرکتهای اینترنتی مثل Facebook ، Twitter و LinkedIn مورد استفاده قرار میگیرد. به دلیل اینکه HBase از SQL پشتیبانی نمیکند، ما از Phoenix Apache به عنوان لایه SQL در بالای HBase استفاده میکنیم. نتایج آزمایشی با استفاده از TPC-H نشان میدهند که لغو نرمالسازی در سطح ستون با اتمیسیته به طور قابل توجهی عملکرد کوئری را بهبود میبخشد، استفاده از ایندکسهای ثانویه بر روی کلیدهای خارجی به مانند RDBMSها مؤثر نیست و بهینه ساز کوئری Phoenix خیلی پیچیده نیست. مسائل مهم باز از کوئری های پیچیده SQL ، انتخاب خودکار ایندکس ، و بهینه سازی کوئری های SQL برای NoSQL پشتیبانی میکند.
1. مقدمه
دیتابیس NoSQL با توجه به قابلیتهایی که در رسیدگی به دادههای بزرگ دارد، و تقاضا برای مهاجرت از RDBMS به NoSQLبه سرعت در حال افزایش است، به گزینه محبوبی برای دیتابیس رابطهای متعارف تبدیل شده است (1). از آنجاییکه NoSQL در مقایسه با RDBMS دارای مدل کوئری و دادههای متفاوتی است، این مهاجرت یک مسئله چالش برانگیز در تحقیق است. برای مثال، NoSQL از کوئری های SQL، عملیات مشترک و تراکنشهای ACID به اندازه کافی حمایت نمیکند.
در این مقاله، ما بررسی جامعی در مورد موضوعات مهم مربوط به مهاجرت از RDBMS به NoSQL فراهم میآوریم. و در سه مورد همکاریهای مهمی را انجام میدهیم. اولاً، چالشهای پیش رو در ترجمه کوئری های SQL برای NoSQL را بررسی میکنیم. دوما، تأثیر لغو نرمالسازی، ایندکسهای ثانویه، و الگوریتمهای جوین را در مورد عملکرد کوئری NoSQL ارزیابی میکنیم. سوما، مسائل باز و کارهای آینده را شناسایی میکنیم. ما بر HBase تمرکز میکنیم زیرا آن بطور گستردهای توسط بسیاری از شرکتهای اینترنتی مثل Facebook، Twitter و LinkedIn مورد استفاده قرار میگیرد. از آنجاییکه HBase از SQL پشتیبانی نمیکند، ما از Apache Phoenix به عنوان لایه SQL در بالای HBase استفاده میکنیم.
Abstract
Migration from RDBMS to NoSQL has become an important topic in a big data era. This paper provides a comprehensive study on important issues in the migration from RDBMS to NoSQL. We discuss the challenges faced in translating SQL queries; the effect of denormalization, secondary indexes, and join algorithms; and open problems. We focus on a column-oriented NoSQL, HBase, because it is widely used by many Internet enterprises such as Facebook, Twitter, and LinkedIn. Because HBase does not support SQL, we use Apache Phoenix as an SQL layer on top of HBase. Experimental results using TPC-H show that column-level denormalization with atomicity significantly improves query performance, the use of secondary indexes on foreign keys is not as effective as in RDBMSs, and the query optimizer of Phoenix is not very sophisticated. Important open problems are supporting complex SQL queries, automatic index selection, and optimizing SQL queries for NoSQL.
1 Introduction
NoSQL databases have become a popular alternative to traditional relational databases due to the capability of handling big data, and the demand on the migration from RDBMS to NoSQL is growing rapidly [1]. Because NoSQL has different data and query model comparing with RDBMS, the migration is a challenging research problem. For example, NoSQL does not provide sufficient support for SQL queries, join operations, and ACID transactions.
In this paper, we provide a comprehensive study on important issues in the migration from RDBMS to NoSQL. We make three main contributions. First, we investigate the challenges faced in translating SQL queries for NoSQL. Second, we evaluate the effect of denormalization, secondary indexes, and join algorithms on query performance of NoSQL. Third, we identify open problems and future work. We focus on HBase because it is widely used by many Internet enterprises such as Facebook, Twitter, and LinkedIn. Because HBase does not support SQL, we use Apache Phoenix as an SQL layer on top of HBase.
چکیده
1. مقدمه
2. پس زمینه و کارهای مرتبط
3. مهاجرت از RDBMS به NoSQL ستون گرا
1.3. ترجمه کوئری های SQL
2.3 لغو نرمالسازی
3.3. ایندکسهای ثانویه
4.3. الگوریتمهای جوین
4. ارزیابی آزمایشی
1.4. تنظیمات آزمایشی
آزمایش 1: تأثیر لغو نرمالسازی
آزمایش 2: تأثیر اندیکسهای ثانویه بر کلیدهای خارجی
آزمایش 3: تأثیر الگوریتمهای جوین
2.4 نتایج آزمایشی
آزمایش 1: تأثیر لغو نرمالسازی
آزمایش 2: تأثیر ایندکسهای ثانویه بر کلیدهای خارجی
آزمایش 3: تأثیر الگوریتمهای جوین
3.4. بحث
5. نتیجه گیری
منابع
Abstract
1 Introduction
2 Background and Related Work
3 Migration from RDBMS to Column-Oriented NoSQL
3.1 Translating SQL Queries
3.2 Denormalization
3.3 Secondary Indexes
3.4 Join Algorithms
4 Experimental Evaluation
4.1 Experimental Setup
Experiment 1: The effect of denormalization
To see the effect of secondary indexes on foreign keys, we compare query performance
Experiment 3: The effect of join algorithms
4.2 Experimental Results
Experiment 1: The effect of denormalization
Experiment 2: The effect of secondary indexes on foreign keys
Experiment 3: The effect of join algorithms
4.3 Discussion
5 Conclusions