exponenta event banner

SQLImportOptions

Определение параметров импорта данных базы данных

Описание

После создания SQLImportOptions можно настроить параметры импорта данных из базы данных в MATLAB ®. Параметры импорта включают определение типов данных и значений заполнения для отсутствующих данных.

Создание

Создание SQLImportOptions объект с databaseImportOptions функция.

Свойства

развернуть все

Флаг для исключения дубликатов из импортированных данных, указанный как false или true. Чтобы исключить дубликаты из данных в таблице базы данных или результатов SQL-запроса, установите ExcludeDuplicates свойство для true с использованием точечной нотации.

Установка этого свойства эквивалентна использованию DISTINCT Инструкция SQL в ANSI SQL.

Типы данных: logical

Имена переменных, заданные как массив ячеек символьных векторов. Каждый вектор символов в массиве ячеек указывает имя импортированного столбца базы данных из SQL-запроса или таблицы базы данных.

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

Имена переменных по умолчанию - это имена столбцов в SQL-запросе или таблице базы данных.

Пример: {'productNumber','stockNumber'}

Типы данных: cell

Типы переменных, заданные как массив ячеек символьных векторов. Каждый символьный вектор в массиве ячеек указывает тип данных импортированного столбца базы данных из SQL-запроса или таблицы базы данных. Каждый символьный вектор должен быть допустимым типом данных MATLAB.

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

При создании SQLImportOptions объект, databaseImportOptions функция автоматически определяет тип данных на основе типа данных столбца базы данных. Эта таблица сопоставляет тип данных столбца базы данных с обнаруженным типом данных MATLAB.

Тип данных базы данныхОбнаруженный тип данных MATLAB

TEXT

char

DATE, TIME, DATETIME, или TIMESTAMP

char

NUMERIC

double

BOOLEAN или BIT

logical

При использовании собственного интерфейса MySQL ® эта таблица сопоставляет тип данных столбца базы данных с обнаруженным типом данных MATLAB.

Тип данных MySQLТип данных MATLAB

BIT

logical

TINYINT

double

SMALLINT

double

BIGINT

double

REAL

double

DOUBLE

double

DECIMAL

double

NUMERIC

double

CHAR

string

VARCHAR

string

LONGVARCHAR

string

TIMESTAMP

datetime

DATE

datetime

TIME

duration

YEAR

double

ENUM

categorical

JSON

char

При использовании собственного интерфейса PostgreSQL эта таблица сопоставляет тип данных столбца базы данных с обнаруженным типом данных MATLAB.

Тип данных PostgreSQLТип данных MATLAB

Boolean

logical

Smallint

double

Integer

double

Bigint

double

Decimal

double

Numeric

double

Real

double

Double Precision

double

Smallserial

double

Serial

double

Bigserial

double

Money

double

Varchar

string

Char

string

Text

string

Bytea

string

Timestamp

datetime

Timestampz

datetime

Abstime

datetime

Date

datetime

Time

duration

Timez

duration

Interval

calendarDuration

Reltime

calendarDuration

Enum

categorical

Cidr

string

Inet

string

Macaddr

string

Uuid

string

Xml

string

Чтобы обновить VariableTypes свойство, используйте setoptions функция.

Пример: {'int64','int32'}

Типы данных: cell

Подмножество импортируемых переменных, указанное как символьный вектор, массив ячеек символьных векторов или числовой массив, содержащий индексы. Используйте SelectedVariableNames для определения столбцов базы данных для импорта в рабочую область MATLAB.

Значения в SelectedVariableNames свойство должно быть равно значениям в VariableNames свойство или подмножество этих значений. По умолчанию SelectedVariableNames содержит все имена переменных, указанные в VariableNames собственность. Когда SelectedVariableNames свойство задает все имена переменных, sqlread, fetchи функции импорта DatabaseDatastore объект импортирует все столбцы базы данных.

Пример: {'productNumber','stockNumber'}

Пример: [1,2,3]

Типы данных: double | char | cell

Значение заливки для отсутствующих данных, указанное как массив ячеек, содержащий одно или несколько значений. Каждое значение может быть одним из следующих типов данных:

  • Все целочисленные классы

  • single

  • double

  • char

  • string скаляр

  • logical

  • datetime множество

  • categorical множество

  • missing

При создании SQLImportOptions объект, databaseImportOptions функция автоматически определяет значение заполнения для отсутствующих данных на основе типа данных столбца базы данных. Эта таблица сопоставляет тип данных столбца базы данных с обнаруженным значением заполнения MATLAB.

Тип данных базы данныхОбнаруженное значение заполнения MATLAB

TEXT

''

DATE, TIME, DATETIME, или TIMESTAMP

''

NUMERIC

NaN

BOOLEAN или BIT

false

Если вы используете собственный интерфейс MySQL, эта таблица сопоставляет тип данных столбца базы данных с обнаруженным типом данных MATLAB.

Тип данных MySQLОбнаруженное значение заполнения MATLAB

CHAR, VARCHAR, LONGVARCHAR, или JSON

'' (если VariableTypes свойство - char) или <missing> (если VariableTypes свойство - string)

DATE или TIMESTAMP

NaT

TIME

NaN
  • TINYINT

  • SMALLINT

  • BIGINT

  • REAL

  • DOUBLE

  • DECIMAL

  • NUMERIC

  • YEAR

NaN

ENUM

<undefined>

При использовании собственного интерфейса PostgreSQL эта таблица сопоставляет тип данных столбца базы данных с обнаруженным типом данных MATLAB.

Тип данных PostgreSQLОбнаруженное значение заполнения MATLAB

boolean

false
  • smallint

  • integer

  • bigint

  • decimal

  • numeric

  • real

  • double precision

NaN

char, varchar, или text

<missing>

date или timestamp

NaT

time

NaN

interval

NaN

enum

undefined

Чтобы обновить FillValues свойство, используйте setoptions функция.

Пример: {'',NaN}

Типы данных: cell

Параметры импорта переменных для конкретного типа, возвращаемые в виде массива объектов параметров импорта переменных. Массив содержит объект, соответствующий каждой переменной, указанной в VariableNames собственность. Каждый объект в массиве содержит свойства, поддерживающие импорт данных с определенным типом данных.

Чтобы запросить текущие (или обнаруженные) параметры переменной, используйте getoptions функция.

Чтобы задать и настроить параметры переменной, используйте setoptions функция.

Пример: opts.VariableOptions возвращает коллекцию SQLVariableImportOptions объекты, по одному, соответствующие каждой переменной в данных.

Правило именования переменных, указанное как одно из следующих значений:

  • "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.

Представлен в R2018b