executecql

Выполните запрос CQL в базе данных Apache Cassandra

Описание

пример

results = executecql(conn,query) возвращает результаты выполнения Кассандры® Запрос языка запросов (CQL) в базе данных Cassandra с помощью подключения к базе данных Cassandra. executecql функция импортирует результаты запроса в MATLAB®.

пример

results = executecql(conn,query,Name,Value) задает опции, используя один или несколько аргументов имя-значение. Для примера, 'ConsistencyLevel',"TWO" устанавливает уровень согласованности, чтобы указать, что два узла должны ответить для выполнения запроса CQL.

Примеры

свернуть все

Используя интерфейс C++ базы данных Apache Cassandra ®, создайте соединение с базой данных Cassandra ® и выполните запрос CQL для импорта данных из таблицы базы данных Cassandra в MATLAB ®. В этом случае база данных Cassandra содержит employees_by_job таблица базы данных с данными о сотрудниках в employeedata keyspace.

Создайте соединение с базой данных Cassandra с помощью настроенного источника данных CassandraDataSource и пустые имя пользователя и пароль. The apacheCassandra функция возвращает conn как connection объект.

datasource = "CassandraDataSource";
username = "";
password = "";
conn = apacheCassandra(datasource,username,password);

Написание запроса CQL, который выбирает всех сотрудников, являющихся программистами или продавцами магазинов, нанятых до 30 апреля 2006 года, и извлекает их идентификаторы должностей, даты найма и адреса электронной почты. job_id - ключ разбиения employees_by_job таблицы базы данных и hire_date - столбец кластеризации.

query = strcat("SELECT job_id,hire_date,email ", ... 
    "FROM employeedata.employees_by_job ", ...
    "WHERE job_id IN ('IT_PROG','SH_CLERK') ", ...
    "AND hire_date < '2006-04-30';");

Выполните запрос CQL и отобразите первые несколько строк результатов.

results = executecql(conn,query);
head(results)
ans=8×3 table
      job_id       hire_date       email   
    __________    ___________    __________

    "IT_PROG"     05-Feb-2006    "VPATABAL"
    "IT_PROG"     03-Jan-2006    "AHUNOLD" 
    "IT_PROG"     25-Jun-2005    "DAUSTIN" 
    "SH_CLERK"    24-Apr-2006    "AWALSH"  
    "SH_CLERK"    23-Feb-2006    "JFLEAUR" 
    "SH_CLERK"    24-Jan-2006    "WTAYLOR" 
    "SH_CLERK"    13-Aug-2005    "JDILLY"  
    "SH_CLERK"    14-Jun-2005    "KCHUNG"  

results - таблица с job_id, hire_date, и email переменные. The hire_date переменная является datetime массив и job_id и email переменные строковые массивы.

Закройте соединение с базой данных Cassandra.

close(conn)

Используя интерфейс C++ базы данных Apache Cassandra ®, создайте соединение с базой данных Cassandra ® и выполните запрос CQL для импорта данных из таблицы базы данных Cassandra в MATLAB ®. Задайте уровень согласованности для возврата результатов запроса. В этом случае база данных Cassandra содержит employees_by_job таблица базы данных с данными о сотрудниках в employeedata keyspace.

Создайте соединение с базой данных Cassandra с помощью настроенного источника данных CassandraDataSource и пустые имя пользователя и пароль. The apacheCassandra функция возвращает conn как connection объект.

datasource = "CassandraDataSource";
username = "";
password = "";
conn = apacheCassandra(datasource,username,password);

Написание запроса CQL, который выбирает всех сотрудников, являющихся программистами, и извлекает даты их найма и адреса электронной почты. job_id - ключ разбиения employees_by_job таблица базы данных. Ограничьте возвращенные данные тремя строками.

query = strcat("SELECT hire_date,email ", ... 
    "FROM employeedata.employees_by_job ", ...
    "WHERE job_id = 'IT_PROG'", ...
    "LIMIT 3;");

Выполните запрос CQL с уровнем согласованности, установленным на один узел, и отобразите результаты.

level = "ONE";
results = executecql(conn,query,'ConsistencyLevel',level)
results=3×2 table
     hire_date       email   
    ___________    __________

    21-May-2007    "BERNST"  
    07-Feb-2007    "DLORENTZ"
    05-Feb-2006    "VPATABAL"

Один узел реплики отвечает возвращенными данными. results - таблица с hire_date и email переменные. The hire_date переменная является datetime массив и email переменная является строковыми массивами.

Закройте соединение с базой данных Cassandra.

close(conn)

Входные параметры

свернуть все

Соединение с базой данных Apache Cassandra, заданное как connection объект.

Запрос CQL, заданный как вектор символов или строковый скаляр. Для получения дополнительной информации о CQL см. справочную документацию по CQL.

Пример: "SELECT * FROM dev.maps"

Типы данных: char | string

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: results = executecql(conn,query,'ConsistencyLevel',"ONE",'RequestTimeout',15) задает, чтобы возвращать результаты запроса, когда один узел отвечает на выполнение запроса CQL, и база данных должна подождать 15 секунд, чтобы вернуть запрос перед выдачей ошибки.

Уровень согласованности, заданный в качестве одного из следующих значений.

Значение уровня согласованностиОписание уровня согласованности

"ALL"

Возвращает результаты запроса, когда все узлы реплики отвечают (операция чтения) или фиксируют изменение (операция записи).

"EACH_QUORUM"

Завершает выполнение, когда большинство узлов реплики в каждом центре обработки данных фиксируют изменение (только операция записи).

"QUORUM"

Возвращает результаты запроса, когда большинство узлов реплики отвечают (операция чтения) или фиксируют изменение (операция записи).

"LOCAL_QUORUM"

Возвращает результаты запроса, когда большинство узлов реплики в локальном центре обработки данных отвечают (операция чтения) или фиксируют изменение (операция записи).

"ONE" (по умолчанию)

Результаты запроса возвращаются, когда один узел реплики отвечает (операция чтения) или фиксирует изменение (операция записи).

"TWO"

Возвращает результаты запроса, когда два узла реплики отвечают (операция чтения) или фиксируют изменение (операция записи).

"THREE"

Возвращает результаты запроса, когда три узла реплики отвечают (операция чтения) или фиксируют изменение (операция записи).

"LOCAL_ONE"

Результаты запроса возвращаются, когда один узел реплики в локальном центре обработки данных отвечает (операция чтения) или фиксирует изменение (операция записи).

"ANY"

Завершите выполнение, даже если все узлы реплики для указанного раздела недоступны (только операция записи).

"SERIAL"

Возвращает результаты запроса текущих (и, возможно, незафиксированных) данных для узлов реплики в любом центре обработки данных (только для операций чтения).

"LOCAL_SERIAL"

Возвращает результаты запроса текущих (и, возможно, незафиксированных) данных для узлов реплики в локальном центре обработки данных (только для операций чтения).

Можно задать значение уровня согласованности как вектор символов или строковый скаляр.

Дополнительные сведения об уровнях согласованности см. в разделе Настройка согласованности данных.

Типы данных: char | string

Это свойство доступно только для чтения.

Тайм-аут запроса, заданный как положительный числовой скаляр. Тайм-аут запроса указывает количество секунд, в течение которых база данных ожидает возврата запроса CQL перед выдачей ошибки.

Типы данных: double

Выходные аргументы

свернуть все

Результаты запроса CQL, возвращенные как таблица. Каждый столбец базы данных Cassandra из результата запроса CQL является переменной в таблице. Имена переменных совпадают с именами столбцов базы данных Cassandra в результате запроса CQL.

Типы данных переменных в таблице зависят от типов данных CQL. Для получения дополнительной информации о том, как типы данных CQL преобразуются в типы данных MATLAB, смотрите Преобразование типов данных CQL в типы данных MATLAB с использованием интерфейса Apache Cassandra Database C++.

Для операций чтения или записи, которые не возвращают данных, executecql функция возвращает пустую таблицу.

Введенный в R2021a