Skip to content

Instantly share code, notes, and snippets.

View mrsimpson's full-sized avatar

Oliver Jägle mrsimpson

  • DB Systel GmbH
  • Lorsch, Germany
View GitHub Profile
@mrsimpson
mrsimpson / motivation.md
Last active May 23, 2024 12:46
Warum Flink

Apache Flink

Apache Flink ist eine Open-Source-Stream-Processing-Engine, die für verteilte, hochparallele und fehlertolerante Datenströme entwickelt wurde. Es ermöglicht die Verarbeitung von kontinuierlichen Datenströmen in Echtzeit.

Integration mit Apache Kafka

Apache Flink integriert sich nahtlos mit Apache Kafka, dem de-facto-Standard für Datenströme:

  • Flink kann Kafka-Topics als Datenquellen nutzen und Ergebnisse in Kafka-Topics schreiben[1][4]
  • Flink unterstützt die exakt-einmalige Verarbeitung von Ereignissen, selbst bei Systemausfällen[4]
@mrsimpson
mrsimpson / BroadcastStreamDemoJob.java
Created January 10, 2024 09:45
Broadcasting in Flink
package de.fermata.flink.app;
import java.time.Instant;
import java.util.Random;
import java.util.stream.StreamSupport;
import org.apache.flink.api.common.state.BroadcastState;
import org.apache.flink.api.common.state.MapStateDescriptor;
import org.apache.flink.api.common.state.ReadOnlyBroadcastState;
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.configuration.Configuration;
@mrsimpson
mrsimpson / EventSortJob.java
Created January 10, 2024 09:43
Flink sorting with windows
package de.fermata.flink.app;
import java.time.Duration;
import java.util.stream.StreamSupport;
import org.apache.flink.api.common.eventtime.*;
import org.apache.flink.streaming.api.datastream.SingleOutputStreamOperator;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.streaming.api.functions.sink.PrintSinkFunction;
import org.apache.flink.streaming.api.functions.windowing.ProcessWindowFunction;
import org.apache.flink.streaming.api.windowing.assigners.TumblingProcessingTimeWindows;
@mrsimpson
mrsimpson / BufferedSorter.java
Last active November 28, 2023 14:37
Buffered sorter for a window in Flink
import java.sql.Timestamp;
import java.util.Comparator;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;
import org.apache.flink.api.common.state.ListState;
import org.apache.flink.api.common.state.ListStateDescriptor;
import org.apache.flink.api.common.typeinfo.TypeInformation;
import org.apache.flink.configuration.Configuration;
@mrsimpson
mrsimpson / ControllableSourceFunction.java
Last active August 28, 2023 07:45
Controllable Source Function for Flink integration testing testing a complete pipeline
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.CountDownLatch;
import org.apache.flink.streaming.api.functions.source.RichParallelSourceFunction;
import org.apache.flink.streaming.api.watermark.Watermark;
/**
@mrsimpson
mrsimpson / Readme.md
Last active April 28, 2023 20:48
Containerized Kafka with UI

Yet another Kafka compose

This Gist bundles a Kafka with useful tools and a UI to maintain it.

CAUTION Kafka is very picky about non-cleaned-up state. Thus, when stopping it, remove the volumes

docker compose down --volumes
@mrsimpson
mrsimpson / map.geojson
Last active July 22, 2021 12:48
All German cities with multiple borders (multi polygons)
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@mrsimpson
mrsimpson / copyToBrowserTerminal.js
Created March 17, 2021 22:23
Mass creation of Rocket.Chat users
function generatePassword() {
const groups = ["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",
"0123456789",
"!§$%&/()=?*+-"];
return [12, 2, 1]
.map(function (len, i) {
return Array(len)
.fill(groups[i]).map(function (x) {
return x[Math.floor(Math.random() * x.length)]
@mrsimpson
mrsimpson / CI-CD-pipeline.yml
Last active March 9, 2020 20:13
Non-SAP ABAP tooling
name: CI/CD
on:
push:
paths-ignore:
- '**.md'
jobs:
test:
runs-on: ubuntu-latest
@mrsimpson
mrsimpson / script.md
Last active March 1, 2020 20:00
Setting up OpenFaaS - commands