upsert

Вставьте или обновите данные в Apache база данных Кассандры

Описание

пример

upsert(conn,keyspace,tablename,data) экспортирует данные из MATLAB® путем вставки или обновления его в таблице базы данных Apache Cassandra®.

пример

upsert(conn,keyspace,tablename,data,Name,Value) задает опции с помощью одного или нескольких аргументов значения имени. Например, 'ConsistencyLevel',"TWO" устанавливает уровень непротиворечивости указывать, что два узла должны ответить для запроса CQL, чтобы выполниться.

Примеры

свернуть все

Вставьте данные из MATLAB® в базу данных Apache Cassandra® с помощью Apache база данных Кассандры интерфейс C++ и отобразите данные при помощи соединения с базой данных Кассандры.

База данных Кассандры включает employees_by_job таблица базы данных, которая содержит данные сотрудника и job_id ключ раздела.

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

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

Возвратите имена таблиц базы данных Кассандры в employeedata ключевое пространство. t массив строк, который содержит имена этих таблиц.

keyspace = "employeedata";
t = tablenames(conn,keyspace)
t = 3×1 string
    "employees_by_id"
    "employees_by_job"
    "employees_by_name"

Импортируйте данные сотрудника в MATLAB от employees_by_job таблица при помощи соединения с базой данных Кассандры.

keyspace = "employeedata";
tablename = "employees_by_job";
results = partitionRead(conn,keyspace,tablename);

Отобразите последние несколько строк импортированных данных сотрудника.

tail(results)
ans=8×13 table
       job_id        hire_date     employee_id    commission_pct    department_id      email       first_name      last_name      manager_id         office         performance_ratings     phone_number     salary
                                                                                                                                                building    room                                                   
    ____________    ___________    ___________    ______________    _____________    __________    ___________    ____________    __________    ________________    ___________________    ______________    ______

    "SH_CLERK"      27-Jan-2004        184             NaN                50         "NSARCHAN"    "Nandita"      "Sarchand"         121        "North"     256         {2×1 int32}        "650.509.1876"     4200 
    "MK_REP"        17-Aug-2005        202             NaN                20         "PFAY"        "Pat"          "Fay"              201        "East"      349         {3×1 int32}        "603.123.6666"     6000 
    "PU_CLERK"      10-Aug-2007        119             NaN                30         "KCOLMENA"    "Karen"        "Colmenares"       114        "West"      252         {5×1 int32}        "515.127.4566"     2500 
    "PU_CLERK"      15-Nov-2006        118             NaN                30         "GHIMURO"     "Guy"          "Himuro"           114        "East"      227         {4×1 int32}        "515.127.4565"     2600 
    "PU_CLERK"      24-Dec-2005        116             NaN                30         "SBAIDA"      "Shelli"       "Baida"            114        "North"     189         {2×1 int32}        "515.127.4563"     2900 
    "PU_CLERK"      24-Jul-2005        117             NaN                30         "STOBIAS"     "Sigal"        "Tobias"           114        "South"     195         {2×1 int32}        "515.127.4564"     2800 
    "PU_CLERK"      18-May-2003        115             NaN                30         "AKHOO"       "Alexander"    "Khoo"             114        "West"      135         {2×1 int32}        "515.127.4562"     3100 
    "AC_ACCOUNT"    07-Jun-2002        206             NaN               110         "WGIETZ"      "William"      "Gietz"            205        "East"      258         {2×1 int32}        "515.123.8181"     8300 

results таблица, которая содержит эти переменные:

  • job_id — Идентификатор задания

  • hire_date — Наймите дату

  • employee_id — Идентификатор сотрудника

  • commission_pct — Уполномочьте процент

  • department_id — Идентификатор отдела

  • email — Адрес электронной почты

  • first_name — Имя

  • last_name — Фамилия

  • manager_id — Идентификатор менеджера

  • office — Местоположение Office (таблица, которая содержит две переменные для создания и комнаты),

  • performance_ratings — Оценки эффективности

  • phone_number — Номер телефона

  • salary — Зарплата

Отобразите типы данных CQL столбцов в employees_by_job таблица базы данных.

cols = columninfo(conn,keyspace,tablename);
cols(:,1:2)
ans=13×2 table
            Name              DataType  
    _____________________    ___________

    "job_id"                 "text"     
    "hire_date"              "date"     
    "employee_id"            "int"      
    "commission_pct"         "double"   
    "department_id"          "int"      
    "email"                  "text"     
    "first_name"             "text"     
    "last_name"              "text"     
    "manager_id"             "int"      
    "office"                 "office"   
    "performance_ratings"    "list<int>"
    "phone_number"           "text"     
    "salary"                 "int"      

Составьте таблицу данных, представляющих одного сотрудника, чтобы вставить в базу данных Кассандры. Задайте имена переменных. Составьте таблицу для получения информации об офисе. Затем составьте таблицу с информацией о сотруднике, которая содержит вложенную таблицу информации об офисе. Определите имена переменных.

varnames = ["job_id" "hire_date" "employee_id" ...
    "commission_pct" "department_id" "email" "first_name" ...
    "last_name" "manager_id" "office" "performance_ratings" ... 
    "phone_number" "salary"];
office = table("South",160, ...
    'VariableNames',["building" "room"]);
data = table("IT_ADMIN",datetime('today'),301,0.25,30,"SMITH123", ...
    "Alex","Smith",114,office,{[4 5]},"515.123.2345",3000);
data.Properties.VariableNames = varnames;

Вставьте информацию о сотруднике в базу данных Кассандры.

upsert(conn,keyspace,tablename,data)

Отобразите вставленные данные путем импорта его в MATLAB с помощью ключа IT_ADMIN раздела. employees_by_job таблица содержит новую строку.

keyValue = "IT_ADMIN";
results = partitionRead(conn,keyspace,tablename,keyValue)
results=1×13 table
      job_id       hire_date     employee_id    commission_pct    department_id      email       first_name    last_name    manager_id         office         performance_ratings     phone_number     salary
                                                                                                                                          building    room                                                   
    __________    ___________    ___________    ______________    _____________    __________    __________    _________    __________    ________________    ___________________    ______________    ______

    "IT_ADMIN"    06-Oct-2020        301             0.25              30          "SMITH123"      "Alex"       "Smith"        114        "South"     160         {2×1 int32}        "515.123.2345"     3000 

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

close(conn)

Обновите данные в базе данных Apache Cassandra® с данными MATLAB® и использованием Apache база данных Кассандры интерфейс C++. Отобразите обновленные данные при помощи соединения с базой данных Кассандры. Задайте уровень непротиворечивости для операции записи.

База данных Кассандры включает employees_by_job таблица базы данных, которая содержит данные сотрудника и job_id ключ раздела.

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

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

Возвратите имена таблиц базы данных Кассандры в employeedata ключевое пространство. t массив строк, который содержит имена этих таблиц.

keyspace = "employeedata";
t = tablenames(conn,keyspace)
t = 3×1 string
    "employees_by_id"
    "employees_by_job"
    "employees_by_name"

Импортируйте данные сотрудника в MATLAB от employees_by_job таблица при помощи соединения с базой данных Кассандры.

keyspace = "employeedata";
tablename = "employees_by_job";
results = partitionRead(conn,keyspace,tablename);

Отобразите последние несколько строк импортированных данных сотрудника.

tail(results)
ans=8×13 table
       job_id        hire_date     employee_id    commission_pct    department_id      email       first_name      last_name      manager_id         office         performance_ratings     phone_number     salary
                                                                                                                                                building    room                                                   
    ____________    ___________    ___________    ______________    _____________    __________    ___________    ____________    __________    ________________    ___________________    ______________    ______

    "SH_CLERK"      27-Jan-2004        184             NaN                50         "NSARCHAN"    "Nandita"      "Sarchand"         121        "North"     256         {2×1 int32}        "650.509.1876"     4200 
    "MK_REP"        17-Aug-2005        202             NaN                20         "PFAY"        "Pat"          "Fay"              201        "East"      349         {3×1 int32}        "603.123.6666"     6000 
    "PU_CLERK"      10-Aug-2007        119             NaN                30         "KCOLMENA"    "Karen"        "Colmenares"       114        "West"      252         {5×1 int32}        "515.127.4566"     2500 
    "PU_CLERK"      15-Nov-2006        118             NaN                30         "GHIMURO"     "Guy"          "Himuro"           114        "East"      227         {4×1 int32}        "515.127.4565"     2600 
    "PU_CLERK"      24-Dec-2005        116             NaN                30         "SBAIDA"      "Shelli"       "Baida"            114        "North"     189         {2×1 int32}        "515.127.4563"     2900 
    "PU_CLERK"      24-Jul-2005        117             NaN                30         "STOBIAS"     "Sigal"        "Tobias"           114        "South"     195         {2×1 int32}        "515.127.4564"     2800 
    "PU_CLERK"      18-May-2003        115             NaN                30         "AKHOO"       "Alexander"    "Khoo"             114        "West"      135         {2×1 int32}        "515.127.4562"     3100 
    "AC_ACCOUNT"    07-Jun-2002        206             NaN               110         "WGIETZ"      "William"      "Gietz"            205        "East"      258         {2×1 int32}        "515.123.8181"     8300 

results таблица, которая содержит эти переменные:

  • job_id — Идентификатор задания

  • hire_date — Наймите дату

  • employee_id — Идентификатор сотрудника

  • commission_pct — Уполномочьте процент

  • department_id — Идентификатор отдела

  • email — Адрес электронной почты

  • first_name — Имя

  • last_name — Фамилия

  • manager_id — Идентификатор менеджера

  • office — Местоположение Office (таблица, которая содержит две переменные для создания и комнаты),

  • performance_ratings — Оценки эффективности

  • phone_number — Номер телефона

  • salary — Зарплата

Отобразите типы данных CQL столбцов в employees_by_job таблица базы данных.

cols = columninfo(conn,keyspace,tablename);
cols(:,1:2)
ans=13×2 table
            Name              DataType  
    _____________________    ___________

    "job_id"                 "text"     
    "hire_date"              "date"     
    "employee_id"            "int"      
    "commission_pct"         "double"   
    "department_id"          "int"      
    "email"                  "text"     
    "first_name"             "text"     
    "last_name"              "text"     
    "manager_id"             "int"      
    "office"                 "office"   
    "performance_ratings"    "list<int>"
    "phone_number"           "text"     
    "salary"                 "int"      

Импортируйте данные, чтобы обновиться при помощи partitionRead функция со значением ключа раздела MK_REP. Данные для сотрудника, который является агентом по маркетингу.

keyValue = "MK_REP";
data = partitionRead(conn,keyspace,tablename,keyValue)
data=1×13 table
     job_id      hire_date     employee_id    commission_pct    department_id    email     first_name    last_name    manager_id         office         performance_ratings     phone_number     salary
                                                                                                                                    building    room                                                   
    ________    ___________    ___________    ______________    _____________    ______    __________    _________    __________    ________________    ___________________    ______________    ______

    "MK_REP"    17-Aug-2005        202             NaN               20          "PFAY"      "Pat"         "Fay"         201         "East"     349         {3×1 int32}        "603.123.6666"     6000 

Обновите процент комиссии к 0,25 для агента по маркетингу. Кроме того, задайте уровень непротиворечивости "ONE" гарантировать, что один узел копии фиксирует операцию записи.

data.commission_pct = 0.25;
level = "ONE";
upsert(conn,keyspace,tablename,data,'ConsistencyLevel',level)

Отобразите обновленные данные путем импорта его в MATLAB с помощью значения ключа раздела MK_REP. Обновленный процент комиссии для агента по маркетингу 0.25.

keyValue = "MK_REP";
results = partitionRead(conn,keyspace,tablename,keyValue)
results=1×13 table
     job_id      hire_date     employee_id    commission_pct    department_id    email     first_name    last_name    manager_id         office         performance_ratings     phone_number     salary
                                                                                                                                    building    room                                                   
    ________    ___________    ___________    ______________    _____________    ______    __________    _________    __________    ________________    ___________________    ______________    ______

    "MK_REP"    17-Aug-2005        202             0.25              20          "PFAY"      "Pat"         "Fay"         201         "East"     349         {3×1 int32}        "603.123.6666"     6000 

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

close(conn)

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

свернуть все

Apache соединение с базой данных Кассандры в виде connection объект.

Ключевое пространство в виде вектора символов или строкового скаляра. Если вы не знаете ключевое пространство, то доступ Keyspaces свойство connection объект с помощью записи через точку, чтобы просмотреть ключевые пространства в базе данных Кассандры.

Пример: "employeedata"

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

Таблица базы данных Кассандры называет в виде вектора символов или строкового скаляра. Если вы не знаете имя таблицы, то используйте tablenames функционируйте, чтобы найти его.

Пример: "employees_by_job"

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

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

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

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

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

Пример: upsert(conn,keyspace,tablename,data,'ConsistencyLevel',"ONE",'RequestTimeout',15) экспортирует данные путем получения ответа записи из одного узла, и база данных должна ожидать 15 секунд, чтобы выполнить операцию записи прежде, чем выдать ошибку.

Уровень непротиворечивости в виде одного из этих значений.

Значение уровня непротиворечивостиОперация записи

"ALL"

Фиксируйте на всех узлах копии.

"EACH_QUORUM"

Фиксируйте на большинстве узлов копии в каждом дата-центре.

"QUORUM"

Фиксируйте на большинстве узлов копии.

"LOCAL_QUORUM"

Фиксируйте на большинстве узлов копии в локальном дата-центре.

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

Фиксируйте на одном узле копии.

"TWO"

Фиксируйте на двух узлах копии.

"THREE"

Фиксируйте на трех узлах копии.

"LOCAL_ONE"

Фиксируйте на одном узле копии в локальном дата-центре.

"ANY"

Фиксируйте по крайней мере на одном узле копии.

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

Для получения дополнительной информации об уровнях непротиворечивости, смотрите непротиворечивость данных Конфигурирования.

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

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

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

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

Введенный в R2021a