An toil leat obair àbhaisteach a dhèanamh a-rithist agus a-rithist? Mar sin chan eil mi. Ach a h-uile turas anns an neach-dèiligidh SQL nuair a bha mi ag obair le stòradh Rostelecom, bha agam ri na ceanglaichean eadar na bùird a chlàradh le làimh. Agus seo a dh’ aindeoin gu robh ann an 90% de chùisean gu robh na raointean agus na cumhaichean airson a dhol còmhla ri bùird aig an aon àm bho iarrtas gu iarrtas! Bhiodh e coltach gu bheil gnìomhan fèin-chrìochnachaidh aig neach-dèiligidh SQL sam bith, ach airson stòradh chan eil e an-còmhnaidh ag obair: is ann ainneamh a bhios iad a’ toirt a-steach cuingealachadh sònraichte agus iuchair chèin gus coileanadh a leasachadh, agus às aonais seo cha bhi fios aig a’ phrògram mar a tha buidhnean co-cheangailte ri gach fear. eile agus dè as urrainn dha a dhèanamh dhut a thabhann.
Às deidh dhomh a dhol tro àicheadh, fearg, barganachadh, trom-inntinn agus a’ tighinn faisg air gabhail ris, cho-dhùin mi - carson nach feuch thu ri fèin-lìonadh le blackjack mi fhìn a chuir an gnìomh agus a dhèanamh san dòigh cheart? Bidh mi a’ cleachdadh an neach-dèiligidh dbeaver, sgrìobhte ann an java, tha dreach coimhearsnachd stòr fosgailte aige. Tha plana sìmplidh air tighinn gu ìre:
- Lorg clasaichean anns a’ chòd stòr air a bheil uallach airson fèin-chrìochnachadh
- Ath-stiùirich iad gu bhith ag obair le meata-dàta bhon taobh a-muigh agus tarraing fiosrachadh mu cheanglaichean às an sin
- ??????
- Oirthir & Muir
Dh’ obraich mi a-mach a’ chiad phuing gu math luath - lorg mi iarrtas anns an rianadair bug gus an lìonadh fèin-ghluasadach atharrachadh agus anns an stuth co-cheangailte
Gus obrachadh le json chuir mi romham an leabharlann a chleachdadh
Aig a’ cheann thall, chaidh agam air na mearachdan togail a chàradh: chlàraich mi an leabharlann chan ann ann am pom.xml, ach anns an manifest.mf manifest, mar a dh’ fheumar le OSGI, fhad ’s a bha mi ga shònrachadh mar phasgan in-mhalairt. Chan e am fuasgladh as brèagha, ach tha e ag obair. An uairsin nochd an ath iongnadh. Ma tha thu a’ leasachadh ann an Intellij Idea, chan urrainn dhut dìreach a dhol agus tòiseachadh air do phròiseact a dhì-bhugachadh stèidhichte air an àrd-ùrlar eclipse: cha bu chòir do leasaiche gun eòlas fulang nas lugha na anailisiche gun cheist a chrìochnachadh. Thàinig an luchd-leasachaidh bìobhair fhèin gu teasairginn, a 'nochdadh anns an uicidh a h-uile dannsa le tambourine a dh'fheumar a dhèanamh. Is e an rud as annasaiche, eadhon às deidh na squats sin, nach robh am pròiseact airson a bhith air a chuir air bhog ann an deasbaid leis an leabharlann json ceangailte tro phasgan in-mhalairt (a dh’ aindeoin gun deach a chruinneachadh gu soirbheachail anns an toradh chrìochnaichte).
Mun àm sin, bha mi mu thràth air faighinn a-mach mì-ghoireasachd cleachdadh json airson mo ghnìomh - às deidh a h-uile càil, bha còir gum biodh am meata-dàta air a dheasachadh le làimh, agus tha an cruth xml nas freagarraiche airson seo. B 'e an dàrna argamaid airson xml làthaireachd a h-uile clas riatanach anns an JDK, a thug air stad a bhith a' sabaid le leabharlann a-muigh. Le toileachas mòr, ghluais mi a h-uile meata-dàta bho json gu xml agus thòisich mi a’ deasachadh an loidsig fèin-choileanta.
Eisimpleir metadata
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<tableRelations>
<tableRelation>
<leftTable>dim_account</leftTable>
<rightTable>dim_partner</rightTable>
<joinColumnPair leftColumn="partner_key" rightColumn="partner_key"/>
<joinColumnPair leftColumn="src_id" rightColumn="src_id"/>
</tableRelation>
<tableRelation>
<leftTable>dim_account</leftTable>
<rightTable>dim_branch</rightTable>
<joinColumnPair leftColumn="src_id" rightColumn="src_id"/>
<joinColumnPair leftColumn="branch_key" rightColumn="branch_key"/>
</tableRelation>
</tableRelations>
Mar thoradh air an sin tha mi
Nuair a chaidh atharrachadh a dhèanamh air a’ chòd, dh’èirich a’ cheist - cò a lìonas am faidhle le meata-dàta? Tha tòrr bhuidhnean anns an ionad-tasgaidh, tha e daor na ceanglaichean gu lèir a chlàradh thu fhèin. Mar thoradh air an sin, chuir mi romham an obair seo a shònrachadh dha mo cho-luchd-anailis. Chuir mi am faidhle meata-dàta ann an svn, às an tèid àite-pàighidh a dhèanamh don eòlaire ionadail leis a’ phrògram. Is e seo am prionnsapal: a bheil eintiteas ùr air nochdadh anns an stòr? Bidh aon neach-anailis a’ tighinn a-steach a dh’ fhaodadh a dhol a-steach don fhaidhle, a’ dèanamh atharrachaidhean, bidh an còrr a’ sgrùdadh dhaibh fhèin agus a’ faighinn tlachd às an obair fèin-chrìochnachadh: coimhearsnachd, cruinneachadh eòlais agus a h-uile càil a tha sin. Stiùir e bùth-obrach air cleachdadh a 'phrògraim airson co-obraichean, sgrìobh artaigil ann an Confluence - a-nis tha inneal eile aig a' chompanaidh.
Le bhith ag obair air an fheart seo thug mi an tuigse nach fheum eagal a bhith ort a bhith a’ tinker le pròiseactan stòr fosgailte - mar riaghailt, tha ailtireachd soilleir aca, agus bidh eadhon eòlas bunaiteach air a’ chànan gu leòr airson deuchainnean. Agus le beagan seasmhachd, bidh e comasach dhut eadhon faighinn cuidhteas gnìomhachd àbhaisteach gràin, a ’sàbhaladh ùine dhut fhèin airson deuchainnean ùra.
Source: www.habr.com