0

I need to clarify the keyword "engine" and what functionality stands behind it. I assume engine is a smaller component of a bigger thing - database. Like a 'car engine' is inside a car.

So dwh engine can be plugged into bigger datawarehouse? Olap engine can be used as component of actual olap db?

I found this data landscape image on Medium.com with 2 different categories: olap db and olap engine.

olap_db_vs_olap_engine

What is the difference since they have overlapping functionality?

1
  • 1
    Unfotunately, the differences are manifold and subtle! E.g. DuckDB is an embedded OLAP database/engine, but standard PostgreSQL (row-based storage) can also be an OLAP database - it can also be the database engine behind an OLAP stack (ETL/ELT - PostgreSQL - dataviz/reporting), but it is not embedded - it's its own server. Confused? Take the SQL "standard"! If you want to do a basic SELECT - you're mostly OK - but try DELETE-ing, INSERT-ing or UPDATE-ing using JOINs - good luck. Terminology standardisation has not caught up with technology + throw marketing into the mix :-(
    – Vérace
    Apr 30 at 9:40

1 Answer 1

1

An "engine" is basically just any complicated machine - that is, a mechanical device with moving parts.

It's common nowadays to distinguish between the framework or carriage of a car, and it's engine, because the engine is typically modular and built separately, whereas the carriage and remaining parts are static or have relatively simple mechanical operation.

But it's still common for older rail locomotives, for example, to be called "steam engines", because the entire thing is built physically as an integrated unit - there's no smaller part, as there are on modern diesel locomotives, which is modular and can be regarded as more essentially the engine. So the whole thing is the engine.

So you shouldn't regard "engine" as meaning a component. It means a sophisticated machine - which might be either a part, or the whole thing.

A "database" is a vague and hackneyed term really, and could potentially mean a lot of different things in this context.

"Data storage" is part of what computers are employed to do, generically, although paper is also commonly used for data storage (that is, data storage is not particular to computers). Computers as we typically know them are data processing machines - they are applied to automate essentially what clerks do with paper.

Nowadays electronic data storage is king, because data storage in an electronic form is most convenient for a computer to process that data - compared to feeding cards, or paper tape, or having a cycle between typed input and printed output.

"OLAP" stands for "online analytical processing", and is easier to define against "OLTP" which stands for "online transactional processing".

An OLTP system is one that is typically used interactively to store data about business transactions and events as they occur. It's "online" in the sense it responds in real-time to user control and the data is right up-to-date, in contrast to batch-mode systems and processes which accumulate data before it is made generally available (which is still common for reporting workloads).

OLAP is basically online, real-time for reporting workloads, so that reports are updated relatively quickly (and potentially action taken quickly) based on what is being entered into the OLTP system.

A "data warehouse" is a gathering together of data from other systems, such as from multiple OLTP systems - the term being an analogy with how a factory produces goods then stores them in a warehouse.

Finally, a "database engine" means the part of the database technology which parses instructions given to it and then actually carries out the operations (the queries and modifications) upon the stored data. Typically, the engine operates on its internal storage (that is, the storage which is directly under the control of that engine, and for which it provides transactional consistency etc.), but most mainstream database engines can interface outside their own realm (so as to fetch or store data externally, or so as to be integrated together with other software).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.