какой тип sql дБ может хранить данные звука или массива в столбце? - PullRequest
1 голос
/ 27 января 2020

Мне нужно прикрепить, создать новый столбец в sql дБ. Он должен хранить числовое представление c numpy голоса пользователя - массив numpy или спектрограмму изображения. * Массив numpy выглядит следующим образом:

array([[  2.891e-07,   2.548e-03, ...,   8.116e-09,   5.633e-09],
       [  1.986e-07,   1.162e-02, ...,   9.332e-08,   6.716e-09],
       ...,
       [  3.668e-09,   2.029e-08, ...,   3.208e-09,   2.864e-09],
       [  2.561e-10,   2.096e-09, ...,   7.543e-10,   6.101e-10]])

Я знаю, sql может хранить только текстовые данные, задаваясь вопросом, можно ли кратко прикрепить или представить массив в столбце.

ID |    date     | voice
1    01-01-20      array([[  2.891e-07,   2.548e-03...
2    01-02-20      array([[  2.891e-07,  

1 Ответ

1 голос
/ 27 января 2020

Это зависит от вашей базы данных. Я даю вам ответы на 3 из наиболее распространенных баз данных, с которыми я работал:

1. Oracle:

Вы можете использовать тип данных BLOB для хранения самих двоичных файлов. Кроме того, если вы хотите сохранить массив вместо двоичного файла, вы также можете использовать тип данных CLOB. Подобно BLOB, CLOB содержит большие данные, но в символьном формате, поэтому он подходит для хранения больших текстов, например, упомянутых вами массивов.

Oracle Большие объекты

2. MySQL:

Тот же тип данных, BLOB, можно использовать и в MySQL. Тип данных TEXT (и его производные, такие как LARGETEXT) можно использовать для хранения большого массива.

MySQL Большие объекты

3 , PostgreSQL:

Pg SQL не имеет BLOB, но другой тип данных, называемый BYTEA, может хранить двоичные объекты. Кроме того, TEXT тип данных может хранить большие строки в Pg SQL.

PostgreSQL Большие объекты

ПРИМЕЧАНИЕ. Для работы с двоичными данными в базах данных требуется середина. Приложение уровня, чтобы действовать как «переводчик» между клиентом и сервером. Получите дополнительную информацию в ссылочных ссылках выше.

Кроме того, о «сокращенной версии» данных в столбце вы можете вставить первые 10 символов (или любое произвольное число, которое вам подходит) внутри таблицы. , У этого есть различные методы и процедуры, в зависимости от вашего механизма базы данных.

Надеюсь, что это ответило на ваш вопрос.

...