Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Data engineering

From Wikipedia, the free encyclopedia
Software engineering approach to designing and developing information systems
Not to be confused withInformation Engineering.

This article is part ofa series on
Engineering
Computer engineering icon

Data engineering is asoftware engineering approach to the building ofdata systems, to enable the collection and usage ofdata. This data is usually used to enable subsequentanalysis anddata science, which often involvesmachine learning.[1][2] Making the data usable usually involves substantialcomputing andstorage, as well asdata processing.

History

[edit]

Around the 1970s/1980s the terminformation engineering methodology (IEM) was created to describedatabase design and the use ofsoftware for data analysis and processing.[3] These techniques were intended to be used bydatabase administrators (DBAs) and bysystems analysts based upon an understanding of the operational processing needs of organizations for the 1980s. In particular, these techniques were meant to help bridge the gap between strategic business planning and information systems. A key early contributor (often called the "father" of information engineering methodology) was the AustralianClive Finkelstein, who wrote several articles about it between 1976 and 1980, and also co-authored an influentialSavant Institute report on it with James Martin.[4][5][6] Over the next few years, Finkelstein continued work in a more business-driven direction, which was intended to address a rapidly changing business environment; Martin continued work in a more data processing-driven direction. From 1983 to 1987, Charles M. Richter, guided by Clive Finkelstein, played a significant role in revamping IEM as well as helping to design the IEM software product (user data), which helped automate IEM.

In the early 2000s, the data and data tooling was generally held by theinformation technology (IT) teams in most companies.[7] Other teams then used data for their work (e.g. reporting), and there was usually little overlap in data skillset between these parts of the business.

In the early 2010s, with the rise of theinternet, the massive increase in data volumes, velocity, and variety led to the termbig data to describe the data itself, and data-driven tech companies likeFacebook andAirbnb started using the phrase data engineer.[3][7] Due to the new scale of the data, major firms likeGoogle, Facebook,Amazon,Apple,Microsoft, andNetflix started to move away from traditionalETL and storage techniques. They started creatingdata engineering, a type ofsoftware engineering focused on data, and in particularinfrastructure,warehousing,data protection,cybersecurity,mining,modelling,processing, andmetadata management.[3][7] This change in approach was particularly focused oncloud computing.[7] Data started to be handled and used by many parts of the business, such assales andmarketing, and not just IT.[7]

Tools

[edit]

Compute

[edit]

High-performance computing is critical for the processing and analysis of data. One particularly widespread approach to computing for data engineering isdataflow programming, in which the computation is represented as adirected graph (dataflow graph); nodes are the operations, and edges represent the flow of data.[8] Popular implementations includeApache Spark, and thedeep learning specificTensorFlow.[8][9][10] More recent implementations, such asDifferential/Timely Dataflow, have usedincremental computing for much more efficient data processing.[8][11][12]

Storage

[edit]

Data is stored in a variety of ways, one of the key deciding factors is in how the data will be used.Data engineers optimize data storage and processing systems to reduce costs. They use data compression, partitioning, and archiving.

Databases

[edit]

If the data is structured and some form ofonline transaction processing is required, thendatabases are generally used.[13] Originally mostlyrelational databases were used, with strongACID transaction correctness guarantees; most relational databases useSQL for their queries. However, with the growth of data in the 2010s,NoSQL databases have also become popular since theyhorizontally scaled more easily than relational databases by giving up the ACID transaction guarantees, as well as reducing theobject-relational impedance mismatch.[14] More recently,NewSQL databases — which attempt to allow horizontal scaling while retaining ACID guarantees — have become popular.[15][16][17][18]

Data warehouses

[edit]
Main article:Data warehouse

If the data is structured andonline analytical processing is required (but not online transaction processing), thendata warehouses are a main choice.[19] They enable data analysis, mining, andartificial intelligence on a much larger scale than databases can allow,[19] and indeed data often flow from databases into data warehouses.[20]Business analysts, data engineers, and data scientists can access data warehouses using tools such as SQL orbusiness intelligence software.[20]

Data lakes

[edit]

Adata lake is a centralized repository for storing, processing, and securing large volumes of data. A data lake can containstructured data fromrelational databases,semi-structured data,unstructured data, andbinary data. A data lake can be created on premises or in a cloud-based environment using the services frompublic cloud vendors such asAmazon,Microsoft, orGoogle.

Files

[edit]

If the data is less structured, then often they are just stored asfiles. There are several options:

Management

[edit]

The number and variety of different data processes and storage locations can become overwhelming for users. This inspired the usage of aworkflow management system (e.g.Airflow) to allow the data tasks to be specified, created, and monitored.[23] The tasks are often specified as adirected acyclic graph (DAG).[23]

Lifecycle

[edit]

Business planning

[edit]

Business objectives that executives set for what's to come are characterized in key business plans, with their more noteworthy definition in tactical business plans and implementation in operational business plans. Most businesses today recognize the fundamental need to grow a business plan that follows this strategy. It is often difficult to implement these plans because of the lack of transparency at the tactical and operational degrees of organizations. This kind of planning requires feedback to allow for early correction of problems that are due to miscommunication and misinterpretation of the business plan.

Systems design

[edit]

The design of data systems involves several components such as architecting data platforms, and designing data stores.[24][25]

Data modeling

[edit]
Main article:Data modelling

Data modeling is the analysis and representation of data requirements for an organisation. It produces a data model—an abstract representation that organises business concepts and the relationships and constraints between them. The resulting artefacts guide communication between business and technical stakeholders and inform database design.[26][27]

A common convention distinguishes three levels of models:[26]

  • Conceptual model – a technology-independent view of the key business concepts and rules.
  • Logical model – a detailed representation in a chosen paradigm (most commonly the relational model) specifying entities, attributes, keys, and integrity constraints.[27]
  • Physical model – an implementation-oriented design describing tables, indexes, partitioning, and other operational considerations.[27]

Approaches include entity–relationship (ER) modeling for operational systems,[28] dimensional modeling for analytics and data warehousing,[29] and the use of UML class diagrams to express conceptual or logical models in general-purpose modeling tools.[30]

Well-formed data models aim to improve data quality and interoperability by applying clear naming standards, normalisation, and integrity constraints.[27][26]

Roles

[edit]

Data engineer

[edit]

A data engineer is a type of software engineer who createsbig dataETL pipelines to manage the flow of data through the organization. This makes it possible to take huge amounts of data and translate it intoinsights.[31] They are focused on the production readiness of data and things like formats, resilience, scaling, and security. Data engineers usually hail from a software engineering background and are proficient in programming languages likeJava,Python,Scala, andRust.[32][3] They will be more familiar with databases, architecture, cloud computing, andAgile software development.[3]

Data scientist

[edit]
Main article:Data science

Data scientists are more focused on the analysis of the data, they will be more familiar withmathematics,algorithms,statistics, andmachine learning.[3][33]

See also

[edit]

References

[edit]
  1. ^"What is Data Engineering? | A Quick Glance of Data Engineering".EDUCBA. January 5, 2020. RetrievedJuly 31, 2022.
  2. ^"Introduction to Data Engineering".Dremio. RetrievedJuly 31, 2022.
  3. ^abcdefBlack, Nathan (January 15, 2020)."What is Data Engineering and Why Is It So Important?".QuantHub. RetrievedJuly 31, 2022.
  4. ^"Information engineering,"part 3,part 4,part 5,Part 6" by Clive Finkelstein. InComputerworld, In depths, appendix. May 25 – June 15, 1981.
  5. ^Christopher Allen, Simon Chatwin, Catherine Creary (2003).Introduction to Relational Databases and SQL Programming.
  6. ^Terry Halpin,Tony Morgan (2010).Information Modeling and Relational Databases. p. 343
  7. ^abcdeDodds, Eric."The History of the Data Engineering and the Megatrends".Rudderstack. RetrievedJuly 31, 2022.
  8. ^abcSchwarzkopf, Malte (March 7, 2020)."The Remarkable Utility of Dataflow Computing".ACM SIGOPS. RetrievedJuly 31, 2022.
  9. ^"sparkpaper"(PDF). RetrievedJuly 31, 2022.
  10. ^Abadi, Martin; Barham, Paul; Chen, Jianmin; Chen, Zhifeng; Davis, Andy; Dean, Jeffrey; Devin, Matthieu; Ghemawat, Sanjay; Irving, Geoffrey; Isard, Michael; Kudlur, Manjunath; Levenberg, Josh; Monga, Rajat; Moore, Sherry; Murray, Derek G.; Steiner, Benoit; Tucker, Paul; Vasudevan, Vijay; Warden, Pete; Wicke, Martin; Yu, Yuan; Zheng, Xiaoqiang (2016)."TensorFlow: A system for large-scale machine learning".12th USENIX Symposium on Operating Systems Design and Implementation (OSDI 16). pp. 265–283. RetrievedJuly 31, 2022.
  11. ^McSherry, Frank; Murray, Derek; Isaacs, Rebecca; Isard, Michael (January 5, 2013)."Differential dataflow".Microsoft. RetrievedJuly 31, 2022.
  12. ^"Differential Dataflow". Timely Dataflow. July 30, 2022. RetrievedJuly 31, 2022.
  13. ^"Lecture Notes | Database Systems | Electrical Engineering and Computer Science | MIT OpenCourseWare".ocw.mit.edu. RetrievedJuly 31, 2022.
  14. ^Leavitt, Neal (February 2010). "Will NoSQL Databases Live Up to Their Promise?".Computer.43 (2):12–14.doi:10.1109/MC.2010.58.
  15. ^Aslett, Matthew (2011)."How Will The Database Incumbents Respond To NoSQL And NewSQL?"(PDF). 451 Group (published April 4, 2011). RetrievedFebruary 22, 2020.
  16. ^Pavlo, Andrew; Aslett, Matthew (2016)."What's Really New with NewSQL?"(PDF).SIGMOD Record. RetrievedFebruary 22, 2020.
  17. ^Stonebraker, Michael (June 16, 2011)."NewSQL: An Alternative to NoSQL and Old SQL for New OLTP Apps". Communications of the ACM Blog. RetrievedFebruary 22, 2020.
  18. ^Hoff, Todd (September 24, 2012)."Google Spanner's Most Surprising Revelation: NoSQL is Out and NewSQL is In". RetrievedFebruary 22, 2020.
  19. ^ab"What is a Data Warehouse?".www.ibm.com. RetrievedJuly 31, 2022.
  20. ^ab"What is a Data Warehouse? | Key Concepts | Amazon Web Services".Amazon Web Services, Inc. RetrievedJuly 31, 2022.
  21. ^abc"File storage, block storage, or object storage?".www.redhat.com. RetrievedJuly 31, 2022.
  22. ^"Cloud Object Storage – Amazon S3 – Amazon Web Services".Amazon Web Services, Inc. RetrievedJuly 31, 2022.
  23. ^ab"Home".Apache Airflow. RetrievedJuly 31, 2022.
  24. ^"Introduction to Data Engineering".Coursera. RetrievedJuly 31, 2022.
  25. ^Finkelstein, Clive.What are The Phases of Information Engineering.
  26. ^abcSimsion, Graeme; Witt, Graham (2015).Data Modeling Essentials (4th ed.). Morgan Kaufmann.ISBN 9780128002025.
  27. ^abcdDate, C. J. (2004).An Introduction to Database Systems (8th ed.). Addison-Wesley.ISBN 9780321197849.
  28. ^Chen, Peter P. (1976). "The Entity–Relationship Model—Toward a Unified View of Data".ACM Transactions on Database Systems.1 (1):9–36.doi:10.1145/320434.320440.
  29. ^Kimball, Ralph; Ross, Margy (2013).The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling (3rd ed.). Wiley.ISBN 9781118530801.
  30. ^Unified Modeling Language (UML) Version 2.5.1 (Report). Object Management Group. 2017.
  31. ^Tamir, Mike; Miller, Steven; Gagliardi, Alessandro (December 11, 2015). The Data Engineer (Report).SSRN 2762013.
  32. ^"Data Engineer vs. Data Scientist".Springboard Blog. February 7, 2019. RetrievedMarch 14, 2021.
  33. ^"What is Data Science and Why it's Important". Edureka. January 5, 2017.

Further reading

[edit]
  • 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 andClive 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.

External links

[edit]
Wikimedia Commons has media related toInformation Engineering.


Specialties
and
interdisciplinarity
Civil
Mechanical
Electrical
Chemical
Materials
Computer
Engineering education
Related topics
Glossaries
Other
Retrieved from "https://en.wikipedia.org/w/index.php?title=Data_engineering&oldid=1335993344"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp