![]() |
veliki csv fajovi -> DB
Sta mi je najelegantnije za citat velike csv fajlove (cca 20MB) i prepisat ih u bazu? kako da to izvedem?
bilo kakav savjet je dobrodosao... poz |
zna covek...
|
LOAD DATA [LOCAL] INFILE ...
http://dev.mysql.com/doc/refman/5.0/en/load-data.html Jednom davno sam ovo radio... Cini mi se da mora da se navede LOCAL i puna putanja do CSV fajla na serveru. |
Sorry but, CSS ili CSV? (u naslovu stoji CSS)
|
Ako hoces da importujes sa load data local ... onda to jedino mozes iz mysql klijenta, tako sto otvoris klijent iz tog direktorijuma gde ti se nalazi fajl. Uz to, ako su podesavanja po defaultu, moras mu proslediti --enable-local-infile parametar prilikom startovanja, kao na primer:
Kôd:
mysql --enable-local-infile -udinke -ppass baza Kôd:
load data local infile 'fajl.csv' into table imetabele |
Ja sam koristio navicat za import csv fajlova u mysql i postgres i mogu reci da rastura kako brzo radi posao. Jedini problem je sto se program placa, ali ima 30 trial verziju, sasvim dovoljno da se odradi neki trenutni posao, a i uvek mozes da vratis datum u windowsu kad ti zatreba program ponovo..
|
morat cu skriptom pa cronjob... kako dinke kaze, fgetcsv() i explode()
jos jedno usputno pitanje. posto su veliki fajlovi u pitanju + skripta treba prvo provjerit postoji li zapis sa konkretnim itemID i onda: ako ima -> UPDATE, ako nema -> INSERT; ima li nacina (a i smisla?) da jedan zapis csv-a odradim u jednom query-ju ili moram nuzno imat dva (jedan za provjeru drugi za INSERT/UPDATE)? |
Postaraj se da unikatne redove odredis primarnim kljucem, kako bi izbegao dupliranje, a zatim....
INSERT IGNORE INTO `table` ... Takodje, jos jedan nacin da ubrzas ucitavanje podataka ovim putem je da koristis inline inserte: INSERT INTO `table` ( fields ) VALUES ( value set 1 ), ( value set 2 )... ; Ili da zapocnes transakciju pre ucitavanja pa da je commitujes nakon izvrsenih upita, ili mozda da ekskluzivno lockujes tabelu... @dinke: prostije je koristiti mysqlimport komandu, koja je interface za LOAD DATA INFILE |
Vreme je GMT +2. Trenutno vreme je 14:39. |
Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.