ProHoster > Blog > Pulega > Fa'amatalaga a le Saienitisi Fa'amatalaga: O se Iloiloga Fa'apitoa o Gagana Fa'amatalaga Fa'amatalaga
Fa'amatalaga a le Saienitisi Fa'amatalaga: O se Iloiloga Fa'apitoa o Gagana Fa'amatalaga Fa'amatalaga
O loʻo ou taʻu atu ia te oe mai aafiaga patino le mea na aoga i fea ma o afea. O le aotelega ma le suʻesuʻega, ina ia manino pe o le a ma le mea e mafai ona e eli atili ai - ae o loʻo ia te aʻu lava le poto masani patino, atonu e matua ese lava mea uma mo oe.
Aisea e taua ai le iloa ma mafai ona fa'aoga gagana fa'afesili? I lona autu, Fa'asaienisi Fa'amatalaga e tele vaega taua o galuega, ma o le mea muamua ma sili ona taua (a aunoa ma lea, e mautinoa e leai se mea e aoga!) O le mauaina po'o le su'eina o fa'amaumauga. O le tele o taimi, o faʻamaumauga o loʻo nofo i se mea i se tulaga ma e manaʻomia ona "toe maua mai" mai iina.
Ole gagana ole fesili e fa'atagaina oe e su'e mai fa'amaumauga nei! Ma o le asō o le a ou taʻu atu ia te oe e uiga i na gagana fesili na aoga ia te aʻu ma o le a ou taʻu atu ia te oe ma faʻaali atu ia te oe le mea ma pe faʻapefea tonu - aisea e manaʻomia ai le suʻesuʻe.
E tolu poloka autu o ituaiga faʻamatalaga faʻamatalaga, lea o le a tatou talanoaina i lenei tusiga:
O gagana fesili "Standard" o mea ia e masani ona malamalama i ai pe a talanoa e uiga i se gagana fesili, pei ole algebra relational poʻo le SQL.
Gagana fesili tusitusi: mo se faʻataʻitaʻiga, Python mea pandas, numpy poʻo le atigi tusitusiga.
Su'esu'e gagana mo kalafi malamalama ma fa'amaumauga kalafi.
O mea uma o loʻo tusia iinei e naʻo se poto masani patino, mea na aoga, faʻatasi ai ma se faʻamatalaga o tulaga ma "pe aisea na manaʻomia ai" - e mafai e tagata uma ona taumafai pe faʻafefea ona oʻo mai tulaga faʻapena ia te oe ma taumafai e sauniuni muamua mo i latou e ala i le malamalama i nei gagana ae e te le'i talosaga (faanatinati) i se poloketi po'o le o'o foi i se poloketi pe a mana'omia.
"Tulaga masani" gagana fesili
O gagana fesili masani e sa'o i le uiga e masani ona tatou mafaufau i ai pe a tatou talanoa e uiga i fesili.
Algebra sootaga
Aisea e manaomia ai le algebra relational i aso nei? Ina ia maua se malamalama lelei pe aisea e faʻatulagaina ai gagana fesili i se auala patino ma faʻaaogaina ma le iloa, e tatau ona e malamalama i le autu o loʻo faʻavae ai.
O le a le algebra sootaga?
O le fa'amatalaga aloa'ia e fa'apea: o le algebra feso'ota'iga ose faiga tapuni o fa'agaioiga i luga o so'oga i se fa'ata'ita'iga fa'amaumauga o feso'ota'iga. A fa'apena sina fa'aletagata, o se faiga lea o fa'agaioiga i luga o laulau e fa'apea o le taunu'uga o se laulau.
Va'ai galuega fa'afeso'ota'i uma i totonu lenei tusiga mai Habr - o iinei matou te faʻamatalaina pe aisea e tatau ai ona e iloa ma le mea e sau ai.
Aisea?
Amata ona malamalama po o le a le uiga o gagana fesili ma pe o a galuega o loʻo i tua o faʻamatalaga i gagana faʻapitoa fesili e masani ona maua ai se malamalamaga loloto i mea e aoga i gagana fesili ma pe faʻafefea.
Aveina mai lenei tala. O se faʻataʻitaʻiga o se taʻaloga: faʻatasi, lea e faʻapipiʻi laulau.
Mea mo su'esu'ega:
Lelei folasaga vasega mai Stanford. I se tulaga lautele, o loʻo i ai le tele o mea i luga ole algebra fesoʻotaʻiga ma aʻoaʻoga - Coursera, Udacity. E iai foʻi le tele o mea i luga ole laiga, e aofia ai le lelei a'oa'oga fa'apitoa. O la'u fautuaga patino: e tatau ona e malamalama lelei i le algebra relational - o le faavae lea o faavae.
O le SQL o se faʻatinoga o le algebra fesoʻotaʻiga - faʻatasi ai ma se faʻamatalaga taua, SQL e faʻaalia! O lona uiga, pe a tusia se fesili i le gagana o le algebra relational, e te taʻu moni lava pe faʻapefea ona faʻatatau - ae faʻatasi ai ma le SQL e te faʻamaonia le mea e te manaʻo e faʻapipiʻi, ona faʻatupuina lea e le DBMS (aoga) faʻamatalaga i le gagana o le algebra relational (latou). tutusa ua iloa ia i tatou o Codd's theorem).
Relational DBMSs: Oracle, Postgres, SQL Server, ma isi o loʻo toetoe lava i soo se mea ma o loʻo i ai se avanoa maualuga tele e tatau ona e fegalegaleai ma i latou, o lona uiga e tatau ona e faitau le SQL (lea e foliga mai) pe tusi ( e le taumate foi).
O mea e faitau ma su'esu'e
E tusa ai ma sootaga tutusa o loʻo i luga (e uiga i le algebra relational), o loʻo i ai le tele o meafaitino, mo se faʻataʻitaʻiga, lenei.
I le auala, o le a le NoSQL?
"E taua le toe faamamafaina o le faaupuga "NoSQL" e matua tupu fua lava ma e leai se faʻamatalaga masani poʻo se faʻalapotopotoga faʻasaienisi i tua atu." E fetaui se tusiga i luga o Habr.
O le mea moni, na iloa e tagata e le manaʻomia se faʻataʻitaʻiga atoatoa e foia ai le tele o faʻafitauli, aemaise lava mo i latou o loʻo i ai, mo se faʻataʻitaʻiga, e taua tele le faʻatinoga ma o nisi o fesili faigofie faʻatasi ma le faʻapipiʻiina o loʻo puleaina - lea e taua ai le vave faʻatatau metrics ma tusi i latou i le database, ma o le tele o vaega e fesoʻotaʻi e le gata ina le manaʻomia, ae faʻaleagaina foi - aisea e faʻavasega ai se mea pe afai o le a faʻaleagaina ai le mea sili ona taua mo i tatou (mo nisi galuega patino) - gaosiga?
E le gata i lea, e masani ona manaʻomia ni faʻataʻitaʻiga fetuutuunai nai lo le faʻatulagaina o le numera o le faʻataʻitaʻiga masani - ma e matua faafaigofieina ai le atinaʻeina o talosaga pe a taua tele le faʻaogaina o le faiga ma amata galue vave, faʻagaoioia taunuuga - poʻo le schema ma ituaiga o faʻamaumauga teuina. e le taua tele.
Mo se faʻataʻitaʻiga, o loʻo matou fatuina se faiga faʻapitoa ma manaʻo e teu faʻamatalaga i luga o se vaega faʻapitoa faʻatasi ai ma nisi faʻamatalaga meta - atonu matou te le iloa uma fanua ma naʻo le teuina o le JSON mo faʻamaumauga taʻitasi - e tuʻuina mai ia i matou se siosiomaga sili ona fetuutuunai mo le faʻalauteleina o faʻamaumauga. faʻataʻitaʻiga ma vave faʻasolosolo - o lea i lenei tulaga, NoSQL o le a sili atu ona lelei ma sili atu ona mafai ona faitau. Faʻataʻitaʻiga faʻamatalaga (mai se tasi o aʻu galuega faatino lea sa i ai NoSQL i le mea sa manaʻomia).
E mafai ona e faitau atili iinei e uiga i le NoSQL.
O le a le mea e su'esu'e?
O iinei, nai lo lena, e manaʻomia lou suʻesuʻeina maeʻaeʻa o lau galuega, o a mea o loʻo ia te ia ma poʻo a NoSQL system o loʻo avanoa e fetaui ma lenei faʻamatalaga - ona amata lea ona suʻesuʻe lenei faiga.
Gagana Fesili Tusitusi
I le taimi muamua, e foliga mai, o le a le mea e fai e le Python i le lautele - o se gagana polokalame, ae le o ni fesili.
O Pandas e moni lava o se naifi Suiselani Army o Faʻamatalaga Saienisi; o le tele o suiga o faʻamatalaga, faʻapipiʻi, ma isi mea e tupu i totonu.
Numpy - fua fa'atatau, matrices ma le algebra laina iina.
Scipy - e tele le numera i totonu o lenei afifi, aemaise lava faʻamaumauga.
Jupyter lab - tele su'esu'ega su'esu'ega fa'amaumauga e fetaui lelei i totonu o komepiuta feavea'i - aoga e iloa.
Talosaga - galue ma le fesoʻotaʻiga.
Pyspark e sili ona lauiloa i inisinia faʻamatalaga, e foliga mai e tatau ona e fegalegaleai ma lenei poʻo Spark, ona o lo latou lauiloa.
*Seleni - e aoga tele mo le aoina mai o faʻamatalaga mai nofoaga ma punaoa, o nisi taimi e leai se isi auala e maua ai faʻamatalaga.
O laʻu fautuaga autu: aʻoaʻo le Python!
panda
Sei o tatou ave le code lea e fai ma faʻataʻitaʻiga:
O le mea moni, matou te vaʻai e fetaui le code i le mamanu masani a le SQL.
SELECT start_station_name, end_station_name, count(trip_duration_seconds) as size, …..
FROM dataset
WHERE trip_type = ‘return’
GROUPBY start_station_name, end_station_name
Ae o le vaega taua o lenei code o se vaega o le tusitusiga ma le paipa; o le mea moni, o loʻo matou faʻapipiʻiina fesili i totonu o le Python pipeline. I lenei tulaga, o le gagana fesili e sau ia i matou mai faletusi e pei o Pandas poʻo pySpark.
I se tulaga lautele, i le pySpark tatou te vaʻai i se ituaiga o suiga faʻamatalaga e ala i se gagana fesili i le agaga o:
I luga ole Python lava ia ile lautele e le o se faafitauli su'e mea e su'esu'e. O loʻo i ai se numera tele o aʻoaʻoga i luga ole laiga pona, pySpark ma kosi i luga aloiafi (ma na o ia lava DS). I le aotelega, o le anotusi iinei e lelei tele mo googling, ma afai e tatau ona ou filifilia se tasi afifi e taulai i ai, o le pandas, ioe. E tusa ai ma le tuʻufaʻatasia o mea DS+Python foʻi tele.
Shell e fai ma gagana fa'afesili
Ole tele o faʻamatalaga faʻamatalaga ma auʻiliʻili galuega faatino na ou galue ai, o le mea moni, o faʻamaumauga atigi e taʻua le code i le Python, Java, ma le atigi e faʻatonuina i latou lava. O le mea lea, i se tulaga lautele, e mafai ona e mafaufau i paipa i le bash / zsh / etc e pei o se ituaiga o fesili maualuga (e mafai, ioe, mea faʻaoga i totonu, ae e le o se mea masani mo le DS code i gagana atigi), seʻi o tatou tuʻuina atu. se faʻataʻitaʻiga faigofie - E manaʻomia ona ou faia se faʻafanua QID o wikidata ma fesoʻotaʻiga atoa i le Rusia ma le Igilisi wikis, mo lenei mea na ou tusia ai se talosaga faigofie mai poloaiga i le bash ma mo le gaioiga na ou tusia ai se tusitusiga faigofie i le Python, lea na ou tusia ai. fa'atasi fa'apea:
JQ_QUERY = 'select((.[0][1] == "sitelinks" and (.[0][2]=="enwiki" or .[0][2] =="ruwiki") and .[0][3] =="title") or .[0][1] == "id")'
O le mea moni, o le paipa atoa lea na fatuina ai le faʻafanua manaʻomia; e pei ona tatou vaʻaia, o mea uma na galue i le auala faʻafefe:
pv filepath - tu'uina atu se fa'asologa o le alualu i luma e fa'avae i luga o le tele o faila ma pasi atu mea i totonu
unpigz -c faitau se vaega o le archive ma tuuina atu i le jq
jq faʻatasi ai ma le ki - vaitafe vave maua ai le taunuʻuga ma tuʻuina atu i le postprocessor (tutusa ma le faʻataʻitaʻiga muamua) i le Python
i totonu, o le postprocessor o se masini setete faigofie na faʻapipiʻiina le gaioiga
I le aotelega, o se paipa lavelave o loʻo galue i le faʻaogaina o faʻamatalaga i luga o faʻamatalaga tetele (0.5TB), e aunoa ma ni punaoa taua ma faia mai se paipa faigofie ma ni meafaigaluega se lua.
O le isi faʻamatalaga taua: ia mafai ona galue lelei ma lelei i totonu o le laina ma tusi bash / zsh / etc.
O fea o le a aoga? Ioe, toetoe lava o soʻo se mea - toe, e TELE mea e suʻesuʻe i luga ole Initaneti. Aemaise, iinei uila la'u tusiga muamua.
R tusitusiga
Toe, e mafai e le tagata faitau ona alaga - lelei, o se gagana atoa polokalame! Ma o le mea moni, o le a saʻo o ia. Ae ui i lea, e masani ona ou faʻafeiloaʻi i le R i se tulaga, o le mea moni, e talitutusa lava ma se gagana fesili.
R ose si'osi'omaga fa'akomepiuta fa'afuainumera ma le gagana mo fa'amatalaga fa'apitoa ma fa'aaliga (e tusa ai ma le lenei).
ave mai iinei. I le auala, ou te fautuaina, mea lelei.
Aisea e mana'omia ai e se saienitisi fa'amaumauga ona iloa R? Le itiiti ifo, ona o loʻo i ai se vaega tele o tagata e le o ni IT latou te suʻeina faʻamaumauga i le R. Na ou mauaina i nofoaga nei:
Vaega tau vailaau.
Tagata su'esu'e o meaola.
Vaega tau tupe.
O tagata e iai a'oa'oga fa'a-matematika o lo'o feagai ma fa'amaumauga.
Fa'ata'ita'iga fa'afuainumera fa'apitoa ma fa'ata'ita'iga a'oa'oga masini (lea e masani ona maua i le fa'amatalaga a le tusitala o se afifi R).
Aisea ua avea moni ai o se gagana fesili? I le tulaga e masani ona maua ai, o le mea moni lava o se talosaga e fai se faʻataʻitaʻiga, e aofia ai le faitau faʻamaumauga ma le faʻatulagaina o faʻataʻitaʻiga (faʻataʻitaʻiga), faʻapea foʻi ma le vaʻaia o faʻamatalaga i totonu o afifi e pei o ggplot2 - o se ituaiga foi lea o fesili tusitusi. .
Fa'ata'ita'iga fesili mo fa'aaliga
ggplot(data = beav,
aes(x = id, y = temp,
group = activ, color = activ)) +
geom_line() +
geom_point() +
scale_color_manual(values = c("red", "blue"))
I se tulaga lautele, o le tele o manatu mai le R ua siitia atu i totonu o pusa python e pei o pandas, numpy poʻo scipy, pei o faʻamatalaga faʻamaumauga ma faʻamaumauga faʻamaumauga - o lona uiga lautele o le tele o mea i le R o le a foliga masani ma faigofie ia te oe.
E tele punaoa e suʻesuʻe ai, mo se faʻataʻitaʻiga, lenei.
Kalafi poto
O iinei o loʻo ia te aʻu se poto masani e le masani ai, aua e masani ona ou galue i kalafi malamalama ma fesili gagana mo kalafi. O le mea lea, seʻi o tatou faʻapuupuu le faʻavae, aua o lenei vaega e sili atu le ese.
I fa'amaumauga tu'ufa'atasiga masani o lo'o i ai a tatou fa'atonuga fa'amautu, ae o i'inei e fetuutuuna'i le fa'asologa, o fa'ailoga ta'itasi e moni lava o se "koluma" ma sili atu.
Vaʻai faalemafaufau o loʻo e faʻataʻitaʻiina se tagata ma manaʻo e faʻamatala mea taua, mo se faʻataʻitaʻiga, seʻi o tatou ave se tagata patino, Douglas Adams, ma faʻaaoga lenei faʻamatalaga e fai ma faavae.
Afai matou te faʻaaogaina se faʻamaumauga faʻamaumauga, e tatau ona matou fatuina se laulau tele poʻo laulau ma se numera tele o koluma, o le tele o ia mea o le a NULL pe faʻatumuina i se tau sese sese, mo se faʻataʻitaʻiga, e foliga mai o le toatele oi tatou e maua se ulufale i totonu o le faletusi a le atunuʻu Korea - ioe, e mafai ona matou tuʻuina i latou i laulau eseese, ae o le mea mulimuli o se taumafaiga e faʻataʻitaʻi se vaʻaiga talafeagai ma faʻamatalaga e faʻaaoga ai se sootaga tumau.
Mafaufau la o fa'amaumauga uma o lo'o teuina e pei o se kalafi po'o ni fa'amatalaga boolean binary ma unary.
O fea e mafai ona e feagai ai ma lenei mea? Muamua, galue ma fa'amatalaga wiki, ma fa'atasi ai ma so'o se fa'amaumauga o kalafi po'o fa'amaumauga feso'ota'i.
O lo'o taua i lalo ole gagana autu ole fesili na ou fa'aogaina ma galue ai.
Ae o le mea moni lava ose gagana fesili mo fa'atatau unary ma binary predicates. O lo'o e fa'atonuina fa'apitoa le mea o lo'o fa'amauina i se fa'aaliga Boolean ma le mea e leai (fa'afaigofie tele).
O le RDF (Resource Description Framework) faavae lava ia, lea e faʻatino ai fesili a le SPARQL, e tolu tolu. object, predicate, subject - ma o le fesili e filifilia le tolu tolu manaʻomia e tusa ai ma tapulaʻa faʻamaonia i le agaga: saili se X e faʻapea e moni p_55(X, q_33) - lea, ioe, p_55 o se ituaiga o fesoʻotaʻiga ma ID 55, ma q_33 o se mea fa'atasi ma le ID 33 (i'i ma le tala atoa, toe aveese uma fa'amatalaga).
O le mea moni, matou te fia su'e le tau o le ?atunuu fesuia'i mo le predicate
member_of, e moni o le member_of(?country,q458) ma le q458 o le ID o le Iuni a Europa.
O se faʻataʻitaʻiga o se fesili moni SPARQL i totonu ole afi ole python:
E masani lava, e tatau ona ou faitau SPARQL nai lo le tusia - i lena tulaga, e foliga mai o se tomai aoga e malamalama ai i le gagana a itiiti mai i se tulaga faavae e malamalama tonu ai pe faapefea ona toe maua mai faʻamatalaga.
E tele mea e suʻesuʻe i luga ole laiga: mo se faʻataʻitaʻiga, iinei lenei и lenei. E masani ona ou google mamanu ma faʻataʻitaʻiga ma ua lava lena mo le taimi nei.
Gagana fesili talafeagai
E mafai ona e faitau atili i le autu i laʻu tusiga iinei. Ma o iinei, o le a tatou suʻesuʻeina faʻapuupuu pe aisea e fetaui lelei ai gagana talafeagai mo le tusiaina o fesili. O le mea moni, o le RDF ua na'o se seti o fa'amatalaga talafeagai o le fomu p(X) ma le h(X,Y), ma o se su'esu'ega talafeagai e iai le fomu nei:
output(X) :- country(X), member_of(X,“EU”).
O lea o loʻo matou talanoa e uiga i le fatuina o se faʻailoga fou / 1 (/1 o lona uiga o le unary), pe a faʻapea mo X e moni o le atunuʻu(X) - o lona uiga, X o se atunuʻu ma sui foi o (X,"EU ").
O lona uiga, i lenei tulaga, o faʻamaumauga ma tulafono o loʻo tuʻuina atu i le auala lava e tasi, lea e mafai ai ona tatou faʻataʻitaʻiina faʻafitauli faigofie ma lelei.
O fea na e feiloai ai i le pisinisi?: o se galuega tele atoa ma se kamupani e tusia fesili i sea gagana, faʻapea foʻi ma le galuega o loʻo i ai nei i le totonugalemu o le faiga - e foliga mai o se mea e sili atu, ae o nisi taimi e tupu.
O se fa'ata'ita'iga o se vaega fa'ailoga i se gagana fa'atatau wikidata:
Mea: O le a ou tuʻuina atu iinei ni fesoʻotaʻiga i le gagana faʻatulagaina faʻaonaponei faʻaonaponei Tali Set Polokalama - Ou te fautuaina le suʻesuʻeina: