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 |
ETL one to many relationship from CSV to XML
#1
Posted 29 February 2024 - 13:00
Salut
Nu stiu daca am postat unde trebuie, dar administratorul se poate ocupa de asta. Se da un proces de ETL unde se doreste transformarea unui esantion de date (miliions) in format XML (validat de o schema XSD) care poate ajunge la 500MB-600MB. Plecand de la formatul dorit (pentru evidentiere -> reported car contine mult mai multe informatii decat model si year - inca vreo 10-12 tag-uri): <?xml version="1.0" encoding="UTF-8"?> <dataBody xmlns="urn:ro:test:car:report:v1" xmlns:ns2="urn:ro:test:car:report:commontypes:v1" version="4.0"> <reported Id="1"> <Name>John</Name> <Address> <Country>RO</Country> <AddressFree>The complete address</AddressFree> </Address> <reportedCar> <model>Dacia</model> <year>2021</year> </reportedCar> <reportedCar> <model>Audi</model> <year>2023</year> </reportedCar> </reportedId> <reported Id="2"> <Name>David</Name> <Address> <Country>AT</Country> <AddressFree>The complete address</AddressFree> </Address> <reportedCar> <model>Mercedes</model> <year>2020</year> </reportedCar> <reportedCar> <model>Ford</model> <year>2021</year> </reportedCar> <reportedCar> <model>Audi</model> <year>2024</year> </reportedCar> </reportedId> </dataBody> as vrea sa definesc formatul fisierului (fisierelor?) de intrare CSV. Am plecat de la acest design, intr-un singur fisier: Id|Name|Country|Address| reportedCarModel|year 1 John RO address Dacia 2021 Audi 2023 2 David AT address Mercedes 2020 Ford 2021 Audi 2024 M-am mai gandit si la encapsularea datelor de pe primul nivel intr-un singur CSV: Id|Name|Country|Address| reportedCarRef 1 John RO address Dacia [color=#ff0000]1[/color] iar apoi referinta raportata in; reportedCarRef|model|year [color=#ff0000]1[/color]|Dacia|2021 [color=#ff0000]1[/color]|Audi|2023 Ar exista un design mai bun, in conditiile in care trebuie scris si Transformer-ul pentru convertire. FAbian23 Edited by fabian23, 29 February 2024 - 13:11. |
#2
Posted 29 February 2024 - 13:30
Intra CSV si iese XML?
Nu inteleg de ce se foloseste XML si nu JSON care ocupa mai putin. Nu te juca cu array multidimensional ca dureaza o vesnicie sa il citeasca. Citeste/scrie in Array1D. Daca vrei viteza de procesare: CSV -> Array1D -> XML. Daca vrei sa prelucrezi cantitate mare de date. Dar tot nu inteleg de ce ai nevoie de CSV. Si de ce XML, este impus formatul? Edited by PlatonX, 29 February 2024 - 13:30. |
#3
Posted 29 February 2024 - 13:48
PlatonX, on 29 februarie 2024 - 13:30, said:
Intra CSV si iese XML? Nu inteleg de ce se foloseste XML si nu JSON care ocupa mai putin. Nu te juca cu array multidimensional ca dureaza o vesnicie sa il citeasca. Citeste/scrie in Array1D. Daca vrei viteza de procesare: CSV -> Array1D -> XML. Daca vrei sa prelucrezi cantitate mare de date. Dar tot nu inteleg de ce ai nevoie de CSV. Si de ce XML, este impus formatul? Da, intra CSV si trebuie transformat in XML. Formatul XML este impus. Am si spus ca este validat de o schema. Feed-ul provine dintr-un DWH (Data Warehouse) si in principiu raportarile de acolo vin sub forma de CSV-uri. Nu se pot raporta direct in formatul XML amintit (din nestiinta, lipsa de timp, limitari tehnice- nu are importanta) de accea este nevoie de ETL. Datele produse de DWH trebuie agregate si formatate intr-un mod inainte de a fi livrate ca date de intrare in ETL. CSV-ul este cel mai la indemana. Edited by fabian23, 29 February 2024 - 14:00. |
#4
Posted 29 February 2024 - 16:44
Poti sa iti faci o clasa CSV2XML si o structura Cars cu proprietatile Id|Name|Country|Address| reportedCarRef.
Clasa va avea o functie de citire ReadCSV si una de scriere WriteXML. Cand se ca apela ReadCSV se va face o lista de structuri Cars: datele se duc din fisierul CSV in obiectul CSV2XML. Cand se apeleaza WriteXML datele se duc din obiectul CSV2XML in fisierul XML. Fisierul XML se poate scrie cu clasa separata oferita de limbajul de programare. Edited by PlatonX, 29 February 2024 - 16:45. |
#5
Posted 29 February 2024 - 18:07
PlatonX, on 29 februarie 2024 - 16:44, said:
Poti sa iti faci o clasa CSV2XML si o structura Cars cu proprietatile Id|Name|Country|Address| reportedCarRef. Clasa va avea o functie de citire ReadCSV si una de scriere WriteXML. Cand se ca apela ReadCSV se va face o lista de structuri Cars: datele se duc din fisierul CSV in obiectul CSV2XML. Cand se apeleaza WriteXML datele se duc din obiectul CSV2XML in fisierul XML. Fisierul XML se poate scrie cu clasa separata oferita de limbajul de programare. Cred ca nu m-am facut inteles. Desi principial este corect ce spui, la nivel de implementare pentru LIVE acesta se va face cu un EIP, foarte probabil Camel sau Batch. Intrebarea mea era legata de arhitectura datelor de intrare. Cum ar fi mai bine ele sa fie organizate astfel incat implementarea sa fie cat mai apropiata de principiile SOLID mai ales Open-Closed principle si sa-ti faci viata cat mai usoara sa nu ajungi sa folosesti implementari XML low-level (linii de code multe) : memory performance issues, processing time, etc... Edited by fabian23, 29 February 2024 - 18:15. |
#6
Posted 29 February 2024 - 19:04
Eu as face in felul urmator:
As folosi 2 clase oferite de limbajul de programare, cred ca in cazul tu este PHP. Una pentru Excel si alta pentru XML. Cu clasa Excel faci conversie din CSV in xlsx si citesti apoi datele array 2D pe care il convertesti in Array1D. Acesta il procesezi. Clasa XML va scrie datele in fisier. Daca vrei abstractizare folosesti clase si obiecte daca vrei viteza de executie folosesti array 1D. Eu nu stiu ce este gresit in ceea ce spun aici. |
#7
Posted 01 March 2024 - 00:02
Eu personal nu vad ce rost are sa iei date text si sa le bagi in excel ca apoi sa scoti din excel tot text.
|
#8
Posted 01 March 2024 - 01:53
@fabian23,
Pe directia pe care ai inceput, ai putea sa scoti csv-urile din DWH cam asa: main.csv Id,Name,Country,Address,reportedCarsData 1,John,RO,address,1_CarsData.csv 2,David,AT,address,2_CarsData.csv 3,Helen,DE,address,3_CarsData.csv 1_CarsData.csv reportedCarModel,year Dacia,2021 Audi,2023 2_CarsData.csv reportedCarModel,year Mercedes,2020 Ford,2021 3_CarsData.csv reportedCarModel,year Porche,2024 Jobul tau ETL face parsing linie cu linie pe main.csv si pentru fiecare linie din main.csv parseaza tot linie cu line si fisierul cu numele mentionat in ultimul field a unei linii din main.csv ca sa scoata detaliile masinilor raportate si sa construieasca nodul/record-ul XML pentru ID-ul respectiv. Asta presupune ca ETL-ul tau este un singur job care merge secvential/liniar pina cind termina de prelucrat toate liniile din main.csv si iti scoate un singur xml cu toate datele in el. Daca faci csv-uri dedicate pentru fiecare Id in parte atunci ai putea sa rulezi mai multe job-uri ETL in paralel. Fiecare job ETL apelat cu numele fisierului main.csv pe care sa-l proceseze. ceva de genul: ./ETL.sh 1_main.csv ./ETL.sh 2_main.csv In cazul acesta fisierele csv ar putea sa arate cam asa: 1_main.csv Id,Name,Country,Address,reportedCarsData 1,John,RO,address,1_CarsData.csv 1_CarsData.csv reportedCarModel,year Dacia,2021 Audi,2023 2_main.csv Id,Name,Country,Address,reportedCarsData 2,David,AT,address,2_CarsData.csv 2_CarsData.csv reportedCarModel,year Mercedes,2020 Ford,2021 3_main.csv Id,Name,Country,Address,reportedCarsData 3,Helen,DE,address,3_CarsData.csv 3_CarsData.csv reportedCarModel,year Porche,2024 Daca prelucrezi datele alea in ceva cloud public (GCP sau AWS) atunci asta pare sa fie caz clasic de Cloud function sau Lambda function care este apelata pentru fiecare $Id_main.csv creat/salvat intr-un bucket sau de un mesaj impins intr-un queue. Edited by cralin, 01 March 2024 - 01:58. |
#9
Posted 01 March 2024 - 09:35
#10
Posted 01 March 2024 - 09:58
cralin, on 01 martie 2024 - 01:53, said:
@fabian23, Pe directia pe care ai inceput, ai putea sa scoti csv-urile din DWH cam asa: main.csv Id,Name,Country,Address,reportedCarsData 1,John,RO,address,1_CarsData.csv 2,David,AT,address,2_CarsData.csv 3,Helen,DE,address,3_CarsData.csv 1_CarsData.csv reportedCarModel,year Dacia,2021 Audi,2023 2_CarsData.csv reportedCarModel,year Mercedes,2020 Ford,2021 3_CarsData.csv reportedCarModel,year Porche,2024 Jobul tau ETL face parsing linie cu linie pe main.csv si pentru fiecare linie din main.csv parseaza tot linie cu line si fisierul cu numele mentionat in ultimul field a unei linii din main.csv ca sa scoata detaliile masinilor raportate si sa construieasca nodul/record-ul XML pentru ID-ul respectiv. Asta presupune ca ETL-ul tau este un singur job care merge secvential/liniar pina cind termina de prelucrat toate liniile din main.csv si iti scoate un singur xml cu toate datele in el. Inteleg cum zici dar ce ma fac daca sunt 200000 de reported Id? O sa ajung sa am un main.csv cu 200000 de inregistrari (primul nivel) si inca 200000 de CSV-uri separate.Nu cred ca-i un design bun. Daca plec de la ideia initiala: Id,Name,Country,Address,reportedCaModel,year 1,John,RO,address,Dacia, 2021 Audi, 2023 2,David,AT,address,Mercedes, 2021 Audi, 2022 Ford,2024 3,Helen,DE,address,Skoda, 2020 sa le am pe toate intr-un singur fisier CSV, imi fac viata complicata la citirea CSV-lui pentru ca o faci linie cu linie, si ajung sa am coloane empty care nu trebuie tratate ca erorri si care in algorithm trebuie luate ca parte a unui anumit reported Id. LE: ETL-ul se va face pe un server on premise cu resurse asemanatoare unui laptop din zilele noastre: Xeon cateva core-uri si 16GB RAM. Edited by fabian23, 01 March 2024 - 10:10. |
|
#11
Posted 01 March 2024 - 10:26
Volumul ala de date (200000 de Id-uri + N numar de masini pentru fiecare Id) o sa le ai oricum, indiferent daca le scrii intr-un singur fisier csv sau in mai multe, si oricum o sa trebuiasca sa le prelucrezi pe toate intr-un fel sau altul ca sa scoti unul sau mai multe XML-uri cu ele.
S-ar putea sa te surprinda, dar 400000 de fisiere nu sint o probelma chiar asa de mare cam pentru orice filesystem din zilele noastre. Poate ti-ar fi mai usor daca te-ai gindi prima data din punct de vedere a procesului (ce ar trebui sa se intimple cu datele respective ? cit de repede ar trebui sa se intimple ? de cite ori pe zi ? cit de mare este batch-ul de date care trebuie prelucrat ?) si in functie de asta sa-ti planifici ETL-ul si felul in care iti organizezi datele in CSV-uri ca sa poata sa le inghita ETL-ul cit mai repede/eficient. Edited by cralin, 01 March 2024 - 10:29. |
#12
Posted 01 March 2024 - 18:43
cralin, on 01 martie 2024 - 10:26, said:
Poate ti-ar fi mai usor daca te-ai gindi prima data din punct de vedere a procesului (ce ar trebui sa se intimple cu datele respective ? cit de repede ar trebui sa se intimple ? de cite ori pe zi ? cit de mare este batch-ul de date care trebuie prelucrat ?) si in functie de asta sa-ti planifici ETL-ul si felul in care iti organizezi datele in CSV-uri ca sa poata sa le inghita ETL-ul cit mai repede/eficient.
Edited by fabian23, 01 March 2024 - 18:55. |
#13
Posted 01 March 2024 - 20:39
Din datele alea trebuie sa faci obligatoriu un singur XML sau poti sa ai mai multe XML-uri cu 1 sau mai multe ID-uri in fiecare XML care apoi pot sa fie incarcate in urmatorul system indepndent unul de celalalt ?
Daca azi s-a terminat cu succes runda de conversie a datelor (200000 Id-uri), peste citeva luni cind rulezi din nou rulezi doar pe diferenta de date acumulata de la ultima rulare (1000 Id-uri) sau ai din nou tot setul de date care il primesti la input (201000 Id-uri) si care trebuie sa-l inghita iara ETL-ul ? Daca ai delta, cam cite id-uri sint in setul delta respectiv ? Edited by cralin, 01 March 2024 - 20:49. |
#14
Posted 01 March 2024 - 23:46
Daca privesti datele ca si cum ar fi in doua tabele dintr-o baza de date (cu Id fiind primary/foreign key in tabele) poti sa scapi cu doua fisiere csv.
Ceva de genul asta (doar datele raw in CSV, fara header in prima linie a CSV-ului): main.csv 1,John,RO,The complete address 1 2,David,AT,The complete address 2 3,Helen,DE,The complete address 3 222,Gigel,RO,The complete address 222 reportedCarsData.csv 1,Dacia,2021 3,Porche,2024 2,Mercedes,2020 1,Audi,2023 2,Ford,2021 222,Lastun,1960 In ETL parsezi linie cu linie main.csv si extragi din reportedCarsData.csv doar liniile care incep cu Id-ul din linia care ai citi-o din main.csv. etl.sh #!/bin/bash echo '<?xml version="1.0" encoding="UTF-8"?>' echo '<dataBody xmlns="urn:ro:test:car:report:v1" xmlns:ns2="urn:ro:test:car:report:commontypes:v1" version="4.0">' while IFS="," read -r _ID_ _NAME_ _COUNTRY_ _ADDRESS_ do echo '<report Id="'$_ID_'">' echo '<Name>'$_NAME_'</Name>' echo '<Address>' echo '<Country>'$_COUNTRY_'</Country>' echo '<AddressFree>'$_ADDRESS_'</AddressFree>' echo '</Address>' REPORTED_CARS=$(cat $2 | grep ^$_ID_,) while IFS="," read -r _CARDATA_ID_ _CARDATA_MODEL_ _CARDATA_YEAR_ do echo '<reportedCar>' echo '<model>'$_CARDATA_MODEL_'</model>' echo '<year>'$_CARDATA_YEAR_'</year>' echo '</reportedCar>' done <<< "$REPORTED_CARS" echo '</report>' done < $1 echo '</dataBody>' Il apelezi pe etl.sh cu cele doua CSV-uri ca parametii in linia de comanda si iti scoate XML-ul cu datele din CSV-uri: ./etl.sh main.csv reportedCarsData.csv | xmllint --format - <?xml version="1.0" encoding="UTF-8"?> <dataBody xmlns="urn:ro:test:car:report:v1" xmlns:ns2="urn:ro:test:car:report:commontypes:v1" version="4.0"> <report Id="1"> <Name>John</Name> <Address> <Country>RO</Country> <AddressFree>The complete address 1</AddressFree> </Address> <reportedCar> <model>Dacia</model> <year>2021</year> </reportedCar> <reportedCar> <model>Audi</model> <year>2023</year> </reportedCar> </report> <report Id="2"> <Name>David</Name> <Address> <Country>AT</Country> <AddressFree>The complete address 2</AddressFree> </Address> <reportedCar> <model>Mercedes</model> <year>2020</year> </reportedCar> <reportedCar> <model>Ford</model> <year>2021</year> </reportedCar> </report> <report Id="3"> <Name>Helen</Name> <Address> <Country>DE</Country> <AddressFree>The complete address 3</AddressFree> </Address> <reportedCar> <model>Porche</model> <year>2024</year> </reportedCar> </report> <report Id="222"> <Name>Gigel</Name> <Address> <Country>RO</Country> <AddressFree>The complete address 222</AddressFree> </Address> <reportedCar> <model>Lastun</model> <year>1960</year> </reportedCar> </report> </dataBody> Edited by cralin, 01 March 2024 - 23:55. |
#15
Posted 02 March 2024 - 10:48
cralin, on 01 martie 2024 - 20:39, said:
Din datele alea trebuie sa faci obligatoriu un singur XML sau poti sa ai mai multe XML-uri cu 1 sau mai multe ID-uri in fiecare XML care apoi pot sa fie incarcate in urmatorul system indepndent unul de celalalt ? Raportul final este un singur XML. cralin, on 01 martie 2024 - 20:39, said:
Daca azi s-a terminat cu succes runda de conversie a datelor (200000 Id-uri), peste citeva luni cind rulezi din nou rulezi doar pe diferenta de date acumulata de la ultima rulare (1000 Id-uri) sau ai din nou tot setul de date care il primesti la input (201000 Id-uri) si care trebuie sa-l inghita iara ETL-ul ? Daca ai delta, cam cite id-uri sint in setul delta respectiv ? Nu am Delta. La urmatoare iteratie este un nou set de date. cralin, on 01 martie 2024 - 23:46, said:
Daca privesti datele ca si cum ar fi in doua tabele dintr-o baza de date (cu Id fiind primary/foreign key in tabele) poti sa scapi cu doua fisiere csv. Ceva de genul asta (doar datele raw in CSV, fara header in prima linie a CSV-ului): main.csv 1,John,RO,The complete address 1 2,David,AT,The complete address 2 3,Helen,DE,The complete address 3 222,Gigel,RO,The complete address 222 reportedCarsData.csv 1,Dacia,2021 3,Porche,2024 2,Mercedes,2020 1,Audi,2023 2,Ford,2021 222,Lastun,1960 In ETL parsezi linie cu linie main.csv si extragi din reportedCarsData.csv doar liniile care incep cu Id-ul din linia care ai citi-o din main.csv. Apreciez timpul investit in a prezenta un model si un bash script. Corelatia pe care ai facut-o in fisiere insa nu este corecta. Unicitatea unui carModel nu este data de numele modelului in sine ci de un reportedCaseId (UUID vers.4). Pentru simplitate nu am pus complexType-ul intreg la reportedCar, acesta fiind ceva mai complex avand mai multe tag-uri. Cu alte cuvinte, fiecare reportedId are unul sau mai multe reporteCarModels indentificate prin reportedCaseId <report Id="2"> <Name>David</Name> <Address> <Country>AT</Country> <AddressFree>The complete address 2</AddressFree> </Address> <reportedCar> <model>Mercedes</model> <year>2020</year> <reportedCaseId type="Clearing">e65752276a19d7fabfab98f71514cb77</reportedCaseId> <!-- more elements --> </reportedCar> <reportedCar> <model>Ford</model> <year>2021</year> <reportedCaseId type="Execution">e6ac636eb7c1a8fc1c460d5ad4add487</reportedCaseId> <!-- more elements --> </reportedCar> </report> Pentru implementare, probabil se va folosi Java (JAXB - pentru back and forward searching) cu streaming pentru a nu tine in memorie tot obiectul care creste exponential. Edited by fabian23, 02 March 2024 - 10:50. |
|
#16
Posted 02 March 2024 - 14:16
fabian23, on 02 martie 2024 - 10:48, said:
Corelatia pe care ai facut-o in fisiere insa nu este corecta. Unicitatea unui carModel nu este data de numele modelului in sine ci de un reportedCaseId (UUID vers.4). Pentru simplitate nu am pus complexType-ul intreg la reportedCar, acesta fiind ceva mai complex avand mai multe tag-uri. Cu alte cuvinte, fiecare reportedId are unul sau mai multe reporteCarModels indentificate prin reportedCaseId Pentru transformarea din CSV in XML, in afara ca trebuie sa extinzi etl.sh cu cite valori/coloane are o linie citita din csv si sa construiesti corect output-ul XML in rest nu cred ca se schimba nimic daca ai mai multe detalii despre o masina. Legatura intre datele din cele doua csv-uri o faci pe baza valorii din primul field al fiecarei linii din cele doua fisiere si nu pe baza UUID-ului din reportedCaseId Uite: main.csv 1,John,RO,The complete address 1 2,David,AT,The complete address 2 3,Helen,DE,The complete address 3 222,Gigel,RO,The complete address 222 reportedCarsData.csv 1,Dacia,2021,Cancelled,2c4c231b-f612-4725-876d-8a32c674d2eb 3,Porche,2024,Completed,c3e59825-81d2-47bd-b385-d0f587c2c434 2,Mercedes,2020,Clearing,e65752276a19d7fabfab98f71514cb77 1,Audi,2023,Completed,8a63217e-d019-46b9-ae23-1e52c4e57ffe 2,Ford,2021,Execution,e6ac636eb7c1a8fc1c460d5ad4add487 222,Lastun,1960,In approval,e1c76251-1721-4454-b35c-6657e42b8552 etl.sh #!/bin/bash echo '<?xml version="1.0" encoding="UTF-8"?>' echo '<dataBody xmlns="urn:ro:test:car:report:v1" xmlns:ns2="urn:ro:test:car:report:commontypes:v1" version="4.0">' while IFS="," read -r _ID_ _NAME_ _COUNTRY_ _ADDRESS_ do echo '<report Id="'$_ID_'">' echo '<Name>'$_NAME_'</Name>' echo '<Address>' echo '<Country>'$_COUNTRY_'</Country>' echo '<AddressFree>'$_ADDRESS_'</AddressFree>' echo '</Address>' REPORTED_CARS=$(cat $2 | grep ^$_ID_,) while IFS="," read -r _CARDATA_ID_ _CARDATA_MODEL_ _CARDATA_YEAR_ _CARDATA_REPORTED_CASEID_TYPE_ _CARDATA_REPORTED_CASEID_UUID_ do echo '<reportedCar>' echo '<model>'$_CARDATA_MODEL_'</model>' echo '<year>'$_CARDATA_YEAR_'</year>' echo '<reportedCaseId type="'$_CARDATA_REPORTED_CASEID_TYPE_'">'$_CARDATA_REPORTED_CASEID_UUID_'</reportedCaseId>' echo '</reportedCar>' done <<< "$REPORTED_CARS" echo '</report>' done < $1 echo '</dataBody>' ./etl.sh main.csv reportedCarsData.csv | xmllint --format - <?xml version="1.0" encoding="UTF-8"?> <dataBody xmlns="urn:ro:test:car:report:v1" xmlns:ns2="urn:ro:test:car:report:commontypes:v1" version="4.0"> <report Id="1"> <Name>John</Name> <Address> <Country>RO</Country> <AddressFree>The complete address 1</AddressFree> </Address> <reportedCar> <model>Dacia</model> <year>2021</year> <reportedCaseId type="Cancelled">2c4c231b-f612-4725-876d-8a32c674d2eb</reportedCaseId> </reportedCar> <reportedCar> <model>Audi</model> <year>2023</year> <reportedCaseId type="Completed">8a63217e-d019-46b9-ae23-1e52c4e57ffe</reportedCaseId> </reportedCar> </report> <report Id="2"> <Name>David</Name> <Address> <Country>AT</Country> <AddressFree>The complete address 2</AddressFree> </Address> <reportedCar> <model>Mercedes</model> <year>2020</year> <reportedCaseId type="Clearing">e65752276a19d7fabfab98f71514cb77</reportedCaseId> </reportedCar> <reportedCar> <model>Ford</model> <year>2021</year> <reportedCaseId type="Execution">e6ac636eb7c1a8fc1c460d5ad4add487</reportedCaseId> </reportedCar> </report> <report Id="3"> <Name>Helen</Name> <Address> <Country>DE</Country> <AddressFree>The complete address 3</AddressFree> </Address> <reportedCar> <model>Porche</model> <year>2024</year> <reportedCaseId type="Completed">c3e59825-81d2-47bd-b385-d0f587c2c434</reportedCaseId> </reportedCar> </report> <report Id="222"> <Name>Gigel</Name> <Address> <Country>RO</Country> <AddressFree>The complete address 222</AddressFree> </Address> <reportedCar> <model>Lastun</model> <year>1960</year> <reportedCaseId type="In approval">e1c76251-1721-4454-b35c-6657e42b8552</reportedCaseId> </reportedCar> </report> </dataBody> Edited by cralin, 02 March 2024 - 14:29. |
#17
Posted 02 March 2024 - 17:27
Simplu, usor de inteles. 1 singur fisier.
Banal de transformat in XML, n-ar trebui sa dureze mai mult de cateva secunde pt milioane de inregistrari. Untitled.png 13.19K 6 downloads |
#18
Posted 02 March 2024 - 18:34
@dani.user,
Nu stii apriori cit de multe date ai si cel mai probabil ca o sa-ti crape excelul cind il pui sa-ti incarce un csv de citeva sute de MB si citeva milioane de linii in el. fabian23, on 01 martie 2024 - 18:43, said:
Cu 2500000 de linii de masini raportate deja depasesti destul de bine limitele excelului din punct de vedere al numarului maxim de linii care poti sa le ai intr-un worksheet. Edited by cralin, 02 March 2024 - 18:39. |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users