MSSQL - skriptiranje baze

poruka: 19
|
čitano: 3.290
|
moderatori: XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
16 godina
odjavljen
offline
MSSQL - skriptiranje baze

Ovako, imam jedno pitanjce.

 

Imam jednu bazu od 20ak tablica (od kojih jedna ima 17ak tisuća redaka). Radim na mobilnoj verziji aplikacije i sada bi mi trebala "lite" verzija te baze. Koji mi je najjednostavniji način za exportati samo određene stupce iz par tablica u novu bazu? Problem je u tome što se na tu veliku bazu ne mogu spojiti androidom - jedan obični SELECT ne stane u JSON zahtjev sa kojim bi pokupio podatke. Radio bi po ovim uputama.

 

Postavke, server i sve ostalo radi kako treba ali JSON je jednostavno prekratak (i prespor) za toliku količinu podataka - problematična tablica ima tih 17k redaka u 35 stupaca. Meni treba samo 5 stupaca. Da, znam, mogao bi napisati SELECT (samo traženi stupci) FROM tablica ali ovom manjom bazom bi usput riješio i problem sigurnosti jer će jedino ona biti dostupna na internetu a puna verzija će biti na sigurnom, dostupna samo iz lokalnog raspona, ne remote.

 

Tako da u osnovi imam dvije opcije - kreirati manju bazu sa kojom radi mobilna verzija aplikacije ili pak srediti ovu "glavnu" bazu. Ima netko prijedlog kako da to napravim?

 

Mobilnih korisnika će biti 5-6 (to je app za jednu tvrtku, ne ide van) a "desktop" usera ima također 5.

 

[edit] - zasad je riječ o jednoj tablici ali lako je moguće da će kasnije biti još toga - planirane su nadogradnje cijelog sustava i sl. Aplikacija zasada (po planu) skupi podatke iz te tablice, pošalje sliku i par informacija u XML fajlu (zippano) na FTP od tvrtke i neki "watchdog" koji čeka promet na određenom portu dalje rješava stvar.

http://nighthawk-software.blogspot.com/
Poruka je uređivana zadnji put sub 23.3.2013 13:24 (Sum_of_all_fears).
Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
MSSQL - skriptiranje baze

Možeš pokušati skriptati tabelu po tabelu i onda promjeniti u upitu samo koje želiš retke, ili cjelu bazu skriptati i opet ručno ukloniti retke koje ne želiš.

Za drugi način stvarno ne znam.

 
0 0 hvala 1
12 godina
neaktivan
offline
Re: MSSQL - skriptiranje baze

Najlakši način za prebacivanje podataka ti je da napišeš skriptu u nekom programskom jeziku koja će ti preuzeti podatke iz jedne baze i ubaciti u drugu (iz MSSQL u SQLite pretpostavljam). S tim da moraš paziti kako ćeš vršiti sinhronizaciju sadržaja (osigurati iste sadržaje u obje baze).

Poruka je uređivana zadnji put sub 23.3.2013 14:30 (uberT).
15 godina
neaktivan
offline
Re: MSSQL - skriptiranje baze

ako neces skriptirati VB-om, onda mozes malo duzim nacinom. ako sam dobro shvatio ta baza(od 20-tak tablica) ima u tih n-tablica sve iste stupce. ako da slijedece mozes probat. imas upit append koji spaja sve u istu tab, ili mozes rucno svaki od prestalih 19 tab exportirat u .txt il csv file(svejedno-samo pazi na delimiter) pa merge-aj u jednu tab sa n-kolicinom redaka. deletaj stupce koje ti netrebaju i ostavi samo tih 5 stupaca koji su ti potrebni. ako ti nece tako imas i skriptu u cmd za spajanje txt file-ova(nakon sta ih exportas iz baze-tablice u .txt notepad il .csv excel).

16 godina
odjavljen
offline
MSSQL - skriptiranje baze

Da pojasnim - ostaje u MSSQLu i to na istom serveru (2005).

 

Dalje, postoji 20ak tablica i svaka ima drugačije stupce (sve su različite). Problem je tablica od 17k redaka i 35 stupaca.

 

Treba mi "manja" verzija baze koja ima 4-5 tablica od tih 20 i iz svake je izbačen određeni broj stupaca (različito za svaku tablicu).

 

E sada, hoću li ratovati sa skriptiranjem i smanjivanjem te baze ili da jednostavno osiguram ovu kako treba (useri i njihove ovlasti) i napišem malo drugačije upite (umjesto select * from velika_t stavim select stupac_a, stupac_b... from velika_t)?

http://nighthawk-software.blogspot.com/
Moj PC  
0 0 hvala 0
12 godina
neaktivan
offline
Re: MSSQL - skriptiranje baze

Pa ako podatke uzimaš iz samo jedne tabele, onda je SELECT *... ok i nema potrebe za novim bazama i slično. Ako vršiš spajanje tabela, trebaš malo dublju analizu uraditi.

 

DODATAK: Ja sam radio neki servis sa Posgresom i RoRom sa par stotina hiljada unosa u bazi i veći dio je otpadao na serijalizaciju podataka u JSON, a manji dio je zauzimao sam upit. Imaš alata kojima možeš mjeriti vrijeme upita, pa ti to može pomoći da odlučiš.

 

Ako imaš primjer upita i broj unosa u tabelama, možda bi bilo dobro da postaviš, pa da pogledamo.

Poruka je uređivana zadnji put sub 23.3.2013 14:40 (uberT).
12 godina
neaktivan
offline
Re: MSSQL - skriptiranje baze

Napravi view koji radi select samo onih 5 stupaca i mobilnoj aplikaciji dozvoli pristup bazi isključivo preko tog viewa.

 

Ako baš želiš drugu bazu čini mi se da je najjednostavnije backup/restore glavne baze, pa onda pusti skriptu koja na "mobilnoj" bazi dropa višak stupaca.

Poruka je uređivana zadnji put sub 23.3.2013 20:01 (Bobobo-bo Bo-bobo).
16 godina
odjavljen
offline
Re: MSSQL - skriptiranje baze

Meni se čini da će ipak biti ovaj prvi prijedlog - select onih koji trebaju i posebni user koji smije samo čitati + web "servis" sa minimalnim ovlastima.

 

Ionako 99% posla odrađuje listen server... Ova web aplikacija je tu da pošalje tablicu do Androida pošto nema drugog načina a u firmi mora biti MSSQL...

http://nighthawk-software.blogspot.com/
17 godina
offline
MSSQL - skriptiranje baze

Prvo i najbitnije, zašto basic4android ??? Ako samo zato jer ti Java ne paše, moj savjet, rađe nauči (nije toliko drugačija od C#-a), nego koristiti nešto što treba platiti i još k tome je inferiorno rješenje.

Evo par tutoriala ??

http://mobiforge.com/developing/story/consuming-json-services-android-apps

http://www.codeproject.com/Articles/267023/Send-and-receive-json-between-android-and-php

 

Drugo, mislim da ti je REST (JSON) najbolje rješenje. Napravi si web servis koji će prezentirati podatke, a ti to samo vući. I da još jedno pitanje, čemu 17k redova slati u Android. Nećeš se baš usrećiti ako ćeš to pokušati prikazati. Ako ćeš to filtrirati na Android strani, hmm, mislim da je bolje rješenje da filtriraš na server strani, a Android-u pošalješ samo podatke koje treba prikazati. Još k tome mu zipaš cijeli json odgovor(otpakiraš ga na client strani) i stvar će raditi brzo, sa malim network overhead-om i skoro pa ništa prostora na disku.I da 5-6 korisnika, to nije nikakav problem za server.

 

Ne znam, nisam baš najbolje shvatio što pokušavaš napraviti, pa ti ne mogu dati bolji prijedlog.

'Genius might be the ability to say a profound thing in a simple way' Charles Bukowski
 
0 0 hvala 0
16 godina
odjavljen
offline
Re: MSSQL - skriptiranje baze

Ne basic4android Smijeh

 

Taj tut sam samo dao da vidite koja je opcija za skupit podatke iz baze - samo me ovaj asp.net dio zanima. Aplikacija bi bila normalno napisana u javi, samo mi ovaj JSON treba od tog tuta. Što se tiče 17k redaka, neće se sve slati, nema smisla, ionako je ListView malo usporena stvar tako da će user na androidu prvo nešto poklikati pa će se to isfiltrirati na 20ak redaka max i 4-5 stupaca - zato mi se sve ovo čini kao idealno rješenje.

 

Što pokušavam napraviti? Zanima me koji je najjednostavniji način za skupiti samo dio podataka iz baze i poslati to na android app uz par filtera.

 

Osim toga, naišao sam na ovo. To izbacuje cijeli asp.net i JSON iz priče i omogućuje mi direktno spajanje android aplikacije na MSSQL server.

http://nighthawk-software.blogspot.com/
13 godina
neaktivan
offline
Re: MSSQL - skriptiranje baze

Već smo preko PP-a pričali, ali nema veze.

Nadam se da si odustao od web forme i prebacio u web servis. Može ASP.NET-ov .asmx ili WCF servis. Sa ASP.NET MVC-em 4 dolazi i WebAPI, ako dobro ako nemaš vremena da sad to proučavaš, može i ASP.NET web servis. 

Što se WebAPI-a tiče, imaš slijedeću situaciju.

Poziv dolazi na route engine, po defaultu

api/kontroler/parametri 


U kontroleru se definišu akcije za HTTP POST, GET, PUT, DELETE...

Npr. za Get napišeš u nekom kontroleru osoblje:
public IEnumerable<string> Get()

{

  return new string[] {"neko", "nekić"}

 

Ako ukucaš u preglednik
localhost/api/osoblje

dobit ćeš

<ArrayOfstring xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
  <string>neko</string>
  <string>nekić</string>

</ArrayOfstring> 

 

 

Naravno dalje radiš ako ima metod Get prametre, pa to fitriraš i ostalo...

Poruka je uređivana zadnji put pon 25.3.2013 17:43 (royalhero).
16 godina
odjavljen
offline
Re: MSSQL - skriptiranje baze

Moram malo proučit ovu varijantu sa gotovim libraryem. Ako ne radi kako spada, idem na taj web servis.

 

Pošto sam u stisci, ako se nekome slučajno da, može kao primjer ostalima nakucati i usput meni srediti Smijeh

 

Dakle, ja bi u taj servis proslijedio par parametara za select i treba mi JSON ili neki sličan odgovor koji mogu proparsirati na androidu (u javi). Mogu i cijeli query složit na androidu pa ga takvog proslijediti, nije problem ali me zanima sa aspekta sigurnosti - naravno, napravio bi ograničenog usera sa read ovlastima samo za potrebu te mobilne aplikacije.

http://nighthawk-software.blogspot.com/
14 godina
protjeran
offline
MSSQL - skriptiranje baze

A da napraviš novu bazu i ćao?

Ad astra peronospora
 
0 0 hvala 0
16 godina
odjavljen
offline
Re: MSSQL - skriptiranje baze

Tako će i biti.

 

BTW, jedno pitanjce. Kako u SQLu pretražiti string tipa "pero perić" ako je on možda upisan kao "perić pero"? Dakle, ako je u bazi kontakt koji ima "naopako" upisano ime i prezime - kako ga naći? Podaci su uvezeni iz jednog knjigovodstvenog programa pa su malo u kaosu...

 

[edit] - vezano za ovaj problem gore, čitam da se nešto može regexom ali izgleda tako bolesno komplicirano...

http://nighthawk-software.blogspot.com/
Poruka je uređivana zadnji put pet 29.3.2013 11:13 (Sum_of_all_fears).
13 godina
neaktivan
offline
Re: MSSQL - skriptiranje baze
16 godina
odjavljen
offline
Re: MSSQL - skriptiranje baze

Jel to to?

 

Meni se čini da mi to baš i neće pomoći (barem koliko zaključujem iz primjera). Niti jedan primjer ne navodi išta slično onome što meni treba. Meni se čini da ću morat string "razbijati" na 2 ili više dijelova i hebat se sa regexom ili slagati neki divlji upit koji bi mogao slobodno u knjige o voodoo čarolijama...

 

[edit] - da ne kompliciram i ne pišem na 6 mjesta, svi koji mogu pomoć oko ovog problema follow this link... Rješenje, problemi sa rješenjem i sl. Nije za osobe slabijeg želudca.

http://nighthawk-software.blogspot.com/
Poruka je uređivana zadnji put pet 29.3.2013 19:11 (Sum_of_all_fears).
17 godina
odjavljen
offline
Re: MSSQL - skriptiranje baze
royalhero kaže...

 

Mislim da ne funkcionira baš najbolje u našem podneblju (mislim da nije prilagođen hrvatskom, barem nije prije bio). Trebao bi se koristiti neki od ETL alata za to...

Freak Show Inc.
13 godina
neaktivan
offline
Re: MSSQL - skriptiranje baze
Friday kaže...

 

Mislim da ne funkcionira baš najbolje u našem podneblju (mislim da nije prilagođen hrvatskom, barem nije prije bio). Trebao bi se koristiti neki od ETL alata za to...

Može biti, nisam ga puno koristio (nešto malo u web aplikacijama, ma kuac sam ga koristio, sad pogledao projekt i vidim da sam ispao budala, umjesto jednostavnog like %%...), koliko znam na ovom forumu je traženje tema odrađeno na taj način. Ko je ono pitao kako je to odrađeno? :)

Poruka je uređivana zadnji put sri 17.4.2013 12:01 (royalhero).
14 godina
neaktivan
offline
Re: MSSQL - skriptiranje baze

Evo jedan drugi pogled na rjesenje.

 

Zasto nebi napravio neki web servis koji ce na serveru dohvacati podatke i vrsiti querye na bazu, a tebi samo vracati rezultat koji ti aplikacija onda preuzima?

 

EDIT: sada sam vidio da je post malo stariji :)

http://www.winblogs.net
Poruka je uređivana zadnji put sri 24.4.2013 23:25 (Alesandro).
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice