Mar a chuireas tu stad air a bhith a’ dèanamh an aon rud

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.

Mar a chuireas tu stad air a bhith a’ dèanamh an aon rud

À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:

  1. Lorg clasaichean anns a’ chòd stòr air a bheil uallach airson fèin-chrìochnachadh
  2. Ath-stiùirich iad gu bhith ag obair le meata-dàta bhon taobh a-muigh agus tarraing fiosrachadh mu cheanglaichean às an sin
  3. ??????
  4. 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 tiomnadh lorg an clas SQLCompletionAnalyzer. Thug mi sùil air a’ chòd agus is e sin a tha a dhìth orm. Chan eil air fhàgail ach ath-sgrìobhadh gus am bi a h-uile càil ag obair. Dh'fheitheamh mi airson feasgar an-asgaidh agus thòisich mi a 'smaoineachadh air a' bhuileachadh. Cho-dhùin mi riaghailtean ceangail clàr (meata-dàta) a sgrìobhadh ann an json. Cha robh eòlas practaigeach sam bith agam ag obair leis a’ chruth seo agus bha an obair làithreach air fhaicinn mar chothrom an dearmad seo a cheartachadh.

Gus obrachadh le json chuir mi romham an leabharlann a chleachdadh json-sìmplidh bho Google. Seo far an do thòisich na h-iongnadh. Mar a thionndaidh e, chaidh dbeaver, mar fhìor thagradh, a sgrìobhadh air àrd-ùrlar Eclipse a’ cleachdadh frèam OSGi. Do luchd-leasachaidh eòlach, tha an rud seo ga dhèanamh goireasach a bhith a’ riaghladh eisimeileachd, ach dhòmhsa bha e nas coltaiche ri draoidheachd dhorcha, agus tha e soilleir nach robh mi deiseil airson: mar as àbhaist, bidh mi a’ toirt a-steach na clasaichean a dh’ fheumas mi bhon leabharlann json-simplidh ann am bann-cinn na an clas deasaichte, sònraich e san pom.xml, às deidh sin bidh am pròiseact gu gnèitheach a’ diùltadh cruinneachadh gu h-àbhaisteach agus a’ tuiteam le mearachdan.

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 rinn atharrachaidhean a-steach do na clasaichean SQLUtils agus SQLCompletionAnalyzer. Is e seo am beachd: mura b’ urrainn don phrògram molaidhean fèin-choileanta iomchaidh a lorg a ’cleachdadh an loidsig bhunasach, an uairsin bidh e a’ dèanamh cinnteach gu bheil ceanglaichean comasach ann a ’cleachdadh faidhle xml taobh a-muigh. Bidh am faidhle fhèin a’ stòradh paidhrichean chlàran a’ sealltainn nan raointean leis am feum na clàran sin a bhith ceangailte. Tha cuingealachaidhean air cinn-latha dligheachd teignigeach chlàran eff_dttm agus exp_dttm agus a’ bhratach sguabaidh às loidsigeach deleted_ind air an suidheachadh gu bunaiteach.

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

Cuir beachd ann