Импортируйте данные в MATLAB от таблицы базы данных PostgreSQL
настраивает опции для того, чтобы импортировать данные от таблицы базы данных с помощью data = sqlread(conn,tablename,opts)SQLImportOptions объект.
задает дополнительные опции с помощью одного или нескольких аргументов пары "имя-значение" и любой из предыдущих комбинаций входных аргументов. Например, data = sqlread(___,Name,Value)'Catalog','cat' импортирует данные от таблицы базы данных, сохраненной в 'cat' каталог.
Используйте собственное соединение с базой данных интерфейса PostgreSQL, чтобы импортировать данные о продукте от таблицы базы данных в MATLAB® с помощью базы данных PostgreSQL. Затем выполните простой анализ данных.
Создайте собственное соединение с базой данных интерфейса PostgreSQL к базе данных PostgreSQL. База данных содержит таблицу productTable.
datasource = "PostgreSQLDataSource"; username = "dbdev"; password = "matlab"; conn = postgresql(datasource,username,password);
Импортируйте данные от таблицы базы данных productTable. sqlread функция возвращает таблицу MATLAB, которая содержит данные о продукте.
tablename = "productTable";
data = sqlread(conn,tablename);Отобразите первые несколько строк данных о продукте.
head(data,3)
ans=3×5 table
productnumber stocknumber suppliernumber unitcost productdescription
_____________ ___________ ______________ ________ __________________
9 1.2597e+05 1003 13 "Victorian Doll"
8 2.1257e+05 1001 5 "Train Set"
7 3.8912e+05 1007 16 "Engine Kit"
Закройте соединение с базой данных.
close(conn)
Настройте настройки импорта при импортировании данных от таблицы базы данных с помощью собственного интерфейса PostgreSQL. Управляйте настройками импорта путем создания SQLImportOptions объект. Затем настройте настройки импорта для различных столбцов базы данных. Импортируйте данные с помощью sqlread функция.
Этот пример использует patients.xls файл, который содержит столбцы Genderместоположение , SelfAssessedHealthStatus, и Smoker. Пример использует базу данных версии 9.405 базы данных PostgreSQL и libpq версию драйвера 10.12.
Создайте собственное соединение с базой данных интерфейса PostgreSQL к базе данных PostgreSQL.
datasource = "PostgreSQLDataSource"; username = "dbdev"; password = "matlab"; conn = postgresql(datasource,username,password);
Загрузите терпеливую информацию в рабочую область MATLAB®.
patients = readtable("patients.xls");Создайте patients таблица базы данных с помощью терпеливой информации.
tablename = "patients";
sqlwrite(conn,tablename,patients)Создайте SQLImportOptions объект с помощью patients таблица базы данных и databaseImportOptions функция.
opts = databaseImportOptions(conn,tablename)
opts =
SQLImportOptions with properties:
ExcludeDuplicates: false
VariableNamingRule: 'preserve'
VariableNames: {'lastname', 'gender', 'age' ... and 7 more}
VariableTypes: {'string', 'string', 'double' ... and 7 more}
SelectedVariableNames: {'lastname', 'gender', 'age' ... and 7 more}
FillValues: { <missing>, <missing>, NaN ... and 7 more }
VariableOptions: Show all 10 VariableOptions
Отобразите текущие настройки импорта для переменных в SelectedVariableNames свойство SQLImportOptions объект.
vars = opts.SelectedVariableNames; varOpts = getoptions(opts,vars)
varOpts =
1x10 SQLVariableImportOptions array with properties:
Variable Options:
(1) | (2) | (3) | (4) | (5) | (6) | (7) | (8) | (9) | (10)
Name: 'lastname' | 'gender' | 'age' | 'location' | 'height' | 'weight' | 'smoker' | 'systolic' | 'diastolic' | 'selfassessedhealthstatus'
Type: 'string' | 'string' | 'double' | 'string' | 'double' | 'double' | 'logical' | 'double' | 'double' | 'string'
MissingRule: 'fill' | 'fill' | 'fill' | 'fill' | 'fill' | 'fill' | 'fill' | 'fill' | 'fill' | 'fill'
FillValue: <missing> | <missing> | NaN | <missing> | NaN | NaN | 0 | NaN | NaN | <missing>
To access sub-properties of each variable, use getoptions
Измените типы данных для genderместоположение , smoker, и selfassessedhealthstatus переменные с помощью setoptions функция. Поскольку genderместоположение , и selfassessedhealthstatus переменные указывают на конечное множество повторяющихся значений, изменяют их тип данных в categorical. Поскольку Smoker переменная хранит значения 0 и 1, измените его тип данных в double. Затем отобразите обновленные настройки импорта.
opts = setoptions(opts,{'gender','location','selfassessedhealthstatus'}, ...
'Type','categorical');
opts = setoptions(opts,'smoker','Type','double');
varOpts = getoptions(opts,{'gender','location','smoker', ...
'selfassessedhealthstatus'})varOpts =
1x4 SQLVariableImportOptions array with properties:
Variable Options:
(1) | (2) | (3) | (4)
Name: 'gender' | 'location' | 'smoker' | 'selfassessedhealthstatus'
Type: 'categorical' | 'categorical' | 'double' | 'categorical'
MissingRule: 'fill' | 'fill' | 'fill' | 'fill'
FillValue: <undefined> | <undefined> | 0 | <undefined>
To access sub-properties of each variable, use getoptions
Импортируйте patients таблица базы данных с помощью sqlread функция и отображение последние восемь строк таблицы.
data = sqlread(conn,tablename,opts); tail(data)
ans=8×10 table
lastname gender age location height weight smoker systolic diastolic selfassessedhealthstatus
___________ ______ ___ _________________________ ______ ______ ______ ________ _________ ________________________
"Foster" Female 30 St. Mary's Medical Center 70 124 0 130 91 Fair
"Gonzales" Male 48 County General Hospital 71 174 0 123 79 Good
"Bryant" Female 48 County General Hospital 66 134 0 129 73 Excellent
"Alexander" Male 25 County General Hospital 69 171 1 128 99 Good
"Russell" Male 44 VA Hospital 69 188 1 124 92 Good
"Griffin" Male 49 County General Hospital 70 186 0 119 74 Fair
"Diaz" Male 45 County General Hospital 68 172 1 136 93 Good
"Hayes" Male 48 County General Hospital 66 177 0 114 86 Fair
Отобразите сводные данные импортированных данных. sqlread функция применяет настройки импорта к переменным в импортированных данных.
summary(data)
Variables:
lastname: 100×1 string
gender: 100×1 categorical
Values:
Female 53
Male 47
age: 100×1 double
Values:
Min 25
Median 39
Max 50
location: 100×1 categorical
Values:
County General Hospital 39
St. Mary s Medical Center 24
VA Hospital 37
height: 100×1 double
Values:
Min 60
Median 67
Max 72
weight: 100×1 double
Values:
Min 111
Median 142.5
Max 202
smoker: 100×1 double
Values:
Min 0
Median 0
Max 1
systolic: 100×1 double
Values:
Min 109
Median 122
Max 138
diastolic: 100×1 double
Values:
Min 68
Median 81.5
Max 99
selfassessedhealthstatus: 100×1 categorical
Values:
Excellent 34
Fair 15
Good 40
Poor 11
Удалите patients таблица базы данных с помощью execute функция.
sqlquery = strcat("DROP TABLE ",tablename);
execute(conn,sqlquery)Закройте соединение с базой данных.
close(conn)
Используйте собственное соединение с базой данных интерфейса PostgreSQL, чтобы импортировать ограниченное количество строк данных о продукте из таблицы базы данных в MATLAB®. Затем вид и фильтр строки в импортированных данных, и выполняют простой анализ данных.
Создайте собственное соединение с базой данных интерфейса PostgreSQL к базе данных PostgreSQL с помощью имени источника данных, имени пользователя и пароля. База данных содержит таблицу productTable.
datasource = "PostgreSQLDataSource"; username = "dbdev"; password = "matlab"; conn = postgresql(datasource,username,password);
Импортируйте данные из таблицы productTable. Ограничьте количество строк путем установки 'MaxRows' аргумент пары "имя-значение" 10. data таблица содержит данные о продукте.
tablename = "productTable"; data = sqlread(conn,tablename,'MaxRows',10);
Отобразите первые несколько строк данных о продукте.
head(data,3)
ans=3×5 table
productnumber stocknumber suppliernumber unitcost productdescription
_____________ ___________ ______________ ________ __________________
9 1.2597e+05 1003 13 "Victorian Doll"
8 2.1257e+05 1001 5 "Train Set"
7 3.8912e+05 1007 16 "Engine Kit"
Отобразите первые несколько описаний продукта.
data.productdescription(1:3)
ans = 3×1 string
"Victorian Doll"
"Train Set"
"Engine Kit"
Сортировка строк в data столбцом описания продукта в алфавитном порядке.
column = "productdescription";
data = sortrows(data,column);Отобразите первые несколько описаний продукта после сортировки.
data.productdescription(1:3)
ans = 3×1 string
"Building Blocks"
"Engine Kit"
"Painting Set"
Закройте соединение с базой данных.
close(conn)
Получите информацию о метаданных при импортировании данных от таблицы базы данных с помощью собственного интерфейса PostgreSQL. Импортируйте данные с помощью sqlread функционируйте и исследуйте информацию о метаданных при помощи записи через точку.
Этот пример использует outages.csv файл, который содержит данные об отключении электричества. Пример использует базу данных версии 9.405 базы данных PostgreSQL и libpq версию драйвера 10.12.
Создайте собственное соединение с базой данных интерфейса PostgreSQL к базе данных PostgreSQL с помощью имени источника данных, имени пользователя и пароля.
datasource = "PostgreSQLDataSource"; username = "dbdev"; password = "matlab"; conn = postgresql(datasource,username,password);
Загрузите информацию об отключении электричества в рабочую область MATLAB®.
outages = readtable("outages.csv");Создайте outages таблица базы данных с помощью информации об отключении электричества. Используйте 'ColumnType' аргумент пары "имя-значение", чтобы задать типы данных переменных в таблице MATLAB®.
tablename = "outages"; sqlwrite(conn,tablename,outages, ... 'ColumnType',["varchar(120)","timestamp","numeric(38,16)", ... "numeric(38,16)","timestamp","varchar(150)"])
Импортируйте данные в рабочее пространство MATLAB и возвратите информацию о метаданных об импортированных данных.
[data,metadata] = sqlread(conn,tablename);
Просмотрите имена переменных в импортированных данных.
metadata.Properties.RowNames
ans = 6×1 cell
{'region' }
{'outagetime' }
{'loss' }
{'customers' }
{'restorationtime'}
{'cause' }
Просмотрите тип данных каждой переменной в импортированных данных.
metadata.VariableType
ans = 6×1 cell
{'string' }
{'datetime'}
{'double' }
{'double' }
{'datetime'}
{'string' }
Просмотрите недостающее значение данных для каждой переменной в импортированных данных.
metadata.FillValue
ans=6×1 cell array
{1×1 missing}
{[NaT ]}
{[ NaN]}
{[ NaN]}
{[NaT ]}
{1×1 missing}
Просмотрите индексы недостающих данных для каждой переменной в импортированных данных.
metadata.MissingRows
ans=6×1 cell array
{ 0×1 double}
{ 0×1 double}
{604×1 double}
{328×1 double}
{ 29×1 double}
{ 0×1 double}
Отобразите первые восемь строк импортированных данных, которые содержат недостающие временные стоимости восстановления. data содержит временные стоимости восстановления в пятой переменной. Используйте числовые индексы, чтобы найти строки с недостающими данными.
index = metadata.MissingRows{5,1};
nullrestoration = data(index,:);
head(nullrestoration)ans=8×6 table
region outagetime loss customers restorationtime cause
___________ ____________________ ______ __________ _______________ __________________
"SouthEast" 23-Jan-2003 00:49:00 530.14 2.1204e+05 NaT "winter storm"
"NorthEast" 18-Sep-2004 05:54:00 0 0 NaT "equipment fault"
"MidWest" 20-Apr-2002 16:46:00 23141 NaN NaT "unknown"
"NorthEast" 16-Sep-2004 19:42:00 4718 NaN NaT "unknown"
"SouthEast" 14-Sep-2005 15:45:00 1839.2 3.4144e+05 NaT "severe storm"
"SouthEast" 17-Aug-2004 17:34:00 624.1 1.7879e+05 NaT "severe storm"
"SouthEast" 28-Jan-2006 23:13:00 498.78 NaN NaT "energy emergency"
"West" 20-Jun-2003 18:22:00 0 0 NaT "energy emergency"
Удалите outages таблица базы данных с помощью execute функция.
sqlstr = "DROP TABLE ";
sqlquery = strcat(sqlstr,tablename);
execute(conn,sqlquery)Закройте соединение с базой данных.
close(conn)
conn — Собственный компонент PostgreSQL соединяет интерфейсом с соединением с базой данныхconnection объектСобственный компонент PostgreSQL соединяет интерфейсом с соединением с базой данных в виде connection объект.
tablename — Имя таблицы базы данныхИмя таблицы базы данных в виде вектора символов или строкового скаляра, обозначающего имя таблицы в базе данных.
Пример: 'employees'
Типы данных: char | string
opts — Настройки импорта базы данныхSQLImportOptions объектНастройки импорта базы данных в виде SQLImportOptions объект.
Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
data = sqlread(conn,"inventoryTable",'Catalog',"toystore_doc",'Schema',"dbo",'MaxRows',5) импорт пять строк данных из таблицы базы данных inventoryTable сохраненный в toystore_doc каталог и dbo схема.Catalog — Имя каталога базы данныхИмя каталога базы данных в виде разделенной запятой пары, состоящей из 'Catalog' и вектор символов или строковый скаляр. Каталог служит контейнером для схем в базе данных и содержит связанную информацию о метаданных. База данных может иметь многочисленные каталоги.
Пример: 'Catalog','toy_store'
Типы данных: char | string
Schema — Имя схемы базы данныхИмя схемы базы данных в виде разделенной запятой пары, состоящей из 'Schema' и вектор символов или строковый скаляр. Схема задает таблицы базы данных, представления, отношения среди таблиц и другие элементы. Каталог базы данных может иметь многочисленные схемы.
Пример: 'Schema','dbo'
Типы данных: char | string
MaxRows — Максимальное количество строк, чтобы возвратитьсяМаксимальное количество строк, чтобы возвратиться в виде разделенной запятой пары, состоящей из 'MaxRows' и положительный числовой скаляр. По умолчанию, sqlread функция возвращает все строки в выполняемый SQL-запрос. Используйте этот аргумент пары "имя-значение", чтобы ограничить количество строк, импортированных в MATLAB.
Пример: 'MaxRows',10
Типы данных: double
VariableNamingRule — Переменное правило именования"preserve" (значение по умолчанию) | "modify"Переменное правило именования в виде разделенной запятой пары, состоящей из 'VariableNamingRule' и одно из этих значений:
"preserve" — Сохраните большинство имен переменных когда sqlread функция импортирует данные. Для получения дополнительной информации смотрите раздел Limitations.
"modify" — Удалите символы non-ASCII из имен переменных когда sqlread функция импортирует данные.
Пример: 'VariableNamingRule',"modify"
Типы данных: string
data — Импортированные данныеИмпортированные данные, возвращенные как таблица. Строки таблицы соответствуют строкам в таблице базы данных tablename. Переменные в таблице соответствуют каждому столбцу в таблице базы данных.
Если таблица базы данных не содержит данных, чтобы импортировать, то data пустая таблица.
Когда вы импортируете данные, sqlread функция преобразует тип данных каждого столбца от базы данных PostgreSQL до типа данных MATLAB. Эта таблица сопоставляет тип данных столбца базы данных к конвертированному типу данных MATLAB.
| Тип данных PostgreSQL | Тип данных MATLAB |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
metadata — Информация о метаданныхИнформация о метаданных, возвращенная как таблица с этими переменными.
| Имя переменной | Описание переменной | Типы данных переменных |
|---|---|---|
| Тип данных каждой переменной в импортированных данных | Массив ячеек из символьных векторов |
| Значение недостающих данных для каждой переменной в импортированных данных | Массив ячеек пропавших без вести значений данных |
| Индексы для каждого вхождения недостающих данных в каждой переменной импортированных данных | Массив ячеек числовых индексов |
По умолчанию, sqlread функция импортирует текстовые данные как вектор символов и числовые данные как двойное. FillValue пустой символьный массив (для текстовых данных) или NaN (для числовых данных) по умолчанию. Чтобы изменить недостающее значение данных в другое значение, используйте SQLImportOptions объект.
RowNames свойство metadata таблица содержит имена переменных в импортированных данных.
Аргумент пары "имя-значение" 'VariableNamingRule' имеет эти ограничения:
sqlread функция возвращает ошибку, когда вы используете 'VariableNamingRule' аргумент пары "имя-значение" с SQLImportOptions объект opts.
Когда 'VariableNamingRule' аргумент пары "имя-значение" установлен в значение 'modify':
Имена переменных Properties'RowNames' , и VariableNames зарезервированные идентификаторы для table тип данных.
Длина каждого имени переменной должна быть меньше номера, возвращенного namelengthmax.
postgresql | close | sqlread | sqlfind | sqlinnerjoin | sqlouterjoin | fetch | databaseImportOptions | getoptions | setoptions | reset | execute
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.