Inxhinieria e të dhënave

Inxhinieria e të dhënave është një qasje e inxhinierisë softuerike për ndërtimin e sistemeve të të dhënave, për të mundësuar mbledhjen dhe përdorimin e data. Këto të dhëna zakonisht përdoren për të mundësuar analizën e mëvonshme dhe shkencën e të dhënave, e cila shpesh përfshin mesimin e makinerive  Bërja e të dhënave të përdorshme zakonisht përfshin llogaritje dhe ruajtje të konsiderueshme, si dhe përpunimin e të dhënave.

 Historia 
Rreth viteve 1970/1980 u krijua termi metodologjia e inxhinierisë së informacionit (IEM) për të përshkruar dizajnin e databazave dhe përdorimin e softuerit për analizën dhe përpunimin e të dhënave. Këto teknika ishin të destinuara të përdoren nga administratorët e databazave (DBA) dhe nga analistët e sistemeve bazuar në një kuptim të nevojave operacionale për përpunim të organizatave për vitet 1980. Në veçanti, këto teknika kishin për qëllim të ndihmonin në mbushjen e urës midis planifikimit strategjik të biznesit dhe sistemeve të informacionit. Një kontribues kyç i hershëm (i quajtur shpesh “baba” i metodologjisë së inxhinierisë së informacionit) ishte australiani Clive Finkelstein, i cili shkroi disa artikuj mbi këtë temë midis viteve 1976 dhe 1980, dhe gjithashtu bashkë-shkroi një raport ndikues të Institutit Savant mbi këtë temë me James Martin. Gjatë disa viteve në vazhdim, Finkelstein vazhdoi punën në një drejtim më të orientuar nga biznesi, i cili kishte për qëllim të adresonte një mjedis biznesi që po ndryshonte shpejt; Martin vazhdoi punën në një drejtim më të përqendruar në përpunimin e të dhënave. Nga viti 1983 deri në 1987, Charles M. Richter, i udhëhequr nga Clive Finkelstein, luajti një rol të rëndësishëm në ristrukturimin e IEM si dhe ndihmoi në dizajnimin e produktit softuerik IEM (të dhënat e përdoruesit), që ndihmoi në automatizimin e IEM.
Në fillim të viteve 2000, të dhënat dhe mjete për përpunimin e të dhënave zakonisht ruheshin nga ekipet e teknologjisë së informacionit (IT) në shumicën e kompanive. Ekipet e tjera më pas përdornin të dhënat për punën e tyre (p.sh. raportim), dhe zakonisht kishte pak përputhshmëri në aftësitë për të punuar me të dhëna midis këtyre pjesëve të biznesit.

Në fillim të viteve 2010, me rritjen e internetit, rritja masive e volumit, shpejtësisë dhe larmisë së të dhënave çoi në përdorimin e termit "big data" për të përshkruar vetë të dhënat, dhe kompanitë teknologjike të bazuara në të dhëna si Facebook dhe Airbnb filluan të përdorin shprehjen inxhinier i të dhënave. Për shkak të shkallës së re të të dhënave, firma të mëdha si Google, Facebook, Amazon, Apple, Microsoft dhe Netflix filluan të largoheshin nga teknikat tradicionale ETL dhe ruajtja e të dhënave. Ata filluan të krijojnë inxhinierinë e të dhënave, një lloj inxhinierie softuerike i përqendruar në të dhëna, dhe në veçanti në infrastrukturë, magazinim, mbrojtje të të dhënave, siguri kibernetike, minimi i të dhënave, modelim, përpunim dhe menaxhim të metadatave. Ky ndryshim në qasje ishte veçanërisht i përqendruar në kompjuterinë cloud. Të dhënat filluan të përpunohen dhe të përdoren nga shumë pjesë të biznesit, si shitjet dhe marketingu, dhe jo vetëm IT-ja.

 Mjetet 

 Llogaritje 
Llogaritja me performancë të lartë është thelbësore për përpunimin dhe analizën e të dhënave. Një qasje veçanërisht e përdorur në llogaritje për inxhinierinë e të dhënave është programimi me rrjedhë të të dhënave, në të cilin llogaritja paraqitet si një grafik i drejtuar (grafiku i rrjedhës së të dhënave); nyjet janë operacionet, dhe lidhjet përfaqësojnë rrjedhën e të dhënave. Implementimet e njohura përfshijnë Apache Spark dhe TensorFlow, specifik për mësim të thellë. Implementime më të fundit, të tilla si Differential/Timely Dataflow, kanë përdorur llogaritje inkrementale për përpunim të të dhënave shumë më efikas.

 Ruajtja 
Të dhënat ruhen në mënyra të ndryshme, një nga faktorët kryesorë vendimtarë është se si do të përdoren të dhënat. Inxhinierët e të dhënave optimizojnë sistemet e ruajtjes dhe përpunimit të të dhënave për të ulur kostot. Ata përdorin kompresimin e të dhënave, ndarjen dhe arkivimin.

 Bazat e të dhënave 
Nëse të dhënat janë të strukturuara dhe kërkohet ndonjë formë e përpunimit të transaksioneve online, atëherë zakonisht përdoren bazat e të dhënave. Në fillim përdroheshin kryesisht bazat e të dhënave relacionale, me garanci të forta për saktësinë e transaksioneve ACID; shumica e bazave të të dhënave relacione përdorin SQL për pyetjet e tyre. Megjithatë, me rritjen e të dhënave në vitet 2010, bazat e të dhënave NoSQL gjithashtu u bënë të njohura, pasi që ato mund të shkallëzoheshin horizontalisht më lehtë se bazat e të dhënave relacionale duke hequr garancitë e transaksioneve ACID, si dhe duke zvogëluar mosmarrëveshjen midis objekteve-relacionale. Së fundmi, bazat e të dhënave NewSQL — të cilat përpiqen të lejojnë shkallëzim horizontal duke ruajtur garancitë ACID — janë bërë të njohura.

 Depozitat e të dhënave 
Artikulli kryesor: Depozita e të dhënave

Nëse të dhënat janë të strukturuara dhe kërkohet përpunim analitik online (por jo përpunim transaksionesh në linjë), atëherë depot e të dhënave janë një zgjedhje kryesore. Ato mundësojnë analizën e të dhënave, minimin dhe inteligjencën artificiale në një shkallë shumë më të madhe sesa mund të lejojnë bazat e të dhënave, dhe madje të dhënat shpesh rrjedhin nga bazat e të dhënave drejt depot e të dhënave.Analistët e biznesit, inxhinierët e të dhënave dhe shkencëtarët e të dhënave mund të aksesojnë depot e të dhënave duke përdorur mjete si SQL ose softuer për inteligjencë të biznesit.

 Liqen të dhënash 
Një liqen të dhënash është një depo e centralizuar për ruajtjen, përpunimin dhe sigurimin e sasisë së madhe të të dhënave. Një liqen të dhënash mund të përmbajë të dhëna të strukturuara nga bazat e të dhënave relacionale, të dhëna gjysmë të strukturuara, të dhëna të pastrukturuara dhe të dhëna binare. Një liqen të dhënash mund të krijohet në ambientet lokale (on-premises) ose në një mjedis të bazuar në cloud duke përdorur shërbimet nga ofrues publikë të cloud-it si Amazon, Microsoft ose Google.

 Skedarët 
Nëse të dhënat janë më pak të strukturuara, atëherë shpesh thjesht ruhen si skedarë. Ka disa opsione:

 Sistemet e skedarëve e paraqesin të dhënat në mënyrë hierarkike në dosje të ndërlidhura (të futura njëra brenda tjetrës).
 Ruajtja me blloqe (Block storage) e ndan të dhënat në copa me madhësi të rregullt; kjo shpesh lidhet me hard disqet (virtuale) ose disqet SSD.
 Ruajtja e objekteve (Object storage) menaxhon të dhënat duke përdorur metadata; shpesh çdo skedar merr një çelës identifikues si një UUID.

 Menaxhimi 
Numri dhe llojet e ndryshme të proceseve të të dhënave dhe vendndodhjeve të ruajtjes mund të bëhen të vështira për përdoruesit. Kjo ka frymëzuar përdorimin e një sistemi menaxhimi të rrjedhave të punës (workflow management system) (p.sh. Airflow) për të lejuar që detyrat e të dhënave të specifikohen, krijohen dhe monitorohen.

Detyrat shpesh specifikohen si një grafik i drejtuar aciklik (Directed Acyclic Graph – DAG).

 Cikli i jetës 

 Planifikimi i biznesit 
Objektivat e biznesit që drejtuesit vendosin për të ardhmen përcaktohen në planet kryesore të biznesit, me një përkufizim më të detajuar në planet taktike të biznesit dhe zbatim në planet operacionale të biznesit. Shumica e bizneseve sot e njohin nevojën thelbësore për të zhvilluar një plan biznesi që ndjek këtë strategji. Shpesh është e vështirë të zbatohen këto plane për shkak të mungesës së transparencës në nivelet taktike dhe operative të organizatave. Ky lloj planifikimi kërkon reagime (feedback) për të mundësuar korrigjimin e hershëm të problemeve që shkaktohen nga keqkomunikimi dhe keqinterpretimi i planit të biznesit.

 Dizajnimi i sistemeve 
Dizajnimi i sistemeve të të dhënave përfshin disa përbërës, si arkitektura e platformave të të dhënave dhe dizajnimi i magazinave të të dhënave (data stores).

 Modelimi i të dhënave 
Artikulli kryesor: Modelimi i të dhënave

Modelimi i të dhënave është analiza dhe paraqitja e kërkesave për të dhëna të një organizate. Ai prodhon një model të të dhënave — një paraqitje abstrakte që organizon konceptet biznesore dhe marrëdhëniet dhe kufizimet mes tyre. Artefaktet që rezultojnë udhëheqin komunikimin mes palëve të interesit biznesore dhe teknike dhe informojnë projektimin e bazës së të dhënave.

Një konventë e zakonshme dallon tre nivele modelesh:

 Modeli konceptual – një pamje e pavarur nga teknologjia e koncepteve dhe rregullave kryesore të biznesit.
 Modeli logjik – një paraqitje e detajuar në një paradigmë të zgjedhur (më së shpeshti modeli relacion) që specifikon entitetet, atributet, çelësat dhe kufizimet e integritetit.
 Modeli fizik – një dizajn i orientuar drejt implementimit që përshkruan tabelat, indekset, ndarjen (partitioning) dhe konsiderata të tjera operative.

Qasjet përfshijnë modelimin entitet–marrëdhënie (ER) për sistemet operacionale, modelimin dimensional për analiza dhe ruajtje të të dhënave (data warehousing),dhe përdorimin e diagrameve të klasave UML për të shprehur modele konceptuale ose logjike në mjete modelimi me përdorim të përgjithshëm.

Modelet e formuara mirë synojnë të përmirësojnë cilësinë dhe ndërveprimin e të dhënave duke aplikuar standarde të qarta emërtimi, normalizim dhe kufizime integriteti.

 Rolet 

 Inxhinieri i të dhënave 
Një inxhinier të dhënash është një lloj inxhinieri softueri që krijon pipeline ETL për big data për të menaxhuar rrjedhën e të dhënave brenda organizatës. Kjo e bën të mundur marrjen e sasisë së madhe të të dhënave dhe shndërrimin e tyre në njohuri të vlefshme. Ata janë të fokusuar në gatishmërinë për prodhim të të dhënave dhe në elemente si formatet, qëndrueshmëria, shkallëzimi dhe siguria. Inxhinierët e të dhënave zakonisht vijnë nga një sfond i inxhinierisë së softuerit dhe janë të aftë në gjuhë programimi si Java, Python, Scala dhe Rust. Ata zakonisht janë më të njohur me bazat e të dhënave, arkitekturën, cloud computing dhe zhvillimin softuerik Agile.

 Shkencëtari i të dhënave (Data scientist) 
Artikulli kryesor: Data science

Shkencëtarët e të dhënave janë më të fokusuar në analizën e të dhënave; ata do të jenë më të njohur me matematikën, algoritmet, statistikat dhe machine learning.

 Shih gjithashtu 

 Të dhëna masive - "Big Data"

 Shkenca kompjuterike
 Teknologji informative
 Lista e softuerëve për shkencën e të dhënave
 Inxhinieri softuerike

 Referime 
Kategoria:Disiplina inxhinierike
Kategoria:Menaxhim i të dhënave
Kategoria:Sisteme të informacionit

 Lexime të mëtejshme 

 Hares, John S. (1992). Information Engineering for the Advanced Practitioner. Wiley. ISBN 978-0-471-92810-2.
 Finkelstein, Clive (1989). An Introduction to Information Engineering: From Strategic Planning to Information Systems. Addison-Wesley. ISBN 978-0-201-41654-1.
 Finkelstein, Clive (1992). Information Engineering: Strategic Systems Development. Addison-Wesley. ISBN 978-0-201-50988-5.
 Ian Macdonald (1986). "Information engineering". in: Information Systems Design Methodologies. T.W. Olle et al. (ed.). North-Holland.
 Ian Macdonald (1988). "Automating the Information engineering methodology with the Information Engineering Facility". In: Computerized Assistance during the Information Systems Life Cycle. T.W. Olle et al. (ed.). North-Holland.
 James Martin and Clive Finkelstein. (1981). Information engineering. Technical Report (2 volumes), Savant Institute, Carnforth, Lancs, UK.
 James Martin (1989). Information engineering. (3 volumes), Prentice-Hall Inc.
 Finkelstein, Clive (2006). Enterprise Architecture for Integration: Rapid Delivery Methods and Technologies. Artech House. ISBN 978-1-58053-713-1.
 Reis, Joe; Housley, Matt (2022). Fundamentals of Data Engineering. O'Reilly Media. ISBN 978-1-0981-0827-4.

 Linke të jashtme 

 Zhvillimi i Shpejtë i Aplikacioneve