Управление памятью импорта данных

Чтобы импортировать данные с простыми запросами, можно использовать приложение Database Explorer. Для более сложных запросов и проблем памяти управления, используйте командную строку, чтобы импортировать данные в рабочую область MATLAB®. Чтобы понять различия между этими двумя подходами, смотрите, что Импорт Данных Использует Приложение Database Explorer или Командную строку.

Database Toolbox™ обеспечивает различные способы импортировать данные в рабочее пространство MATLAB от базы данных.

Функция sqlread

Если вы не знакомы с записью SQL-запросов, можно импортировать данные с помощью функции sqlread. Для этой функции нужны только соединение с базой данных и имя таблицы базы данных, чтобы импортировать данные. Кроме того, функция sqlread не требует, чтобы вы установили настройки базы данных.

Функция select

Для сбережений памяти можно импортировать и данные о доступе с помощью функции select. С этой функцией вы сохраняете память путем импортирования данных с помощью типов данных, заданных в базе данных. Табличные определения в базе данных задают тип данных для каждого столбца. Функция select сопоставляет тип данных в базе данных к соответствующему типу данных MATLAB для каждой переменной во время импорта данных. Вместо того, чтобы импортировать каждое числовое значение как double в MATLAB, функция select позволяет импорт различных целочисленных типов данных. Вы больше не должны преобразовывать тип данных числового значения к определенному числовому типу после импорта данных. Емкость памяти MATLAB, используемая типами данных целочисленного или беззнакового целого, является меньше, чем двойная точность. Поэтому функция select сохраняет память.

Эта таблица показывает типы числовых данных в базе данных и их эквивалентах MATLAB при использовании функции select.

Тип данных базы данныхТип данных MATLAB

SIGNED TINYINT

int8

UNSIGNED TINYINT

uint8

SIGNED SMALLINT

int16

UNSIGNED SMALLINT

uint16

SIGNED INT

int32

UNSIGNED INT

uint32

SIGNED BIGINT

int64

UNSIGNED BIGINT

uint64

REAL

single

FLOAT

single

DOUBLE

double

DECIMAL

double

NUMERIC

double

Булевская переменная

logical

Дата, время или текст

char

Например, создайте таблицу Patients с этим определением таблицы базы данных:

CREATE TABLE Patients(
    LastName VARCHAR(50),
    Gender VARCHAR(10),
    Age TINYINT,
    Location VARCHAR(300),
    Height SMALLINT,
    Weight SMALLINT,
    Smoker BIT,
    Systolic FLOAT,
    Diastolic NUMERIC,
    SelfAssessedHealthStatus VARCHAR(20))

Эти столбцы таблицы имеют типы числовых данных в базе данных:

  • Age

  • Height

  • Weight

  • Systolic

  • Diastolic

Функция fetch импортирует столбцы числовых данных с двойной точностью по умолчанию. Однако функция select импортирует столбцы в их соответствие с целочисленным типом данных. Когда вы импортируете использование функции select, соответствующие типы данных MATLAB для этих столбцов:

  • uint8

  • uint16

  • uint16

  • single

  • double

Функция fetch импортирует столбец Smoker как double в MATLAB. Однако функция select импортирует столбец Smoker как переменную logical.

Чтобы видеть типы данных после импорта данных, используйте функцию select с выходным аргументом metadata.

Задайте стратегию импорта Используя объект SQLImportOptions

Можно настроить настройки импорта для того, чтобы импортировать данные от базы данных в рабочее пространство MATLAB при помощи объекта SQLImportOptions с функцией fetch. Функция select задает тип данных MATLAB по умолчанию. Однако с объектом SQLImportOptions, можно задать стратегию импорта определенных столбцов базы данных и задать тип данных MATLAB для соответствующих импортированных данных.

Кроме того, можно задать categorical, datetime и целочисленные типы данных для импортированных данных с помощью объекта SQLImportOptions. Емкость памяти MATLAB, используемая, чтобы сохранить эти типы данных, является меньше, чем емкость памяти, используемая для альтернативных типов данных, таких как string или double.

Смотрите также

| | |

Похожие темы