Вставка или обновление данных в базе данных Apache Cassandra
Вставьте данные из MATLAB ® в базу данных Apache Cassandra ® с помощью интерфейса C++ базы данных Apache Cassandra и просмотрите данные с помощью подключения к базе данных Cassandra.
База данных Кассандры включает employees_by_job таблица базы данных, содержащая данные о сотрудниках и job_id ключ раздела.
Создание подключения к базе данных Cassandra с использованием настроенного источника данных CassandraDataSource и пустое имя пользователя и пароль. apacheCassandra функция возвращает conn в качестве connection объект.
datasource = "CassandraDataSource"; username = ""; password = ""; conn = apacheCassandra(datasource,username,password);
Возвращает имена таблиц базы данных Cassandra в employeedata keyspace. t - строковый массив, содержащий имена этих таблиц.
keyspace = "employeedata";
t = tablenames(conn,keyspace)t = 3×1 string
"employees_by_id"
"employees_by_job"
"employees_by_name"
Импорт данных сотрудников в MATLAB из employees_by_job с помощью подключения к базе данных Cassandra.
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 - Расположение офиса (таблица, содержащая две переменные для здания и помещения)
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"
Создайте таблицу данных, представляющих одного сотрудника для вставки в базу данных Cassandra. Укажите имена переменных. Создайте таблицу для сведений о офисе. Затем создайте таблицу с информацией о сотрудниках, содержащую вложенную таблицу офисной информации. Задайте имена переменных.
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;
Вставьте информацию о сотруднике в базу данных Cassandra.
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
Закройте подключение к базе данных Cassandra.
close(conn)
Обновление данных в базе данных Apache Cassandra ® с использованием данных MATLAB ® и интерфейса базы данных Apache Cassandra C++. Отображение обновленных данных с помощью подключения к базе данных Cassandra. Укажите уровень согласованности для операции записи.
База данных Кассандры включает employees_by_job таблица базы данных, содержащая данные о сотрудниках и job_id ключ раздела.
Создание подключения к базе данных Cassandra с использованием настроенного источника данных CassandraDataSource и пустое имя пользователя и пароль. apacheCassandra функция возвращает conn в качестве connection объект.
datasource = "CassandraDataSource"; username = ""; password = ""; conn = apacheCassandra(datasource,username,password);
Возвращает имена таблиц базы данных Cassandra в employeedata keyspace. t - строковый массив, содержащий имена этих таблиц.
keyspace = "employeedata";
t = tablenames(conn,keyspace)t = 3×1 string
"employees_by_id"
"employees_by_job"
"employees_by_name"
Импорт данных сотрудников в MATLAB из employees_by_job с помощью подключения к базе данных Cassandra.
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 - Расположение офиса (таблица, содержащая две переменные для здания и помещения)
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
Закройте подключение к базе данных Cassandra.
close(conn)
conn - Подключение базы данных Apache Cassandraconnection объектПодключение к базе данных Apache Cassandra, указанное как connection объект.
keyspace - KeyspaceKeyspace, заданный как вектор символа или скаляр строки. Если вы не знаете ключевое пространство, то получите доступ к Keyspaces имущества connection объект, использующий точечную нотацию для просмотра ключевых пространств в базе данных Кассандры.
Пример: "employeedata"
Типы данных: char | string
tablename - Имя таблицы базы данных КассандрыИмя таблицы базы данных Cassandra, указанное как вектор символов или скаляр строки. Если имя таблицы неизвестно, используйте tablenames функция, чтобы найти его.
Пример: "employees_by_job"
Типы данных: char | string
data - Данные для вставки или обновленияДанные для вставки или обновления в базе данных Cassandra, указанные как таблица. Необходимо указать первичные ключи таблицы базы данных Cassandra, но можно игнорировать другие столбцы Cassandra. Имена переменных в таблице должны совпадать с именами столбцов Кассандры в таблице базы данных без учета регистра. Типы данных переменных в таблице должны быть совместимы с типами данных CQL столбцов Кассандры. Дополнительные сведения см. в разделе Преобразование типов данных CQL в типы данных MATLAB с помощью интерфейса Apache Cassandra Database C++.
Типы данных: table
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
upsert(conn,keyspace,tablename,data,'ConsistencyLevel',"ONE",'RequestTimeout',15) экспортирует данные, получая ответ на запись от одного узла, и база данных должна подождать 15 секунд, чтобы выполнить операцию записи, прежде чем выдать ошибку.'ConsistencyLevel' - Уровень непротиворечивости"ONE" (по умолчанию) | символьный вектор | строковый скалярУровень согласованности, указанный как одно из этих значений.
| Значение уровня согласованности | Операция записи |
|---|---|
| Фиксация на всех узлах реплики. |
| Фиксация на большинстве узлов реплики в каждом центре обработки данных. |
| Фиксация на большинстве узлов реплики. |
| Фиксация на большинстве узлов реплики в локальном центре обработки данных. |
| Фиксация на одном узле реплики. |
| Фиксация на двух узлах реплики. |
| Фиксация на трех узлах реплики. |
| Фиксация на одном узле реплики в локальном центре обработки данных. |
| Зафиксировать хотя бы на одном узле реплики. |
Значение уровня согласованности можно указать как вектор символа или скаляр строки.
Дополнительные сведения об уровнях непротиворечивости см. в разделе Настройка непротиворечивости данных.
Типы данных: char | string
'RequestTimeout' - Тайм-аут запроса12 (по умолчанию) | положительный числовой скалярЭто свойство доступно только для чтения.
Тайм-аут запроса, указанный как положительный числовой скаляр. Тайм-аут запроса указывает количество секунд, в течение которых база данных ожидает возврата запроса CQL перед выдачей ошибки.
Типы данных: double
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.