Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Alt "Utilizator nou" pe T...

ULBS INFORMATICA

Index preturi

Boxa membrana tweeter infundata
 Am nevoie de poze cu un curcubeu

Whisky for Mac

Xiaomi 14 Gpay

Izolare zid exterior de scandura
 Dezinstalare drivere W11 23H3

Recomandare masina de spalat fiab...

BSOD din cauza Intel Audio DSP dr...

De ce sunt oamenii nostalgici
 Cum vand casa fara factura Hidroe...

Scor FICO minim

Tonometru compensat CAS?

polita RCA ONLINE
 

numar limitat de randuri la importul de csv in MySql

- - - - -
  • Please log in to reply
12 replies to this topic

#1
ursudepadure

ursudepadure

    Junior Member

  • Grup: Members
  • Posts: 232
  • Înscris: 28.04.2012
Lucrez la un transcriptor fonetic danez-roman si vreau sa import un fisier csv in MySql. Mi-a fost mai usor sa fac prelucrarile de care aveam nevoie pentru a scrie fonetic fiecare cuvant in notepad++.

Am facut acelasi proiect in C# folosind un vector in care se incarca un fisier text cu cuvintele de transcris fonetic si altul cu ele transcrise. In total cam 12000 desi o sa ajung la un numar mult ma mare.  Incerc acum sa fac acelasi lucru cu o baza de date MySQL si pentru asta incerc sa import un fisier csv. Aplicatia la care lucrez va fi web-based si o fac in PHP.  Mentionez ca in C# (windows app) cu fisier text merge perfect dar o baza de date mi-ar fi mai de folos din anumite motive.

Totul merge perfect cu MySql mai putin faptul ca nu se importa decat primele exact 757 randuri, restul de mai mult de 10 000 de care am nevoie raman pe dinafara. Reusita aplicatiei se bazeaza pe faptul ca am cat mai multe cuvinte transcrise fonetic in baza de date desi vor fi aplicate anumite corectii prin functii care vor determina sufixe sau prefixe, etc...Voi incerca sa abordez si problema cuvintelor care nu sunt in baza de date si sa nu le lase netranscriptate, dar asta e alta poveste.

Pentru aplicatia mea am nevoie de cat mai multe linii. E interesant ca un vector poate avea sute de mii de elemente, pana la 2 GB in C#.  O baza de date poate avea de asemenea sute de mii de inregistrari.

In C# cele peste 22 000 de cuvinte (din doua fisiere text se incarca instantaneu). Cum as putea face sa imi importe mai mult decat 757 de linii? Nu am avut treaba cu codificarea, unde aveam emotii dar am dat de aceasta problema. Exista pe undeva o configuarare care limiteaza numarul maxim de inregistrari? Acum caut inca pe net dar nu am gasit nimic despre asta.

#2
_Smiley_

_Smiley_

    Guru Member

  • Grup: Senior Members
  • Posts: 20,025
  • Înscris: 24.02.2006
cu siguranta MySQL-ul poate importa mult mai multe inregistrari. cel mai probabil e o problema la randul 758 care opreste importul.
incearca sa stergi randul 758 si sa importi noul fisier. o alta solutie (daca tot spui ca ai lucrat si in c#) e sa citesti fisierele in c# si sa inserezi datele de acolo in MySQL

#3
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

 ursudepadure, on 04 iunie 2017 - 12:54, said:

Lucrez la un transcriptor fonetic danez-roman si vreau sa import un fisier csv in MySql. Mi-a fost mai usor sa fac prelucrarile de care aveam nevoie pentru a scrie fonetic fiecare cuvant in notepad++.

Am facut acelasi proiect in C# folosind un vector in care se incarca un fisier text cu cuvintele de transcris fonetic si altul cu ele transcrise. In total cam 12000 desi o sa ajung la un numar mult ma mare.  Incerc acum sa fac acelasi lucru cu o baza de date MySQL si pentru asta incerc sa import un fisier csv. Aplicatia la care lucrez va fi web-based si o fac in PHP.  Mentionez ca in C# (windows app) cu fisier text merge perfect dar o baza de date mi-ar fi mai de folos din anumite motive.

Totul merge perfect cu MySql mai putin faptul ca nu se importa decat primele exact 757 randuri, restul de mai mult de 10 000 de care am nevoie raman pe dinafara. Reusita aplicatiei se bazeaza pe faptul ca am cat mai multe cuvinte transcrise fonetic in baza de date desi vor fi aplicate anumite corectii prin functii care vor determina sufixe sau prefixe, etc...Voi incerca sa abordez si problema cuvintelor care nu sunt in baza de date si sa nu le lase netranscriptate, dar asta e alta poveste.

Pentru aplicatia mea am nevoie de cat mai multe linii. E interesant ca un vector poate avea sute de mii de elemente, pana la 2 GB in C#.  O baza de date poate avea de asemenea sute de mii de inregistrari.

In C# cele peste 22 000 de cuvinte (din doua fisiere text se incarca instantaneu). Cum as putea face sa imi importe mai mult decat 757 de linii? Nu am avut treaba cu codificarea, unde aveam emotii dar am dat de aceasta problema. Exista pe undeva o configuarare care limiteaza numarul maxim de inregistrari? Acum caut inca pe net dar nu am gasit nimic despre asta.
Let me guess: nu folosesti PDO, prepared statements, sau alte tehnici din PHP modern.

#4
phanebest

phanebest

    Junior Member

  • Grup: Members
  • Posts: 159
  • Înscris: 20.06.2007
Cel mai rapid poti sa incarci datele cu mysql workbench. Deschizi o fereastra sql si dai urmatorea comanda:

load data local infile 'f:/\myfolder/\myfile.csv'
INTO TABLE `MYTABLE`
CHARACTER SET 'utf8'
FIELDS TERMINATED BY '\t' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES


Verfică cu Notepad++ ca fisierul este encodat in utf8.

#5
ursudepadure

ursudepadure

    Junior Member

  • Grup: Members
  • Posts: 232
  • Înscris: 28.04.2012
Cand fac importul, se autogenereaza gresit comenzi sql...ciudat. O sa incerc si asa.

#6
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,233
  • Înscris: 24.02.2007
Autogenereaza de catre cine?

#7
ursudepadure

ursudepadure

    Junior Member

  • Grup: Members
  • Posts: 232
  • Înscris: 28.04.2012
Cred ca este implementat un mecanism ca atunci cand faci importul prin clickuri de mouse sa se autogenereze codul mysql, care ar face acelasi lucru.

#8
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,233
  • Înscris: 24.02.2007
Importul masiv de date nu se face nici din mouse, nici scriind/generand SQL. De exemplu, MySQL te lasa sa-i spui din ce csv sa importe datele pentru a face cat mai rapid treaba: https://dev.mysql.co.../load-data.html

#9
ursudepadure

ursudepadure

    Junior Member

  • Grup: Members
  • Posts: 232
  • Înscris: 28.04.2012
In cazul meu nu sunt chiar multe date, doar ca sunt multe inregistrari. Numai trei coloane si mii de randuri. Si puteam bine-merci folosi fisiere text, atat era de simplu in principiu. Dar din anumite motive am nevoie de baza de date pentru a rezolva problema asta.

Am facut mai intai alt fisier de test si merge.  Dar unul de care sa fiu sigur ca nu are erori. Se pare ca ceva strica toata sandramaua in fisierul meu xlm.  Acum se importa doar din clickuri de mouse fara mare bataie de cap.
Ca sa gasesc eroarea am facut un fisier xlm, acolo orice iesire din patern sare in ochi. Ideea este ca merge  :)

#10
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,233
  • Înscris: 24.02.2007
Am pierdut firul. De la CSV si MySQL s-a ajuns la xlm (poate xml?), discutii despre PHP amestecate cu clickuri de mouse.

#11
ursudepadure

ursudepadure

    Junior Member

  • Grup: Members
  • Posts: 232
  • Înscris: 28.04.2012
Ok Dani, o sa fiu mai clar. Se pare ca tu stai la panda sa vanezi fiecare greseala si asta e de apreciat pentru a nu se creea confuzii.

Lucrez cu WAMP si daca  "DAI CLICK" pe  phpMyAdmin  -- > yourDataBase -- > yourTable -- > Import  -- > combobox setat pe csv si alte combobox, butoane radio, etc setate pe utf-8 si ce mai ´consideri, atunci NU mai e nevoie sa scrii comenzi SQL.  Asta am vrut sa zic prin "clickuri de mouse". Pana la urma si Visual Studio si alte medii de dezvoltare sunt facute sa te scuteasca sa scrii cod prea mult cand folosesti instrumente din toolbox si faci asta prin "drag and drop", deci prin "clickuri de mouse".

Csv este un fisier text pe care poti sa il convertesti in xml cu o gramada de "toolsuri" online .  Am facut asta in speranta ca se va importa mai bine decat csv dar si pentru ca, daca este o greseala o poti vedea mai usor "la ochi". Asta pentru ca tagurile inlocuiesc virgulele si se vede imediat daca undeva au fost doua virgule una dupa alta sau inca un cuvant scris in plus care strica "paternul".  
Imi cer scuze ca am zis xlm in loc de xml. Este pentru ca am lucrat cu excel si VBA  pana am pregatit tabelul si mi-a luat-o mana inaintea capului si am combinat cele doua extensii. :) De fapt exista si xlm pentru Excel 4.0 Macro file.

#12
Kriogen

Kriogen

    Junior Member

  • Grup: Members
  • Posts: 185
  • Înscris: 23.04.2014
Poti sa furnizezi header-ul si primul rand din acel csv pe care incerci sa-l importi in mysql?

Baza de date pe care ai creat-o si tabelul sunt ca utf_8?
Importul unui csv se face foarte simplu folosind un script de php cu conectare la baza de date.

#13
ursudepadure

ursudepadure

    Junior Member

  • Grup: Members
  • Posts: 232
  • Înscris: 28.04.2012
Daca import prin metoda pe care am folosit-o ma intreaba daca vreau ca primul rand sa fie preluat pentru a denumi fiecare coloana.  Daca nu validez aceasta optiune imi da numele coloanelor COL 1, COL 2, etc...
Era simplu sa fac un script php care sa imi citeasca din fisierul text (sau puteam folosi cate un fisier text pentru fiecare coloana, pentru ca deja le aveam in acest format pentru prelucrari si inlocuiri).

Pentru un tabel cu foarte multe coloeane care era preluat din Excel salvat ca si csv, sa scriu un script ar fi durat un pic mai mult decat prin facilitaea pe care o ofera phpMyAdmin privind importul din csv sau xml.
Despre asta am gasit multe exemple, cum este cel de aici:
https://stackoverflo...-mysql-database

Oricum, am rezolvat problema. Erau doar niste greseli in fisierul csv.   Aplicatia e aproape gata, totul e ok.

Anunturi

Chirurgia spinală minim invazivă Chirurgia spinală minim invazivă

Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical.

Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate