Друзья, столкнулся со сложной задачей, к которой пока что не могу подобрать подход. Есть RDF файл, в котором описаны хим. соединения и цена по каждому этому веществу, ну и еще куча ненужной инфы. Файл весит в среднем 200-500мб Пример части файла ниже. Тоесть первый блок с инфой о файле, и последующие описывают вещества, разделены все блоки строкй "M END". $DTYPE указывает на название поля, $DATUM на его значение. Мне необходимо каким-то образом распарсить данный файл, получить данные из строки $DTYPE MOL:MOLNAME в каждом блоке, тоесть данные из $DATUM под этой строкой и данные о цене за 1G этого вещества (есть ниже в каждом блоке), сопоставить это все и загнать в sql. Беда еще в том, что файл мегабольшой около 19 миллионов строк.....Гуру, помогите... Код (Text): $RDFILE 1 $DATM 07/02/17 02:10 $MFMT $MIREG 3280002 SciTegic07021702102D 17 18 0 0 0 0 999 V2000 4.2990 4.6471 0.0000 C 0 0 5.7990 4.6471 0.0000 C 0 0 3.0000 5.3971 0.0000 C 0 0 3.0000 3.8971 0.0000 C 0 0 6.5490 3.3481 0.0000 C 0 0 8.0490 3.3481 0.0000 C 0 0 6.5490 5.9462 0.0000 C 0 0 8.7990 4.6471 0.0000 C 0 0 8.0490 5.9462 0.0000 C 0 0 8.7990 2.0490 0.0000 O 0 0 5.7990 2.0490 0.0000 O 0 0 2.2500 2.5981 0.0000 C 0 0 0.7500 2.5981 0.0000 N 0 0 10.2990 4.6471 0.0000 O 0 0 10.2990 2.0490 0.0000 C 0 0 6.5490 0.7500 0.0000 C 0 0 11.0490 5.9462 0.0000 C 0 0 2 1 1 0 3 1 1 0 4 1 1 0 5 2 2 0 6 5 1 0 7 2 1 0 8 9 1 0 9 7 2 0 10 6 1 0 11 5 1 0 12 4 1 0 13 12 1 0 14 8 1 0 15 10 1 0 16 11 1 0 17 14 1 0 3 4 1 0 6 8 2 0 M END $DTYPE MOL:MOLNAME $DATUM [2-(2,3,4-TRIMETHOXYPHENYL)CYCLOPROPYL]METHANAMINE $DTYPE MOL:MDLNUMBER $DATUM MFCD17524965 $DTYPE MOL:MOLECULAR.WEIGHT $DATUM 237.29486 $DTYPE MOL:SUPPLIER(1) $DATUM ........................ $DTYPE MOL:SUPPLIER(2) $DATUM ABAMACHEM $DTYPE MOL:SUPPLIER(3) $DATUM [2-(2,3,4-TRIMETHOXYPHENYL)CYCLOPROPYL]METHANAMINE $DTYPE MOL:SUPPLIER(4) $DATUM . $DTYPE MOL:SUPPLIER(5) $DATUM _F ABA-6181259 1 G EUR 399 $DTYPE MOL:SUPPLIER(6) $DATUM _F ABA-6181259 2.5 G EUR 827 $DTYPE MOL:SUPPLIER(7) $DATUM _F ABA-6181259 5 G EUR 1048 $DTYPE MOL:SUPPLIER(8) $DATUM _F ABA-6181259 10 G EUR 1317 $DTYPE MOL:SUPPLIER(9) $DATUM ........................ $DTYPE MOL:SUPPLIER(10) $DATUM BCH-RESEARCH $DTYPE MOL:SUPPLIER(11) $DATUM [2-(2,3,4-TRIMETHOXYPHENYL)CYCLOPROPYL]METHANAMINE $DTYPE MOL:SUPPLIER(12) $DATUM . $DTYPE MOL:SUPPLIER(13) $DATUM _F BC2424004 1 G EUR 349 $DTYPE MOL:SUPPLIER(14) $DATUM _F BC2424004 2.5 G EUR 723 $DTYPE MOL:SUPPLIER(15) $DATUM _F BC2424004 5 G EUR 916 $DTYPE MOL:SUPPLIER(16) $DATUM _F BC2424004 10 G EUR 1152 $DTYPE MOL:SUPPLIER(17) $DATUM ........................ $DTYPE MOL:SYMBOL(1) $DATUM [2-(2,3,4-TRIMETHOXYPHENYL)CYCLOPROPYL]METHANAMINE $DTYPE MOL:BULK.FINE(1) $DATUM F $DTYPE MOL:SUPPLIER.CODEN(1) $DATUM ABAMACHEM $DTYPE MOL:SUPPLIER.CODEN(2) $DATUM BCH-RESEARCH $DTYPE MOL:SUPPLIER.INDEX(1) $DATUM 2 8 ABAMACHEM $DTYPE MOL:SUPPLIER.INDEX(2) $DATUM 10 16 BCH-RESEARCH $DTYPE MOL:SYMBOL.PACKED(1) $DATUM 2234TRIMETHOXYPHENYLCYCLOPROPYLMETHANAMINE $DTYPE MOL:HACCEPTORS $DATUM 4 $DTYPE MOL:HDONORS $DATUM 1 $DTYPE MOL:MOLWEIGHT_FRAG $DATUM 237.297 $DTYPE MOL:RULE5 $DATUM 0 $DTYPE MOL:TDF $DATUM 5 $DTYPE MOL:CLOGP $DATUM 1.7942 $MFMT $MIREG 3280003 SciTegic07021702102D 18 20 0 0 0 0 999 V2000 6.1471 3.7500 0.0000 C 0 0 5.3971 5.0490 0.0000 C 0 0 4.6471 3.7500 0.0000 C 0 0 7.4462 3.0000 0.0000 C 0 0 8.7452 3.7500 0.0000 C 0 0 10.0442 3.0000 0.0000 C 0 0 10.0442 1.5000 0.0000 C 0 0 7.4461 1.5000 0.0000 C 0 0 11.3433 0.7500 0.0000 C 0 0 8.7452 0.7500 0.0000 C 0 0 11.3433 3.7500 0.0000 C 0 0 12.6423 1.5000 0.0000 C 0 0 3.3481 3.0000 0.0000 C 0 0 2.0490 3.7500 0.0000 N 0 0 12.6423 3.0000 0.0000 C 0 0 13.9413 0.7500 0.0000 O 0 0 0.7500 3.0000 0.0000 C 0 0 15.2404 1.5000 0.0000 C 0 0 2 1 1 0 3 1 1 0 4 1 1 0 5 4 2 0 6 5 1 0 7 10 1 0 8 4 1 0 9 7 1 0 10 8 2 0 11 6 1 0 12 9 2 0 13 3 1 0 14 13 1 0 15 11 2 0 16 12 1 0 17 14 1 0 18 16 1 0 3 2 1 0 6 7 2 0 12 15 1 0 M END $DTYPE MOL:MOLNAME $DATUM ([2-(6-METHOXYNAPHTHALEN-2-YL)CYCLOPROPYL]METHYL)(METHYL)AMINE $DTYPE MOL:MDLNUMBER $DATUM MFCD17524967 $DTYPE MOL:MOLECULAR.WEIGHT $DATUM 241.32815 $DTYPE MOL:SUPPLIER(1) $DATUM ........................ $DTYPE MOL:SUPPLIER(2) $DATUM BCH-RESEARCH $DTYPE MOL:SUPPLIER(3) $DATUM ([2-(6-METHOXYNAPHTHALEN-2-YL)CYCLOPROPYL]METHYL)(METHYL)AMINE $DTYPE MOL:SUPPLIER(4) $DATUM . $DTYPE MOL:SUPPLIER(5) $DATUM _F BC520197 1 G EUR 349 $DTYPE MOL:SUPPLIER(6) $DATUM _F BC520197 2.5 G EUR 723 $DTYPE MOL:SUPPLIER(7) $DATUM _F BC520197 5 G EUR 916 $DTYPE MOL:SUPPLIER(8) $DATUM _F BC520197 10 G EUR 1152 $DTYPE MOL:SUPPLIER(9) $DATUM ........................ $DTYPE MOL:SYMBOL(1) $DATUM ([2-(6-METHOXYNAPHTHALEN-2-YL)CYCLOPROPYL]METHYL)(METHYL)AMINE $DTYPE MOL:BULK.FINE(1) $DATUM F $DTYPE MOL:SUPPLIER.CODEN(1) $DATUM BCH-RESEARCH $DTYPE MOL:SUPPLIER.INDEX(1) $DATUM 2 8 BCH-RESEARCH $DTYPE MOL:SYMBOL.PACKED(1) $DATUM 26METHOXYNAPHTHALEN2YLCYCLOPROPYLMETHYLMETHYLAMINE $DTYPE MOL:HACCEPTORS $DATUM 2 $DTYPE MOL:HDONORS $DATUM 1 $DTYPE MOL:MOLWEIGHT_FRAG $DATUM 241.332 $DTYPE MOL:RULE5 $DATUM 0 $DTYPE MOL:TDF $DATUM 4 $DTYPE MOL:CLOGP $DATUM 4.006 $MFMT $MIREG 3280004 SciTegic07021702102D 17 18 0 0 0 0 999 V2000 5.0490 5.7962 0.0000 C 0 0 3.7500 6.5462 0.0000 C 0 0 3.7500 5.0462 0.0000 C 0 0 6.5490 5.7962 0.0000 C 0 0 7.2990 1.8991 0.0000 C 0 0 7.2990 4.4971 0.0000 C 0 0 6.5490 3.1981 0.0000 O 0 0 6.2384 0.8384 0.0000 F 0 0 8.2632 0.7500 0.0000 F 0 0 8.5278 2.7594 0.0000 F 0 0 3.0000 3.7471 0.0000 C 0 0 1.5000 3.7471 0.0000 N 0 0 7.2990 7.0952 0.0000 C 0 0 8.7990 4.4971 0.0000 C 0 0 0.7500 2.4481 0.0000 C 0 0 8.7990 7.0952 0.0000 C 0 0 9.5490 5.7962 0.0000 C 0 0 2 1 1 0 3 1 1 0 4 1 1 0 5 7 1 0 6 4 2 0 7 6 1 0 8 5 1 0 9 5 1 0 10 5 1 0 11 3 1 0 12 11 1 0 13 4 1 0 14 6 1 0 15 12 1 0 16 13 2 0 17 16 1 0 3 2 1 0 14 17 2 0 M END
Можно загнать в https://clickhouse.yandex/ и потом оттуда уже вытаскивать что нужно. Хотя 200-300мб это не большой вес, было б 200-300Гб - тогда да.