Совместимы ли YSQL и YCQL друг с другом?

Насколько я знаю, yugabyte хранит данные в чем-то, называемом DocDB, и поверх этого предоставляет YSQL API и YCQL API.

Итак, если я не ошибаюсь, YSQL и YCQL совместимы друг с другом?

Например: Могу ли я создать таблицу с помощью YSQL и выполнить к ней запрос с помощью YCQL?

И если НЕТ, может ли быть какая-либо разница в производительности между YSQL и YCQL? Я имею в виду, должны ли мы заботиться о выборе YSQL или YCQL в проекте?


person Ali Zeinali    schedule 09.12.2019    source источник


Ответы (2)


Спасибо за вопрос - то, что упомянул Хосе, верно (на данный момент):

Сегодня API YugabyteDB изолированы и независимы друг от друга. Это означает, что данные, вставленные или управляемые одним API, не могут быть запрошены другим API. Кроме того, не существует общего способа доступа к данным через API (в простых случаях могут помочь внешние платформы, такие как Presto).

Со временем мы сможем разрешить "доступ" к таблицам YCQL из YSQL (который полностью совместим с PostgreSQL) как к внешней таблице с помощью внешних оболочек данных (FDW). Обратите внимание, что работа над этим еще не началась, но в текущей архитектуре это вполне возможно.

Различия в производительности

Да, есть различия в производительности, как указал Хосе, но таково и текущее положение вещей. YCQL на данный момент более эффективен, чем YSQL по разным причинам, и мы быстро сокращаем разрыв. Это то, о чем мы намерены писать намного больше со временем.

В краткосрочной перспективе я бы рекомендовал следующее:

  • Если вам нужны реляционные функции (например, внешние ключи) или гибкость запросов (например, соединения) в вашем приложении, YSQL — это то, что вам нужно. Опять же, мы ожидаем приблизить его к YCQL в течение следующих 3-6 месяцев для большинства случаев использования.
  • Если вам не нужно вышеперечисленное, но вы говорите о большом количестве данных (скажем, более 10 ТБ данных), заботитесь об очень низких задержках (менее миллисекунды) и нуждаетесь в таких функциях, как автоматическое истечение срока действия данных с использованием функции TTL - вы следует использовать YCQL.

Если у вас есть вариант использования, мы будем рады помочь вам определиться с более подробным анализом. Пожалуйста, также рассмотрите возможность присоединиться к Slack-каналу сообщества для поддержки в реальном времени.

person Karthik Ranganathan    schedule 09.12.2019
comment
Спасибо за ответ. мы собираемся использовать его для облачного обмена мгновенными сообщениями, такого как Telegram - person Ali Zeinali; 09.12.2019

Сегодня API YugabyteDB изолированы и независимы друг от друга. Это означает, что данные, вставленные или управляемые одним API, не могут быть запрошены другим API. Кроме того, не существует общего способа доступа к данным через API (в простых случаях могут помочь внешние платформы, такие как Presto).

Чистый эффект заключается в том, что разработчики приложений должны сначала выбрать API, прежде чем приступать к подробному проектированию и реализации схемы/запроса базы данных. см. документацию

Я не эксперт по Yugabyte, но согласно документам: да, между YSQL и YCQL есть разница в производительности. См. слайд 18 по адресу введите здесь описание ссылки

person Jose Flores    schedule 09.12.2019