Определение параметров импорта данных базы данных
После создания SQLImportOptions можно настроить параметры импорта данных из базы данных в MATLAB ®. Параметры импорта включают определение типов данных и значений заполнения для отсутствующих данных.
Создание SQLImportOptions объект с databaseImportOptions функция.
ExcludeDuplicates - Флаг для исключения дубликатовfalse (по умолчанию) | trueФлаг для исключения дубликатов из импортированных данных, указанный как false или true. Чтобы исключить дубликаты из данных в таблице базы данных или результатов SQL-запроса, установите ExcludeDuplicates свойство для true с использованием точечной нотации.
Установка этого свойства эквивалентна использованию DISTINCT Инструкция SQL в ANSI SQL.
Типы данных: logical
VariableNames - Имена переменныхИмена переменных, заданные как массив ячеек символьных векторов. Каждый вектор символов в массиве ячеек указывает имя импортированного столбца базы данных из SQL-запроса или таблицы базы данных.
Для таблицы или SQL-запроса, содержащего только один столбец базы данных, массив ячеек содержит только один символьный вектор.
Имена переменных по умолчанию - это имена столбцов в SQL-запросе или таблице базы данных.
Пример:
{'productNumber','stockNumber'}
Типы данных: cell
VariableTypes - Типы переменныхТипы переменных, заданные как массив ячеек символьных векторов. Каждый символьный вектор в массиве ячеек указывает тип данных импортированного столбца базы данных из SQL-запроса или таблицы базы данных. Каждый символьный вектор должен быть допустимым типом данных MATLAB.
Для таблицы или SQL-запроса, содержащего только один столбец базы данных, массив ячеек содержит только один символьный вектор.
При создании SQLImportOptions объект, databaseImportOptions функция автоматически определяет тип данных на основе типа данных столбца базы данных. Эта таблица сопоставляет тип данных столбца базы данных с обнаруженным типом данных MATLAB.
| Тип данных базы данных | Обнаруженный тип данных MATLAB |
|---|---|
|
|
|
|
|
|
|
|
При использовании собственного интерфейса MySQL ® эта таблица сопоставляет тип данных столбца базы данных с обнаруженным типом данных MATLAB.
| Тип данных MySQL | Тип данных MATLAB |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
При использовании собственного интерфейса PostgreSQL эта таблица сопоставляет тип данных столбца базы данных с обнаруженным типом данных MATLAB.
| Тип данных PostgreSQL | Тип данных MATLAB |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Чтобы обновить VariableTypes свойство, используйте setoptions функция.
Пример:
{'int64','int32'}
Типы данных: cell
SelectedVariableNames - подмножество переменных для импорта;Подмножество импортируемых переменных, указанное как символьный вектор, массив ячеек символьных векторов или числовой массив, содержащий индексы. Используйте SelectedVariableNames для определения столбцов базы данных для импорта в рабочую область MATLAB.
Значения в SelectedVariableNames свойство должно быть равно значениям в VariableNames свойство или подмножество этих значений. По умолчанию SelectedVariableNames содержит все имена переменных, указанные в VariableNames собственность. Когда SelectedVariableNames свойство задает все имена переменных, sqlread, fetchи функции импорта DatabaseDatastore объект импортирует все столбцы базы данных.
Пример:
{'productNumber','stockNumber'}
Пример:
[1,2,3]
Типы данных: double | char | cell
FillValues - Заполнить значение для отсутствующих данныхЗначение заливки для отсутствующих данных, указанное как массив ячеек, содержащий одно или несколько значений. Каждое значение может быть одним из следующих типов данных:
Все целочисленные классы
single
double
char
string скаляр
logical
datetime множество
categorical множество
missing
При создании SQLImportOptions объект, databaseImportOptions функция автоматически определяет значение заполнения для отсутствующих данных на основе типа данных столбца базы данных. Эта таблица сопоставляет тип данных столбца базы данных с обнаруженным значением заполнения MATLAB.
| Тип данных базы данных | Обнаруженное значение заполнения MATLAB |
|---|---|
| '' |
| '' |
| NaN |
| false |
Если вы используете собственный интерфейс MySQL, эта таблица сопоставляет тип данных столбца базы данных с обнаруженным типом данных MATLAB.
| Тип данных MySQL | Обнаруженное значение заполнения MATLAB |
|---|---|
| '' (если VariableTypes свойство - char) или <missing> (если VariableTypes свойство - string) |
| NaT |
| NaN |
| NaN |
| <undefined> |
При использовании собственного интерфейса PostgreSQL эта таблица сопоставляет тип данных столбца базы данных с обнаруженным типом данных MATLAB.
| Тип данных PostgreSQL | Обнаруженное значение заполнения MATLAB |
|---|---|
| false |
| NaN |
| <missing> |
| NaT |
| NaN |
| NaN |
| undefined |
Чтобы обновить FillValues свойство, используйте setoptions функция.
Пример:
{'',NaN}
Типы данных: cell
VariableOptions - Специфичные для типа параметры импорта переменныхПараметры импорта переменных для конкретного типа, возвращаемые в виде массива объектов параметров импорта переменных. Массив содержит объект, соответствующий каждой переменной, указанной в VariableNames собственность. Каждый объект в массиве содержит свойства, поддерживающие импорт данных с определенным типом данных.
Чтобы запросить текущие (или обнаруженные) параметры переменной, используйте getoptions функция.
Чтобы задать и настроить параметры переменной, используйте setoptions функция.
Пример:
opts.VariableOptions возвращает коллекцию SQLVariableImportOptions объекты, по одному, соответствующие каждой переменной в данных.
VariableNamingRule - Правило именования переменных"modify" (по умолчанию) | "preserve"Правило именования переменных, указанное как одно из следующих значений:
"modify" - Удаление символов, отличных от ASCII, из имен переменных SQLImportOptions функция импортирует данные.
"preserve" - Сохранение большинства имен переменных при SQLImportOptions функция импортирует данные. Дополнительные сведения см. в разделе Ограничения.
Если вы используете собственный интерфейс MySQL или PostgreSQL, "preserve" является значением по умолчанию.
VariableNamingRule свойство имеет следующие ограничения:
Имена переменных Properties, RowNames, и VariableNames являются зарезервированными идентификаторами для table тип данных.
Длина каждого имени переменной должна быть меньше числа, возвращаемого namelengthmax.
Пример: 'VariableNamingRule',"modify"
Типы данных: string
getoptions | Получение параметров импорта данных базы данных |
preview | Просмотр восьми строк из базы данных с помощью параметров импорта |
reset | Восстановить параметры импорта данных базы данных по умолчанию |
setoptions | Настройка параметров импорта данных базы данных |
Настройка параметров импорта при импорте данных из таблицы базы данных. Управление параметрами импорта путем создания SQLImportOptions объект. Затем настройте параметры импорта для различных столбцов базы данных. Импорт данных с помощью sqlread функция.
В этом примере используется patients.xls файл, содержащий столбцы Gender, Location, SelfAssessedHealthStatus, и Smoker. В примере также используется база данных Microsoft ® SQL Server ® Version 11.00.2100 и 11.00.5058 драйверов Microsoft SQL Server.
Создайте подключение базы данных к базе данных Microsoft SQL Server с проверкой подлинности Windows ®. Укажите пустое имя пользователя и пароль.
datasource = 'MS SQL Server Auth'; conn = database(datasource,'','');
Загрузите информацию о пациенте в рабочую область 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: 'modify'
VariableNames: {'LastName', 'Gender', 'Age' ... and 7 more}
VariableTypes: {'char', 'char', 'double' ... and 7 more}
SelectedVariableNames: {'LastName', 'Gender', 'Age' ... and 7 more}
FillValues: {'', '', 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: 'char' | 'char' | 'double' | 'char' | 'double' | 'double' | 'double' | 'double' | 'double' | 'char'
MissingRule: 'fill' | 'fill' | 'fill' | 'fill' | 'fill' | 'fill' | 'fill' | 'fill' | 'fill' | 'fill'
FillValue: '' | '' | NaN | '' | NaN | NaN | NaN | NaN | NaN | ''
To access sub-properties of each variable, use getoptions
Изменение типов данных для Gender, Location, SelfAssessedHealthStatus, и Smoker переменных с использованием setoptions функция. Потому что Gender, Location, и SelfAssessedHealthStatus переменные указывают конечный набор повторяющихся значений, изменяют их тип данных на categorical. Потому что Smoker переменная хранит значения 0 и 1, измените тип данных на logical. Затем отобразите обновленные параметры импорта.
opts = setoptions(opts,{'Gender','Location','SelfAssessedHealthStatus'}, ...
'Type','categorical');
opts = setoptions(opts,'Smoker','Type','logical');
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' | 'logical' | '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 false 130 91 Fair
{'Gonzales' } Male 48 County General Hospital 71 174 false 123 79 Good
{'Bryant' } Female 48 County General Hospital 66 134 false 129 73 Excellent
{'Alexander'} Male 25 County General Hospital 69 171 true 128 99 Good
{'Russell' } Male 44 VA Hospital 69 188 true 124 92 Good
{'Griffin' } Male 49 County General Hospital 70 186 false 119 74 Fair
{'Diaz' } Male 45 County General Hospital 68 172 true 136 93 Good
{'Hayes' } Male 48 County General Hospital 66 177 false 114 86 Fair
Отображение сводки импортированных данных. sqlread применяет опции импорта к переменным в импортированных данных.
summary(data)
Variables:
LastName: 100×1 cell array of character vectors
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 logical
Values:
True 34
False 66
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 = ['DROP TABLE ' tablename];
execute(conn,sqlquery)Закройте подключение к базе данных.
close(conn)
Аргумент пары имя-значение 'VariableNamingRule' имеет следующие ограничения:
SQLImportOptions функция возвращает ошибку при использовании 'VariableNamingRule' аргумент пары имя-значение с SQLImportOptions объект opts.
Когда 'VariableNamingRule' аргумент пары имя-значение установлен в значение 'modify':
Имена переменных Properties, RowNames, и VariableNames являются зарезервированными идентификаторами для table тип данных.
Длина каждого имени переменной должна быть меньше числа, возвращаемого namelengthmax.
close | database | databaseDatastore | execute | fetch | sqlread | sqlwrite
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.