Настройка опций для импорта данных из базы данных PostgreSQL в MATLAB

В этом примере показано, как настроить настройки импорта при импорте данных из таблицы базы данных с помощью собственного интерфейса PostgreSQL. Управляйте настройками импорта путем создания SQLImportOptions объект. Затем настройте настройки импорта для нескольких столбцов базы данных. Импортируйте данные с помощью sqlread функция.

В примере используется patients.xls электронная таблица, которая содержит информацию о пациенте. Кроме того, в примере используется база данных 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 Объект

Создайте SQLImportOptions объект с использованием patients таблица базы данных и databaseImportOptions функция.

opts = databaseImportOptions(conn,tablename);

Отображение типов данных переменных по умолчанию путем доступа к VariableNames и VariableTypes свойства SQLImportOptions объект с использованием записи через точку.

disp([opts.VariableNames' opts.VariableTypes'])
    {'lastname'                }    {'string' }
    {'gender'                  }    {'string' }
    {'age'                     }    {'double' }
    {'location'                }    {'string' }
    {'height'                  }    {'double' }
    {'weight'                  }    {'double' }
    {'smoker'                  }    {'logical'}
    {'systolic'                }    {'double' }
    {'diastolic'               }    {'double' }
    {'selfassessedhealthstatus'}    {'string' }

Настройка настроек импорта

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

textvars = ["lastname" "gender" "location" "selfassessedhealthstatus"];
opts = setoptions(opts,textvars,'Type',"char");

numvars = ["age" "height" "weight" "systolic" "smoker" "diastolic"];
opts = setoptions(opts,numvars,'Type',"single");

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

disp([opts.VariableNames' opts.VariableTypes'])
    {'lastname'                }    {'char'  }
    {'gender'                  }    {'char'  }
    {'age'                     }    {'single'}
    {'location'                }    {'char'  }
    {'height'                  }    {'single'}
    {'weight'                  }    {'single'}
    {'smoker'                  }    {'single'}
    {'systolic'                }    {'single'}
    {'diastolic'               }    {'single'}
    {'selfassessedhealthstatus'}    {'char'  }

Установите настройки импорта, чтобы заменить отсутствующие данные в заданных переменных значением заливки unknown.

varnames = ["lastname" "location"];
opts = setoptions(opts,varnames,'FillValue',"unknown");

Установите настройки импорта, чтобы опустить строки с отсутствующими данными в lastname переменная.

varname = "lastname";
opts = setoptions(opts,varname,'MissingRule',"omitrow");

Предварительный просмотр данных перед импортом

Перед импортом данных просмотрите их с помощью настроенных настроек импорта.

T = preview(opts)
T=8×10 table
      lastname        gender      age              location               height    weight    smoker    systolic    diastolic    selfassessedhealthstatus
    ____________    __________    ___    _____________________________    ______    ______    ______    ________    _________    ________________________

    {'Smith'   }    {'Male'  }    38     {'County General Hospital'  }      71       176        1         124          93             {'Excellent'}      
    {'Johnson' }    {'Male'  }    43     {'VA Hospital'              }      69       163        0         109          77             {'Fair'     }      
    {'Williams'}    {'Female'}    38     {'St. Mary's Medical Center'}      64       131        0         125          83             {'Good'     }      
    {'Jones'   }    {'Female'}    40     {'VA Hospital'              }      67       133        0         117          75             {'Fair'     }      
    {'Brown'   }    {'Female'}    49     {'County General Hospital'  }      64       119        0         122          80             {'Good'     }      
    {'Davis'   }    {'Female'}    46     {'St. Mary's Medical Center'}      68       142        0         121          70             {'Good'     }      
    {'Miller'  }    {'Female'}    33     {'VA Hospital'              }      64       142        1         130          88             {'Good'     }      
    {'Wilson'  }    {'Male'  }    40     {'VA Hospital'              }      68       180        0         115          82             {'Good'     }      

Импорт данных с помощью настроек импорта

Импортируйте переменные с настроенными типами данных с помощью sqlread и отобразите первые восемь строк импортированных данных.

T = sqlread(conn,tablename,opts);
head(T)
ans=8×10 table
      lastname        gender      age              location               height    weight    smoker    systolic    diastolic    selfassessedhealthstatus
    ____________    __________    ___    _____________________________    ______    ______    ______    ________    _________    ________________________

    {'Smith'   }    {'Male'  }    38     {'County General Hospital'  }      71       176        1         124          93             {'Excellent'}      
    {'Johnson' }    {'Male'  }    43     {'VA Hospital'              }      69       163        0         109          77             {'Fair'     }      
    {'Williams'}    {'Female'}    38     {'St. Mary's Medical Center'}      64       131        0         125          83             {'Good'     }      
    {'Jones'   }    {'Female'}    40     {'VA Hospital'              }      67       133        0         117          75             {'Fair'     }      
    {'Brown'   }    {'Female'}    49     {'County General Hospital'  }      64       119        0         122          80             {'Good'     }      
    {'Davis'   }    {'Female'}    46     {'St. Mary's Medical Center'}      68       142        0         121          70             {'Good'     }      
    {'Miller'  }    {'Female'}    33     {'VA Hospital'              }      64       142        1         130          88             {'Good'     }      
    {'Wilson'  }    {'Male'  }    40     {'VA Hospital'              }      68       180        0         115          82             {'Good'     }      

Удаление примерных данных и закрытие подключения к базе данных

Удалите patients таблица базы данных с использованием execute функция.

sqlquery = strcat("DROP TABLE ",tablename);
execute(conn,sqlquery)

Закройте подключение к базе данных.

close(conn)

См. также

Объекты

Функции

Похожие темы

Внешние веб-сайты