Digitala Vetenskapliga Arkivet

Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
Investigating a Point-in-time Correct Join Algorithm for Batch in Apache Flink: Investigation of an efficient variant of Sort-Merge Join for time series data
KTH, School of Electrical Engineering and Computer Science (EECS).
2025 (English)Independent thesis Advanced level (degree of Master (Two Years)), 20 credits / 30 HE creditsStudent thesisAlternative title
Undersökning av en tidpunktskorrekt ihopsättning för Batch i Apache Flink : Undersökning av en effektiv variant av Sort-Merge Join för historisk data (Swedish)
Abstract [en]

In many data processing systems it is common to want to combine historical data at some point in time together with the decision made for that data at that time. In the case of feature stores, it is used to generate training data sets based on historical user behavior and the previous decisions made by the machine learning engine. In many other cases it is also common to want to make a time series data combination between two sets. There are two important aspects to this join, we cannot combine a label with future data, i.e.: temporal correctness must be respected, and this join is usually done on big data sets where performance and memory efficiency have high value. Many feature store solutions exist, and many types of data processing engines exist, but there is no industry standard agreement on how to perform this specific type of time series join. This thesis explores a version of the point-in-time correct join algorithm that is based on the Sort-Merge Join algorithm used by many data processing engines when performing some SQL specified join. The point-in- time correct join can be done in SQL via union or via a left join, but it leads to intermediate data or many passes over the entire dataset. A modification of Sort-Merge Join which is dubbed Early Stop Sort-Merge can perform a type of left join which avoids generating extra rows by stopping early. We base our research on previous work which explores the same conceptual algorithm for Apache Spark, but Apache Flink has a different runtime engine with a different way to utilize memory, and it is stateful. The results indicates that the Early Stop Sort-Merge performs better overall except for a few specific cases, and it also avoids unnecessary intermediate data which reduces memory footprint.

Abstract [sv]

I många databehandlingssystem är det vanligt att man någon gång vill kombinera historisk data tillsammans med det beslut som fattats för den datan vid den tidpunkten. När det gäller funktionsbutiker används den för att generera träningsdatauppsättningar baserat på historiskt användarbeteende och de tidigare beslut som tagits av maskininlärningsmotorn. I många andra fall är det också vanligt att man vill göra en tidsseriedatakombination mellan två uppsättningar. Det finns två viktiga aspekter på denna join, vi kan inte kombinera en etikett från en maskininlärning med framtida data, dvs: temporal korrekthet måste respekteras, och denna join görs vanligtvis på stora datamängder där prestanda och minneseffektivitet har högt värde. Det finns många funktionsbutikslösningar och många typer av databehandlingsmotorer finns, men det finns ingen branschstandardöverenskommelse om hur man utför denna specifika typ av tidsseriekoppling. Det här examensarbetet utforskar en version av algoritmen för den korrekta tidpunkten som är baserad på Sort- Merge Join-algoritmen som används av många databehandlingsmotorer när de utför någon SQL-specificerad join. Tidpunktens korrekta join kan göras i SQL via union eller via en left join, men det leder till mellanliggande data eller många pass över hela datasetet. En modifiering av Sort-Merge Join som kallas Early Stop Sort-Merge kan utföra en typ av vänster-join som undviker att generera extra rader genom att stoppa tidigt. Vi baserar vår forskning på tidigare arbete som utforskar samma konceptuella algoritm för Apache Spark, men Apache Flink har en annan runtime-motor med olika sätt att utnyttja minnet, och den är tillståndsfull. Resultaten indikerar att Early Stop Sort-Merge presterar bättre överlag med undantag för några få specifika fall, och den undviker också onödiga mellanliggande data vilket minskar minnesfotavtrycket.

Place, publisher, year, edition, pages
2025. , p. 39
Series
TRITA-EECS-EX ; 2025:84
Keywords [en]
Apache Flink, SQL, SQL graphs, Graph Query Optimization, Point-in-time Correct Joins, Feature Stores
Keywords [sv]
Apache Flink, SQL, SQL grafer, Frågningsgrafsoptimering, tidpunktskorrekta ihopsättningar, Funktionsbutik
National Category
Computer and Information Sciences
Identifiers
URN: urn:nbn:se:kth:diva-362125OAI: oai:DiVA.org:kth-362125DiVA, id: diva2:1950576
Supervisors
Examiners
Available from: 2025-04-24 Created: 2025-04-08 Last updated: 2025-04-24Bibliographically approved

Open Access in DiVA

fulltext(982 kB)14 downloads
File information
File name FULLTEXT02.pdfFile size 982 kBChecksum SHA-512
c8b47ed84072b75bfbf60b0fb58b1708687f0dfd3192929ea04b56b37b8aec7d6f0015f97630e8941f2e14a847a970e4bdbd993d5ee2efeec4ef84938424de85
Type fulltextMimetype application/pdf

By organisation
School of Electrical Engineering and Computer Science (EECS)
Computer and Information Sciences

Search outside of DiVA

GoogleGoogle Scholar
Total: 14 downloads
The number of downloads is the sum of all downloads of full texts. It may include eg previous versions that are now no longer available

urn-nbn

Altmetric score

urn-nbn
Total: 183 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf