exponenta event banner

Настройка параметров импорта данных из базы данных 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)

См. также

Объекты

Функции

Связанные темы

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