создание mysql таблицы и загрузка данных - PullRequest
0 голосов
/ 09 мая 2020

У меня проблема.

У меня есть эти данные. Данные хранятся в файле gene_ontology.txt, который был извлечен из: http://gala.bx.psu.edu/downloads/hg15/genes/ В этих данных во втором столбце есть несколько строк, «-», «,», а также пробелы между строками и числами. .

ПРИМЕР ДАННЫХ:

GO:0000001,mitochondrion inheritance
GO:0000002,mitochondrial genome maintenance
GO:0000003,reproduction
GO:0000005,ribosomal-chaperone activity
GO:0000006,high affinity zinc uptake transmembrane transporter......

Я хочу вставить эти данные в таблицу, которую я создал, как показано ниже:

mysql> create table annotation
    -> (GOid VARCHAR(255) NOT NULL,
    -> FUNCTION TEXT NOT NULL,
   -> PRIMARY KEY goid (goid));

при загрузке:

LOAD DATA LOCAL INFILE 'gene_ontology.txt' INTO TABLE annotation FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';

Query OK, 26077 rows affected, 1639 warnings (0.89 sec)
Records: 26083  Deleted: 0  Skipped: 6  Warnings: 1639  (<- LOADING GAVE ME WARNING AND SKIPPED RESULTS)

Результат для:

mysql> SELECT GOid FROM annotation LIMIT 6;

показывает хорошие результаты

+-------------+
| GOid        |
+-------------+
|  GO:0000001 |
|  GO:0000002 |
|  GO:0000003 |
|  GO:0000005 |
|  GO:0000006 |
+-------------+

enter image description here

но проблема в том, что когда я выбираю оба столбца:

mysql> SELECT GOid, FUNCTION FROM annotation LIMIT 10;

+-------------+----------------------------------------------------------------+
| GOid        | FUNCTION                                                        |
+-------------+----------------------------------------------------------------+
                                     |nce
                              |enome maintenance
                                                  |
                                  | activity
  |GO:0000006 | high affinity zinc uptake transmembrane transporter activity
      |000007 | low-affinity zinc ion transmembrane transporter activity
                                               |
|  GO:0000009 | alpha-1                                                        |
                     |hexaprenyltranstransferase activity
                                       |
+-------------+----------------------------------------------------------------+

или только второй:

 +----------------------------------------------------------------+
 | FUNCION                                                        |
 +----------------------------------------------------------------+
                                      |
                               |nce
                                                  |
                                  |
 |igh affinity zinc uptake transmembrane transporter activity
 |ffinity zinc ion transmembrane transporter activity
                                                   |
 | alpha-1                                                        |
                     |stransferase activity
                                           |
 +----------------------------------------------------------------+

enter image description here

Я не Не знаю, что происходит. Чтобы решить эту проблему, меня пытались изменить тип «FUNCTION», используя LONGTEXT, а также BLOB. Я внес эти изменения, так как считал, что проблема заключается в типе второго столбца (FUNCTION). Но мне это не удалось.

1 Ответ

2 голосов
/ 09 мая 2020

Проблема, похоже, связана с запятой "," между текстом второго столбца.

Попробуйте загрузить полный файл с фиксированной шириной в один столбец в TableA. Затем используйте substr(), чтобы поместить первое поле во вторую таблицу TableB's column1, а второе поле - в column2.

Это может привести к загрузке данных, и вы сможете анализировать данные дальше, чтобы улучшить процесс загрузки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...