Почему мы не можем выполнять объединения в распределенной базе данных, такой как Bigtable?


9

Из этого ответа на вопрос "Какую базу данных использует Google?" :

Bigtable не является реляционной базой данных. Он не поддерживает объединения и не поддерживает расширенные SQL-подобные запросы.

Это очевидно? Я не понимаю, почему.

Ответы:


12

Bigtable не использует SQL (язык запросов), поэтому SQL нельзя использовать напрямую для запроса к базе данных. И Bigtable не имеет «отношений» так же, как реляционные базы данных, это больше похоже на голые таблицы.

Если вы хотите получить данные из двух таблиц, вам нужно выполнить два поиска и объединить результирующий набор в коде приложения. Другими словами, операция «соединение» не встроена в базу данных, поэтому вы должны выполнять такие операции в приложении, если это необходимо.

Тот факт, что Bigtable не поддерживает операции SQL и JOIN, не имеет ничего общего с тем, что это система распределенных баз данных. Существуют распределенные базы данных, поддерживающие SQL. Например, VoltDB и MySQL Cluster . Есть также много баз данных, которые не распространяются и не используют SQL, например, Kyoto Cabinet .

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.