|
|
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
Доброе время суток, нужно периодически заливать в базу пару больших csv (около 1.5 гиг). csvDocument с такими работать не умеет. Можно сваять что то своё на осноте TMemoryStream но зачем изобретать велосипед, наверняка есть уже что то готовое? Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 12:08:03 |
|
||
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
Mikhail Tchervonenko, СУБД (какая?) не поддерживает импорт? или написать построчное чтение... не вариант? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 12:26:50 |
|
||
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
Mikhail Tchervonenko наверняка есть уже что то готовое? Readln ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 12:31:16 |
|
||
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
sql2012Mikhail Tchervonenko, СУБД (какая?) не поддерживает импорт? или написать построчное чтение... не вариант? FB 3 Попробовал через импорт IBExpert, тоже отвалился с исключением. Есть готовый скрипт построчного чтения с разбором? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 12:33:27 |
|
||
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
schiMikhail Tchervonenko наверняка есть уже что то готовое? Readln да оно понятно что можно и так, думал может что то готовое есть что не пихает всё сразу в память ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 12:34:32 |
|
||
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
Mikhail Tchervonenkoschiпропущено... Readln да оно понятно что можно и так, думал может что то готовое есть что не пихает всё сразу в память ну так readln и не пихает всё в память ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 12:38:51 |
|
||
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
defecatorMikhail Tchervonenkoпропущено... да оно понятно что можно и так, думал может что то готовое есть что не пихает всё сразу в память ну так readln и не пихает всё в память да, но и буферизацию толком не делает. Наверняка медленно будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 12:42:19 |
|
||
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
Mikhail Tchervonenko, Посмотри подключение внешних файлов, делал приблизительно тоже самое, только у меня DBF был ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 12:51:13 |
|
||
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
http://docwiki.embarcadero.com/Libraries/Berlin/en/System.Classes.TTextReader.ReadLine https://synopse.info/files/html/api-1.18/SynCommons.html#TFILEBUFFERREADER http://sql.ru/forum/1178076 http://github.com/d-mozulyov/CachedTexts ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 12:56:33 |
|
||
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
Mikhail Tchervonenkoно и буферизацию толком не делает есть такая функция, SetTextBuf но вообще - да, readLn сделан под чтение нескольких переменных с одной строки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 12:57:46 |
|
||
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
Может быть, можно чего-то полезного подцепить из https://synopse.info/forum/viewtopic.php?id=1231 https://github.com/synopse/mORMot/tree/master/SQLite3/Samples/ThirdPartyDemos/AntonE/CSV2ORM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 12:59:40 |
|
||
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
Arioch http://www.sql.ru/forum/1213139-46/ekstremalno-bystryy-menedzher-pamyati-brainmm http://github.com/d-mozulyov/CachedTexts первую ссылку не читать должно было быть http://www.sql.ru/forum/1178076/oficialnyy-reliz-cachedbuffers ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 13:02:16 |
|
||
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
Mikhail Tchervonenkodefecatorпропущено... ну так readln и не пихает всё в память да, но и буферизацию толком не делает. Наверняка медленно будет. На удивление нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 13:12:13 |
|
||
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
Mikhail Tchervonenkoschiпропущено... Readln да оно понятно что можно и так, думал может что то готовое есть что не пихает всё сразу в память Есть готовое: 1. Читаешь строку: Readln. 2. Парсишь CSV: TStringList.DelimetedText := <Строка> 3. Заливаешь в базу 4. Смыть, повторить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 13:13:32 |
|
||
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
ок, всем спасибо за участие. Примерно понял состояние дел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 13:27:09 |
|
||
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
Mikhail Tchervonenkoдумал может что то готовое есть что не пихает всё сразу в память http://www.ibphoenix.com/products/software/dbfile Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 13:39:45 |
|
||
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
Часть тестового задания по многопоточной сортировке, в т.ч. и для работы с файлами больше 4гб: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338. 339. 340. 341. 342. 343. 344. 345. 346. 347. 348. 349. 350. 351. 352. 353. 354. 355. 356. 357. 358. 359. 360. 361. 362. 363. 364. 365. 366. 367. 368. 369. 370. 371. 372. 373. 374. 375. 376. 377. 378. 379. 380. 381. 382. 383. 384. 385. 386. 387. 388. 389. 390. 391. 392. 393. 394. 395. 396. 397. 398. 399. 400. 401. 402. 403. 404. 405. 406. 407. 408. 409. 410. 411. 412. 413. 414. 415. 416. 417. 418. 419. 420. 421. 422. 423. 424. 425. 426. 427. 428. 429. 430. 431. 432. 433. 434. 435. 436. 437. 438. 439. 440. 441. 442. 443. 444. 445. 446. 447. 448. 449. 450. 451. 452. 453. 454. 455. 456. 457. 458. 459. 460. 461. 462. 463. 464. 465. 466. 467. 468. 469. 470. 471. 472. 473. 474. 475. 476. 477. 478. 479. 480. 481. 482. 483. 484. 485. 486. 487. 488. 489. 490. 491. 492. 493. 494. 495. 496. 497. 498. 499. 500. 501. 502. 503. 504. 505. 506. 507. 508. 509. 510. 511. 512. 513. 514. 515. 516. 517. 518. 519. 520. 521. 522. 523. 524. 525. 526. 527. 528. 529. 530. 531. 532. 533. 534. 535. 536. 537. 538. 539. 540. 541. 542. 543. 544. 545. 546. 547. 548. 549. 550. 551. 552. 553. 554. 555. 556. 557. 558. 559. 560. 561. 562. 563. 564. 565. 566. 567. 568. 569. 570. 571. 572. 573. 574. 575. 576. 577. 578. 579. 580. 581. 582. 583. 584. 585. 586. 587. 588. 589. 590. 591. 592. 593. 594. 595. 596. 597. 598. 599. 600. 601. 602. 603. 604. 605. 606. 607. 608. 609. 610. 611. 612. 613. 614. 615. 616. 617. 618. 619. 620. 621. 622. 623. 624. 625. 626. 627. 628. 629. 630. 631. 632. 633. 634. 635. После загрузки в list нужно вызвать scanbuffer и затем доставать строки через StringItem. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 13:59:59 |
|
||
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
wadman, спасибо, это уже ближе к делу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 14:02:10 |
|
||
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
Mikhail Tchervonenkoэто уже ближе к делу Ближе? Это дело целиком, на блюдечке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 14:04:07 |
|
||
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
Mikhail Tchervonenko, Может быть, посмотреть в сторону ETL? Datastage, Pentaho. В них есть готовые инструменты для подобных задач. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2017, 20:16:20 |
|
||
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
schiMikhail Tchervonenko наверняка есть уже что то готовое? Readlnненене. есть fileopen для таких тяжеляков надо работать на самом низком уровне. И парсить CSV ручками, и без любых попыток использования дельфийского типа данных string Везде - только PChar ...тогда, да, парсинг будет - почти со скоростью чтения с диска. Проверено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2017, 02:42:18 |
|
||
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
Makar4ik, Не не не! У них ручки не разработанные. По этому уже существующий софт, и ничего из своих велосипедов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2017, 02:53:38 |
|
||
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
НяшикMakar4ik, Не не не! У них ручки не разработанные. По этому уже существующий софт, и ничего из своих велосипедов.надо тренировать своё тело. MFC познать например, или, понять как сортируют по Кнуту... Ну, это шутки. Но я правду сказал. Нельзя обработать гигабайты стандартными консьюмерскими компонентами. Надо самому моск включать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2017, 02:57:56 |
|
||
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
Makar4ikНельзя обработать гигабайты стандартными консьюмерскими компонентами. Думаю, как и многим создателям своего софта, и в голову не приходило. Что кто - то будет грузить файлы в несколько гб По этому, соглашусь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2017, 03:02:03 |
|
||
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
НяшикMakar4ikНельзя обработать гигабайты стандартными консьюмерскими компонентами. Думаю, как и многим создателям своего софта, и в голову не приходило. Что кто - то будет грузить файлы в несколько гб По этому, соглашусьнекоторым приходило. Поэтому бывают маппинги файлов в память окнами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2017, 03:10:12 |
|
||
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
Няшик, RTFM, короче. Кормен, Лейзерсон, Ривест... Из ранних - Кнут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2017, 03:13:02 |
|
||
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
Няшик, а да, и по винде - ну много есть писателей. которые и про MFC расскажут, и про то как кликать на батоны... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2017, 03:20:22 |
|
||
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
Няшик, фишка-то в чём... Даже в 32-х битной винде, размер файла определялся 2-мя (!!!) 32-х битными числами. (не поверишь!) 32 бит API оперировало файлами сильно более 4 ГБ и системы это поддерживали. И глупо было думать разработчику, что таких файлов не бывает. А если бывает, но в мозги не лезет? Что делать? И тут встаёт в полный рост вопрос: Ты программер, или говнокодер? Будешь пытаться всосать это сразу, или работать потоком? Ну вот... Как-то так... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2017, 04:26:37 |
|
||
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
Makar4ik, Ну тоже сравнил. Люди писали операционную систему - понимая что она обширного использования. А тут какой то полоумный программист полез в среду, получил на форуме первый код который написали по пьяни. Или сам такой же написал. И давай использовать. А через время прибегает и кричит - Крауу! Памяти не хватает, всё виснет - ДАВАЙТЕ В ПОТОКИ ЗАСУНЕМ! (И не капли мысли об оптимизации - мол нам она не нужна. Она вообще существует?..) Дайте другие решение! И.т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2017, 09:52:09 |
|
||
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
TFDBatchMoveTextReader TFDBatchMoveSQLWriter TFDBatchMove ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2017, 14:23:04 |
|
||
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
А при чем тут дельфи? 1 - открыть csv через Jet Driver и залить все стандартной техникой работы с БД. 2 - открыть csv через эксель, в котором создать формулу для генерации sql скрипта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2017, 10:18:10 |
|
||
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
stanilarА при чем тут дельфи? 1 - открыть csv через Jet Driver и залить все стандартной техникой работы с БД. 2 - открыть csv через эксель, в котором создать формулу для генерации sql скрипта. Файлы большие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2017, 10:49:19 |
|
||
|
Чтение больших csv в базу
|
|||
|---|---|---|---|
|
#18+
schiФайлы большие. И что? Базы еще больше. Excel 2013 64-bit environment imposes no hard limits on file size. Workbook size is limited only by available memory and system resources. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2017, 11:26:19 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2041740]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
174ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
87ms |
get tp. blocked users: |
2ms |
| others: | 228ms |
| total: | 541ms |

| 0 / 0 |
