За последние 24 часа нас посетили 22512 программистов и 1141 робот. Сейчас ищет 851 программист ...

Распарсить RDF Файл большого размера

Тема в разделе "PHP для профи", создана пользователем wissem, 8 авг 2017.

Метки:
  1. wissem

    wissem Активный пользователь

    С нами с:
    7 авг 2017
    Сообщения:
    15
    Симпатии:
    1
    Друзья, столкнулся со сложной задачей, к которой пока что не могу подобрать подход. Есть RDF файл, в котором описаны хим. соединения и цена по каждому этому веществу, ну и еще куча ненужной инфы. Файл весит в среднем 200-500мб :) Пример части файла ниже. Тоесть первый блок с инфой о файле, и последующие описывают вещества, разделены все блоки строкй "M END". $DTYPE указывает на название поля, $DATUM на его значение. Мне необходимо каким-то образом распарсить данный файл, получить данные из строки $DTYPE MOL:MOLNAME в каждом блоке, тоесть данные из $DATUM под этой строкой и данные о цене за 1G этого вещества (есть ниже в каждом блоке), сопоставить это все и загнать в sql. Беда еще в том, что файл мегабольшой около 19 миллионов строк.....Гуру, помогите...

    Код (Text):
    1. $RDFILE 1
    2. $DATM   07/02/17 02:10
    3. $MFMT $MIREG 3280002
    4.  
    5.   SciTegic07021702102D
    6.  
    7. 17 18  0  0  0  0            999 V2000
    8.     4.2990    4.6471    0.0000 C   0  0
    9.     5.7990    4.6471    0.0000 C   0  0
    10.     3.0000    5.3971    0.0000 C   0  0
    11.     3.0000    3.8971    0.0000 C   0  0
    12.     6.5490    3.3481    0.0000 C   0  0
    13.     8.0490    3.3481    0.0000 C   0  0
    14.     6.5490    5.9462    0.0000 C   0  0
    15.     8.7990    4.6471    0.0000 C   0  0
    16.     8.0490    5.9462    0.0000 C   0  0
    17.     8.7990    2.0490    0.0000 O   0  0
    18.     5.7990    2.0490    0.0000 O   0  0
    19.     2.2500    2.5981    0.0000 C   0  0
    20.     0.7500    2.5981    0.0000 N   0  0
    21.    10.2990    4.6471    0.0000 O   0  0
    22.    10.2990    2.0490    0.0000 C   0  0
    23.     6.5490    0.7500    0.0000 C   0  0
    24.    11.0490    5.9462    0.0000 C   0  0
    25.   2  1  1  0
    26.   3  1  1  0
    27.   4  1  1  0
    28.   5  2  2  0
    29.   6  5  1  0
    30.   7  2  1  0
    31.   8  9  1  0
    32.   9  7  2  0
    33. 10  6  1  0
    34. 11  5  1  0
    35. 12  4  1  0
    36. 13 12  1  0
    37. 14  8  1  0
    38. 15 10  1  0
    39. 16 11  1  0
    40. 17 14  1  0
    41.   3  4  1  0
    42.   6  8  2  0
    43. M  END
    44. $DTYPE MOL:MOLNAME
    45. $DATUM [2-(2,3,4-TRIMETHOXYPHENYL)CYCLOPROPYL]METHANAMINE
    46. $DTYPE MOL:MDLNUMBER
    47. $DATUM MFCD17524965
    48. $DTYPE MOL:MOLECULAR.WEIGHT
    49. $DATUM 237.29486
    50. $DTYPE MOL:SUPPLIER(1)
    51. $DATUM ........................
    52. $DTYPE MOL:SUPPLIER(2)
    53. $DATUM ABAMACHEM
    54. $DTYPE MOL:SUPPLIER(3)
    55. $DATUM [2-(2,3,4-TRIMETHOXYPHENYL)CYCLOPROPYL]METHANAMINE
    56. $DTYPE MOL:SUPPLIER(4)
    57. $DATUM .
    58. $DTYPE MOL:SUPPLIER(5)
    59. $DATUM _F   ABA-6181259           1 G          EUR         399
    60. $DTYPE MOL:SUPPLIER(6)
    61. $DATUM _F   ABA-6181259         2.5 G          EUR         827
    62. $DTYPE MOL:SUPPLIER(7)
    63. $DATUM _F   ABA-6181259           5 G          EUR        1048
    64. $DTYPE MOL:SUPPLIER(8)
    65. $DATUM _F   ABA-6181259          10 G          EUR        1317
    66. $DTYPE MOL:SUPPLIER(9)
    67. $DATUM ........................
    68. $DTYPE MOL:SUPPLIER(10)
    69. $DATUM BCH-RESEARCH
    70. $DTYPE MOL:SUPPLIER(11)
    71. $DATUM [2-(2,3,4-TRIMETHOXYPHENYL)CYCLOPROPYL]METHANAMINE
    72. $DTYPE MOL:SUPPLIER(12)
    73. $DATUM .
    74. $DTYPE MOL:SUPPLIER(13)
    75. $DATUM _F   BC2424004             1 G          EUR         349
    76. $DTYPE MOL:SUPPLIER(14)
    77. $DATUM _F   BC2424004           2.5 G          EUR         723
    78. $DTYPE MOL:SUPPLIER(15)
    79. $DATUM _F   BC2424004             5 G          EUR         916
    80. $DTYPE MOL:SUPPLIER(16)
    81. $DATUM _F   BC2424004            10 G          EUR        1152
    82. $DTYPE MOL:SUPPLIER(17)
    83. $DATUM ........................
    84. $DTYPE MOL:SYMBOL(1)
    85. $DATUM [2-(2,3,4-TRIMETHOXYPHENYL)CYCLOPROPYL]METHANAMINE
    86. $DTYPE MOL:BULK.FINE(1)
    87. $DATUM F
    88. $DTYPE MOL:SUPPLIER.CODEN(1)
    89. $DATUM ABAMACHEM
    90. $DTYPE MOL:SUPPLIER.CODEN(2)
    91. $DATUM BCH-RESEARCH
    92. $DTYPE MOL:SUPPLIER.INDEX(1)
    93. $DATUM 2   8   ABAMACHEM
    94. $DTYPE MOL:SUPPLIER.INDEX(2)
    95. $DATUM 10  16  BCH-RESEARCH
    96. $DTYPE MOL:SYMBOL.PACKED(1)
    97. $DATUM 2234TRIMETHOXYPHENYLCYCLOPROPYLMETHANAMINE
    98. $DTYPE MOL:HACCEPTORS
    99. $DATUM 4
    100. $DTYPE MOL:HDONORS
    101. $DATUM 1
    102. $DTYPE MOL:MOLWEIGHT_FRAG
    103. $DATUM 237.297
    104. $DTYPE MOL:RULE5
    105. $DATUM 0
    106. $DTYPE MOL:TDF
    107. $DATUM 5
    108. $DTYPE MOL:CLOGP
    109. $DATUM 1.7942
    110. $MFMT $MIREG 3280003
    111.  
    112.   SciTegic07021702102D
    113.  
    114. 18 20  0  0  0  0            999 V2000
    115.     6.1471    3.7500    0.0000 C   0  0
    116.     5.3971    5.0490    0.0000 C   0  0
    117.     4.6471    3.7500    0.0000 C   0  0
    118.     7.4462    3.0000    0.0000 C   0  0
    119.     8.7452    3.7500    0.0000 C   0  0
    120.    10.0442    3.0000    0.0000 C   0  0
    121.    10.0442    1.5000    0.0000 C   0  0
    122.     7.4461    1.5000    0.0000 C   0  0
    123.    11.3433    0.7500    0.0000 C   0  0
    124.     8.7452    0.7500    0.0000 C   0  0
    125.    11.3433    3.7500    0.0000 C   0  0
    126.    12.6423    1.5000    0.0000 C   0  0
    127.     3.3481    3.0000    0.0000 C   0  0
    128.     2.0490    3.7500    0.0000 N   0  0
    129.    12.6423    3.0000    0.0000 C   0  0
    130.    13.9413    0.7500    0.0000 O   0  0
    131.     0.7500    3.0000    0.0000 C   0  0
    132.    15.2404    1.5000    0.0000 C   0  0
    133.   2  1  1  0
    134.   3  1  1  0
    135.   4  1  1  0
    136.   5  4  2  0
    137.   6  5  1  0
    138.   7 10  1  0
    139.   8  4  1  0
    140.   9  7  1  0
    141. 10  8  2  0
    142. 11  6  1  0
    143. 12  9  2  0
    144. 13  3  1  0
    145. 14 13  1  0
    146. 15 11  2  0
    147. 16 12  1  0
    148. 17 14  1  0
    149. 18 16  1  0
    150.   3  2  1  0
    151.   6  7  2  0
    152. 12 15  1  0
    153. M  END
    154. $DTYPE MOL:MOLNAME
    155. $DATUM ([2-(6-METHOXYNAPHTHALEN-2-YL)CYCLOPROPYL]METHYL)(METHYL)AMINE
    156. $DTYPE MOL:MDLNUMBER
    157. $DATUM MFCD17524967
    158. $DTYPE MOL:MOLECULAR.WEIGHT
    159. $DATUM 241.32815
    160. $DTYPE MOL:SUPPLIER(1)
    161. $DATUM ........................
    162. $DTYPE MOL:SUPPLIER(2)
    163. $DATUM BCH-RESEARCH
    164. $DTYPE MOL:SUPPLIER(3)
    165. $DATUM ([2-(6-METHOXYNAPHTHALEN-2-YL)CYCLOPROPYL]METHYL)(METHYL)AMINE
    166. $DTYPE MOL:SUPPLIER(4)
    167. $DATUM .
    168. $DTYPE MOL:SUPPLIER(5)
    169. $DATUM _F   BC520197              1 G          EUR         349
    170. $DTYPE MOL:SUPPLIER(6)
    171. $DATUM _F   BC520197            2.5 G          EUR         723
    172. $DTYPE MOL:SUPPLIER(7)
    173. $DATUM _F   BC520197              5 G          EUR         916
    174. $DTYPE MOL:SUPPLIER(8)
    175. $DATUM _F   BC520197             10 G          EUR        1152
    176. $DTYPE MOL:SUPPLIER(9)
    177. $DATUM ........................
    178. $DTYPE MOL:SYMBOL(1)
    179. $DATUM ([2-(6-METHOXYNAPHTHALEN-2-YL)CYCLOPROPYL]METHYL)(METHYL)AMINE
    180. $DTYPE MOL:BULK.FINE(1)
    181. $DATUM F
    182. $DTYPE MOL:SUPPLIER.CODEN(1)
    183. $DATUM BCH-RESEARCH
    184. $DTYPE MOL:SUPPLIER.INDEX(1)
    185. $DATUM 2   8   BCH-RESEARCH
    186. $DTYPE MOL:SYMBOL.PACKED(1)
    187. $DATUM 26METHOXYNAPHTHALEN2YLCYCLOPROPYLMETHYLMETHYLAMINE
    188. $DTYPE MOL:HACCEPTORS
    189. $DATUM 2
    190. $DTYPE MOL:HDONORS
    191. $DATUM 1
    192. $DTYPE MOL:MOLWEIGHT_FRAG
    193. $DATUM 241.332
    194. $DTYPE MOL:RULE5
    195. $DATUM 0
    196. $DTYPE MOL:TDF
    197. $DATUM 4
    198. $DTYPE MOL:CLOGP
    199. $DATUM 4.006
    200. $MFMT $MIREG 3280004
    201.  
    202.   SciTegic07021702102D
    203.  
    204. 17 18  0  0  0  0            999 V2000
    205.     5.0490    5.7962    0.0000 C   0  0
    206.     3.7500    6.5462    0.0000 C   0  0
    207.     3.7500    5.0462    0.0000 C   0  0
    208.     6.5490    5.7962    0.0000 C   0  0
    209.     7.2990    1.8991    0.0000 C   0  0
    210.     7.2990    4.4971    0.0000 C   0  0
    211.     6.5490    3.1981    0.0000 O   0  0
    212.     6.2384    0.8384    0.0000 F   0  0
    213.     8.2632    0.7500    0.0000 F   0  0
    214.     8.5278    2.7594    0.0000 F   0  0
    215.     3.0000    3.7471    0.0000 C   0  0
    216.     1.5000    3.7471    0.0000 N   0  0
    217.     7.2990    7.0952    0.0000 C   0  0
    218.     8.7990    4.4971    0.0000 C   0  0
    219.     0.7500    2.4481    0.0000 C   0  0
    220.     8.7990    7.0952    0.0000 C   0  0
    221.     9.5490    5.7962    0.0000 C   0  0
    222.   2  1  1  0
    223.   3  1  1  0
    224.   4  1  1  0
    225.   5  7  1  0
    226.   6  4  2  0
    227.   7  6  1  0
    228.   8  5  1  0
    229.   9  5  1  0
    230. 10  5  1  0
    231. 11  3  1  0
    232. 12 11  1  0
    233. 13  4  1  0
    234. 14  6  1  0
    235. 15 12  1  0
    236. 16 13  2  0
    237. 17 16  1  0
    238.   3  2  1  0
    239. 14 17  2  0
    240. M  END
     
  2. manchot

    manchot Активный пользователь

    С нами с:
    2 дек 2015
    Сообщения:
    34
    Симпатии:
    5
    Можно загнать в https://clickhouse.yandex/ и потом оттуда уже вытаскивать что нужно. Хотя 200-300мб это не большой вес, было б 200-300Гб - тогда да.