upsert

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

upsert функция будет удалена в будущем релизе. Используйте upsert функция Apache Кассандра® База данных C++ взаимодействует через интерфейс вместо этого.

Описание

пример

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

пример

upsert(conn,keyspace,tablename,data,'ConsistencyLevel',level) устанавливает уровень непротиворечивости для операции записи, задающей, сколько узлов должно ответить, когда функция экспортирует данные MATLAB в таблицу базы данных Кассандры.

Примеры

свернуть все

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

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

Создайте соединение с базой данных Кассандры с помощью локального адреса хоста. conn cassandra объект.

contactPoints = "localhost";
conn = cassandra(contactPoints);

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

keyspace = "employeedata";
t = tablenames(conn,keyspace)
t = 3×1 string array
    "employees_by_job"
    "employees_by_id"
    "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"    13-Mar-2019        301             0.25              30          "SMITH123"      "Alex"       "Smith"        114        "South"     160         {2×1 int32}        "515.123.2345"     3000 

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

close(conn)

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

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

Создайте соединение с базой данных Кассандры с помощью локального адреса хоста. conn cassandra объект.

contactPoints = "localhost";
conn = cassandra(contactPoints);

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

keyspace = "employeedata";
t = tablenames(conn,keyspace)
t = 3×1 string array
    "employees_by_job"
    "employees_by_id"
    "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 для агента по маркетингу. Кроме того, задайте уровень непротиворечивости "QUORUM" гарантировать, что большинство узлов копии фиксирует операцию записи.

data.commission_pct = 0.25;
level = "QUORUM";
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)

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

свернуть все

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

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

Пример: "employeedata"

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

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

Пример: "employees_by_job"

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

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

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

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

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

"ALL"

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

"EACH_QUORUM"

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

"QUORUM"

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

"LOCAL_QUORUM"

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

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

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

"TWO"

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

"THREE"

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

"LOCAL_ONE"

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

"ANY"

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

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

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

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

Введенный в R2019b