SQL baze podataka - Sponzor: Baze-Podataka.net MySQL, MSSQL, Oracle, Access, ODBC. Ako imate problem brže i preciznije ćete dobiti odgovor ako priložite strukturu tabela ili skript koji kreira tabele i puni ih test podacima umesto što to problem opisujete samo rečima. Sponzor: Baze-Podataka.net - Blog o bazama podataka |
|
Alati teme | Način prikaza |
11. 03. 2007. | #1 |
Domagoj Horvat
Expert
|
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
__________________
postoje ludosti bez kojih je nemoguce ljudsko dostojanstvo |
11. 03. 2007. | #2 |
novi član
Na probnom radu
Datum učlanjenja: 12.02.2007
Lokacija: Novi Sad
Poruke: 25
Hvala: 0
4 "Hvala" u 3 poruka
|
zna covek...
|
11. 03. 2007. | #3 |
expert
Expert
Datum učlanjenja: 27.11.2005
Poruke: 543
Hvala: 47
57 "Hvala" u 31 poruka
|
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. |
11. 03. 2007. | #4 |
majstor
Wrote a book
|
Sorry but, CSS ili CSV? (u naslovu stoji CSS)
|
11. 03. 2007. | #5 |
Super Moderator
Invented the damn thing
Datum učlanjenja: 06.06.2005
Poruke: 2.371
Hvala: 370
701 "Hvala" u 194 poruka
|
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 |
11. 03. 2007. | #6 |
Boban Karišik
Expert
|
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..
__________________
Ako već nisi Anđeo, bar budi čovek... |
16. 03. 2007. | #7 |
Domagoj Horvat
Expert
|
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)?
__________________
postoje ludosti bez kojih je nemoguce ljudsko dostojanstvo Poslednja izmena od dee : 16. 03. 2007. u 13:57. |
16. 03. 2007. | #8 |
Boris
Grand Master
Datum učlanjenja: 01.12.2005
Lokacija: Novi Sad
Poruke: 775
Hvala: 5
156 "Hvala" u 2 poruka
|
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
__________________
"It’s important to have goals when you pet. Otherwise you’re just rubbing another mammal for no reason." - Scott Adams Poslednja izmena od zextra : 16. 03. 2007. u 14:32. |
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
Veliki CTR na adsensu | Veljko | Marketing i SEO | 19 | 01. 10. 2007. 00:34 |
B92: Reklame i Veliki brat | DejanVesic | Opušteno | 83 | 12. 10. 2006. 12:16 |