Импорт данных в 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, Location, SelfAssessedHealthStatus, и Smoker. В примере используется база данных PostgreSQL версии 9.405 и драйвер 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, location, smoker, и selfassessedhealthstatus переменных с использованием setoptions функция. Потому что gender, location, и 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 файл, содержащий данные об отключении. В примере используется база данных PostgreSQL версии 9.405 и драйвер 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 - Подключение базы данных собственного интерфейса PostgreSQLconnection объектПодключение базы данных собственного интерфейса 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 функция импортирует данные. Дополнительные сведения см. в разделе Ограничения.
"modify" - Удаление символов, отличных от 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.
close | databaseImportOptions | execute | fetch | getoptions | postgresql | reset | setoptions | sqlfind | sqlinnerjoin | sqlouterjoin | sqlread
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.