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

Ответы:

12

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

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

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

Jonas
источник