Notae datae Scientist: Privata Review of Data Query Linguae

Notae datae Scientist: Privata Review of Data Query Linguae
Quid ubi et quando usui fuerit, a personali experientia tibi narro. Est prospectum et propositum, ut pateat quid et ubi ulterius fodere possis - sed hic experientiam personalem solum subiectivam habeo, fortasse omnia tibi omnino diversa sunt.

Cur interest scire et linguas query posse uti? Data Scientia in suo nucleo plures momenta laboris habet, et ipsa prima ac maxima (sine eo, certe nihil laborabit) notitias obtinet vel extrahendo. Saepissime notitia alicubi sedet in aliqua forma et inde debet "recepta". 

Quaero linguae sinunt te hanc ipsam notitiam extrahere! Et hodie tibi dicam de illis linguis quæstione quæ mihi usui fuerunt, et tibi indicabo ubi et quam exacte sit tibi - cur opus sit studere.

Tres causae principales erunt notarum interrogationi generum, de quibus in hoc articulo disputabimus:

  • "Latin" interrogationes linguae sunt eae quae vulgo intelliguntur cum de lingua quaesita loquitur, sicut algebra relativa vel SQL.
  • Quaesivit linguas scribens: exempli gratia, Python res pandas, numpy vel concha scripting.
  • Linguae quaeruntur ad cognitionem graphorum et datorum graphorum.

Omnia hic scripta propria experientia est, quid utile, cum condicionum descriptione et "quare opus erat" - quisque experiri potest quomodo similes casus obvenire possint et conetur praeparare ad eas ante has linguas intelligendas. antequam opus sit (vehementer) in consilium vel etiam ad consilium ubi opus sunt.

"Latin" query linguarum

Linguae investigatio usitata est praecise eo sensu, quod solere de illis cogitare cum de queriis loquimur.

Algebra relativa

Cur hodie requiretur algebra relativa? Ut bene intellegas cur interrogationes linguae quodam modo structae sint iisque scienter utaris, debes intellegere nucleum earum subiectarum.

Quid est Algebra relativa?

Definitio formalis haec est: Algebra relativa clausa est systema operationum relationum in notitia relationis exemplar. Hoc ut paulo humanius dicam, haec est ratio operationum in tabulis, ut semper exitum mensae habeat.

Vide omnes operationes relationes in haec articulus ab Habr - Hic describitur cur scire debes et unde in promptu venit.

Quid?

Incipiens ad intellegendum quaenam linguarum sint omnes circa et quaenam operationes sint in expressionibus certis inquisitionis linguae, saepe altius percipit eorum quae in linguarum inquisitione operatur et quomodo.

Notae datae Scientist: Privata Review of Data Query Linguae
Ex haec capitula. Exemplum operationis: adiunge, quae iungit tabulas.

Materiae studiorum;

Bonum cursum introductorium ex Stanford. In genere multae materiae sunt in algebra et theoria relationis - Coursera, Udacity. Est etiam ingens moles materiae online, incluso bono academic cursus. Meum consilium personale: algebram relationem optime comprehendere debes - hoc fundamentum est fundamentalum.

SQL

Notae datae Scientist: Privata Review of Data Query Linguae
Ex haec articulus.

SQL essentialiter exsecutio algebrae relationis - cum cautione magna, SQL declarativa est! Hoc est, cum interrogationem scribentis in lingua algebra relationis, revera quomodo calculare dicis - sed cum SQL exprimis quid vis extrahere, et tunc DBMS locutiones in lingua algebra relationis (eorum) iam generat (effective) condigno notum est nobis Theorema Codd).

Notae datae Scientist: Privata Review of Data Query Linguae
Ex haec articulus.

Quid?

Relational DBMSs: Oraculum, Postgres, SQL Servo, etc. adhuc paene ubique sunt et incredibile casui est quod cum illis correspondere debebis, quod per SQL (quod est verisimile) vel scribendum habebis. non abhorret aut).

Quod legere et studere

Iuxta eosdem nexus supra (de algebra relativo), incredibilis est copia materiae, e.g. haec.

Viam quid est NosQL?

"Adfirmandum est iterum vocabulum "NoSQL" habere originem absolute spontaneam et nullam generaliter receptam definitionem vel institutionem scientificam post eam. Respondens articulus in Habr.

Revera, homines intellexerunt plenam relativam exemplar quaestiones multas solvendas non esse necessarias, iis praesertim in quibus, exempli gratia, effectus criticae et quaedam simplices inquisitiones cum aggregatione dominantur - ubi criticum est ut cito metricas calculare et eas scribere. database, et plurima lineamenta relativa evaserunt non solum superflua, sed etiam nociva - cur aliquid normalizemus, si res nobis potissimum corrumpet (pro munere aliquo proprio) - productivity?

Etiam schemata flexibilia saepe requiruntur pro schematibus mathematicis definitis exemplar relationis classicae - et hoc incredibile simpliciorem applicationem evolutionis cum criticum est explicandi rationem et celeriter operandi, eventus expediendi - sive schema et genera notitiarum conditarum. non ita magna.

Exempli gratia, systema peritum creamus et informationes in certa provincia cum meta aliqua condere volumus - non possumus omnes agros cognoscere et pro singulis recordibus JSON simpliciter thesaurizare - hoc nobis praebet ambitum valde flexibilem ad notitias dilatandas. exemplar et cito iterans - sic in hoc casu, NoSQL etiam potior et lectior erit. Exemplum viscus (ab uno inceptis meis ubi NoSQL erat rectum ubi opus erat).

{"en_wikipedia_url":"https://en.wikipedia.org/wiki/Johnny_Cash",
"ru_wikipedia_url":"https://ru.wikipedia.org/wiki/?curid=301643",
"ru_wiki_pagecount":149616,
"entity":[42775,"Джонни Кэш","ru"],
"en_wiki_pagecount":2338861}

Potes legere plus hic de NoSQL.

Quid studere?

Hic potius tantum opus est ut tuum negotium perspicias, quae proprietates habeat et quae systemata NoSQL in promptu sint, quae huic descriptioni accommodare debeant - ac deinde hoc systema explorare incipias.

Scripta Query Linguae

Primo, videtur, quid Python in genere cum eo habeat - lingua programmandi est, et omnino non de queriis.

Notae datae Scientist: Privata Review of Data Query Linguae

  • Pandas proprie est Exercitus Helveticus cultellus Datae Scientiae, ingens copia notitiarum transmutationis, aggregationis, etc.
  • Numpy - vector calculi, matrices et algebrae lineares ibi.
  • Scipy - multum mathematica est in hac sarcina, praesertim stats.
  • Iuppiter lab - multum analyseos exploratoriae in laptops bene convenit - ad cognoscendum utile.
  • Petitiones - opus ornatum.
  • Pyspark valde popularis est inter fabrum notitiarum, verisimile debebit cum hoc vel scintilla correspondere, solum propter favorem eorum.
  • *Selenium - perutile ad colligendas notitias ex locis et facultatibus, interdum simpliciter non est alius modus ad notitias acquirendas.

Praecipuum consilium meum: disce Python!

pandas

Sit hoc signum in exemplum sumamus:

import pandas as pd
df = pd.read_csv(“data/dataset.csv”)
# Calculate and rename aggregations
all_together = (df[df[‘trip_type’] == “return”]
    .groupby(['start_station_name','end_station_name'])
                  	    .agg({'trip_duration_seconds': [np.size, np.mean, np.min, np.max]})
                           .rename(columns={'size': 'num_trips', 
           'mean': 'avg_duration_seconds',    
           'amin': min_duration_seconds', 
           ‘amax': 'max_duration_seconds'}))

Essentialiter videmus codicem quadrantem in exemplari SQL classico.

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

Sed magna pars est, hunc codicem esse scriptoris et pipelines partem: imo in Pythone fistulas queries implicamus. In hoc situ, quaestio ex bibliothecis ad nos venit sicut Pandas vel pySpark.

Fere in pySpark similem speciem notitiae transmutationis per quaesita lingua in spiritu videmus:

df.filter(df.trip_type = “return”)
  .groupby(“day”)
  .agg({duration: 'mean'})
  .sort()

Ubi et quid legere

De ipsa Pythone in genere non a forsit invenire materiae ad studium. Ingens numerus tutorials online pandas, pySpark et cursus in scintillam (et etiam per ipsum DS). Super hoc contentum magnum est ad googling, et si mihi unum sarcinam intendunt, pandas utique esset. Quoad iunctura DS+Pythonis materiae quoque lots of.

Testa quaesitum est

Paucae admodum notitiae processus et analyseos quae elaborarunt sunt, re vera scripta testacea quae codicem in Pythone, Java et testa sibi imperare vocant. Quare generatim considerare potes fistulas in bash/zsh/etc sicut quaedam interrogationis altae gradus (potes utique ibi loramenta in materia, sed hoc non est proprium DS codice in linguas testaceis), demus demus. Simplex exemplum - Mihi opus est facere QID tabularum wikidatarum ac plenarum nexuum cum wikis russicis et anglicis, nam hoc scripsi simplex postulatum a mandatis in vernacula et pro output scripseram simplicem scriptam in Pythone, quam ego. confero sic:

pv “data/latest-all.json.gz” | 
unpigz -c  | 
jq --stream $JQ_QUERY | 
python3 scripts/post_process.py "output.csv"

quibus

JQ_QUERY = 'select((.[0][1] == "sitelinks" and (.[0][2]=="enwiki" or .[0][2] =="ruwiki") and .[0][3] =="title") or .[0][1] == "id")' 

Hoc enim totum pipelineum erat, quod tabularum inquisitionem creaverat, ut videmus, omnia in rivo modum operata;

  • pv filepath - talea progressus dat secundum magnitudinem lima et in se continet contenta
  • unpigz -c legi partem archivi et dedit jq
  • jq cum clave - rivo statim effectum produxit et ad postprocessorem (sicut cum primo exemplo) in Pythone transmisit.
  • interne, postprocessor fuit apparatus simplex status, qui formatus est in output 

In summa, implicatio pipelineorum operantium in fluit modo in magna notitia (0.5TB), sine facultatibus significantibus et ex simplici pipelino et duobus instrumentis factis.

Aliud momentum extremum: bene et efficaciter laborare poteris in termino et scribe bash/zsh/etc.

Ubi erit utilis? Etiam fere ubique - rursus multum in interreti studere materias sunt. Praesertim hic haec meo praecedente articulo.

R scripting

Rursum, lector exclamare potest - bene, haec est tota programmandi lingua! Et sane bene erit. Sed plerumque R in tali contextu offendit ut, re vera, linguae quaesitae simillima erat.

R statistical computandis ambitum et linguam computandi et visualizationis statice (secundum hoc).

Notae datae Scientist: Privata Review of Data Query Linguae
capta hic. Viam tibi commendo, materia bona.

Cur notitia scientifica opus est scire R? Saltem, quia ingens stratum est hominum non-IT qui in R. data analysin in R. occurrerunt, in sequentibus locis:

  • Pharmaceutical sector.
  • Biologorum.
  • Oeconomus.
  • Homines cum institutione mere mathematicae quae in stats agunt.
  • Praecipua statistica exemplaria et apparatus doctrinarum exempla (quae saepe solum inveniri possunt in versione auctoris sicut in R sarcina).

Cur lingua vere quaesita est? Forma in qua saepe invenitur, revera rogatur ut exemplar efficiat, inter notitias legendi et ambitum interrogationis (exemplum) parametri, necnon notitia visualis in fasciculis sicut ggplot2 - haec quoque est forma scribendi queries. .

Exemplum queries pro visualisation

ggplot(data = beav, 
       aes(x = id, y = temp, 
           group = activ, color = activ)) +
  geom_line() + 
  geom_point() +
  scale_color_manual(values = c("red", "blue"))

In genere, multae notiones ex R in pythonem sarcinas commigraverunt, ut pandas, numpy vel scipyles, ut vectorizationis notitiae et notae — ita generatim multa in R nota et commoda tibi videbuntur.

Multi sunt fontes studiorum, e.g. haec.

Scientia graphs

Hic expertus sum leviter inusitatum, quod saepius laborare debeo cum graphis et interrogationibus linguarum pro graphis scientia. Quare basica tantum breviter transeamus, quia haec pars paulo plus exotica est.

In databases relativis classicis schema fixum habemus, hic autem schema flexibile est, unumquodque praedicatum actu "columna" est et multo magis.

Finge te hominem fingere et res clavis describere voluisse, exempli gratia, personam peculiarem, Douglas Adams sumamus, et hac in basi utamur.

Notae datae Scientist: Privata Review of Data Query Linguae
www.wikidata.org/wiki/Q42

Si database relativo utebamur, ingentem tabulam vel tabulas cum ingenti columnarum numero creare debebamus, quarum pleraeque nullae essent, vel aliquo defectu falsi pretii repleti, exempli gratia, veri simile est multos ex nobis habere. ingressum in bibliothecam nationalem Coreanam - scilicet, eas per singulas tabulas ponere potuimus, sed hoc tandem conatum esset ad exemplar logicalis circuli flexibile cum praedicatis utentes fixum relativum.

Notae datae Scientist: Privata Review of Data Query Linguae
Ita finge omnia data esse ut graphe vel ut binae et unary locutiones booleanae conditae.

Ubi hoc vel occurrere potes? Uno modo, operando data wikiet cum quibusvis graphis databases vel data connexis.

Investigationes principales sunt linguae quas ego usus et elaboratus sum.

SPARQL

wiki:
SPARQL (recursive Acronym ex Lat. SPARQL Protocollum et RDF Query Linguae) - data interrogatione linguarum, per exemplum RDFEt protocol has petitiones transmittere et eis respondere. SPARQL est commendaticiis W3C Consortium et unus technologiae semantic web.

Sed revera lingua quaesita est pro praedicatis logicalibus et binariis praedicatis. Simpliciter sub condicione distinguis quod in expressione Booleana fixum est et quod non est (simplicius).

RDF (Descriptio Resource Framework) basis ipsa, super qua SPARQL queries efficiuntur, triplex est. object, predicate, subject - et quaesitio triplis requisitis eligit secundum restrictiones determinatas in spiritu: invenias talem X talem esse p_55(X, q_33), ubi utique p_55 est quaedam relatio cum ID 55, et q_33 est an. object with ID 33 (hic et totam, iterum omissis singulis).

Exemplum datae praesentationis:

Notae datae Scientist: Privata Review of Data Query Linguae
Imagines et exempla hic cum regionibus hic.

Basic Query Exemplum

Notae datae Scientist: Privata Review of Data Query Linguae

Re vera invenire volumus valorem regionis variabilis talis ut pro praedicato
membrum_of, verum est membrum illius regionis, q458 et q458 est ID Unionis Europaeae.

Exemplum cuiusdam SPARQL interrogationis intra pythonis machinam:

Notae datae Scientist: Privata Review of Data Query Linguae

Typice habui SPARQL legere potius quam scribere - in eo situ, verisimile erit peritia utilis ad linguam intelligendam saltem in gradu fundamentali ad accurate intelligendum quomodo notitia recepta est. 

Multum est materia studiorum online: exempli gratia, hic haec и haec. Consilia et exempla specifica Google soleo et hoc satis nunc est.

Investigatio logica linguarum

Plura legere potes in articulo meo hic. Hic autem breviter tantum examinabimus cur logicae linguae aptae sint ad quaestiones scribendas. Essentialiter, RDF est iustus propositiones logicae formae p(X) et h(X, Y), et quaestio logica hanc formam habet:

output(X) :- country(X), member_of(X,“EU”).

Loquimur hic de novo praedicato output / 1 (/1 significat unary creando), dummodo pro X verum sit terra illa (X) - i.e., X terra esse et membrum quoque (X"EU).

Hoc in casu, tam notitiae quam regulae eodem modo sistuntur, quod nos perfacile ac facillime problemata fingere sinit.

Ubi industriam convenistis?Totum magnum consilium cum societas quae in tali sermone queries scribit, tum in nucleo systematis hodierni - videtur hoc esse rem potius exoticam, sed interdum evenire.

Exemplum codicis fragmenti in lingua logica processus wikidata:

Notae datae Scientist: Privata Review of Data Query Linguae

Materias: hic duos nexus dabo programmandi logicae modernae linguae Answer Pone Programming - studeo commendare:

Notae datae Scientist: Privata Review of Data Query Linguae

Source: www.habr.com

Add a comment