The data science/analytics/engineering landscape is getting more heterogeneous each day. Apache Arrow provides a common ground for all the tools in this space to interact with each other.
Presentation is in German.
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Free Movement of Data with Apache Arrow – data2day 2018
1. Free Movement of Data with
Apache Arrow
Uwe L. Korn
data2day
26.09.2018
1
2. • Data Scientist/Engineer bei
Blue Yonder (@BlueYonderTech)
• Apache {Arrow, Parquet} PMC
• Arbeite in Python, C++11 und
SQL
• Twitter: @xhochy
• Mail: uwe@apache.org
About me
2
4. JVM Python / Native
4
Big Data trifft Data Science
trifft Serialisierung
5. Warum: Data Pipelines!
5
• Daten sind nicht Teil einer Anwendung
• Verschiedene Nutzung von Reporting über User
Interaktion zu Data Science
• enorme, inhomogene Landschaft an Tools
• Performance ist kritisch auf Grund der Größe
6. Generelles Problem
6
• Gute Interoperalität innerhalb eines Ökosystems
• Oft basierend auf einem gemeinsamen Backend (z.B. NumPy)
• Schlechte Integration zu anderen Systems
• CSV ist oft die einzige Lösung
• „Wir müssen reden!“
• Kopie im RAM is ca. 10GiB/s
• (De-)serialiserung kommt oben drauf
12. Apache Arrow
12
• spaltenbasiertes Speichermodell
• kein Overhead zwischen Systemen
• Ausgelegt für moderne SIMD Prozessoren und GPUs
• Verfügbar in: C, C++, Ruby, Go, Rust, Java, Python,
JavaScript, Julia, R, Matlab, Lua.
• Offener Standard
13. Apache Arrow: Detail
13
• Beispiel String Array
• 2 Varianten:
• Plain: valid bitmap / offsets / values
• Dictionary Encoding:
• Alle vorkommenden Werte als Plain
• Index Array für Mapping auf Werte
14. Apache Arrow: Beispiel 1
Datenabzug aus DB
14
• Datenbanken sind auf kleine Ergebnisse ausgerichtet
(selbst bei großen Eingabedaten)
• Machine Learning erfordert granulare Daten
• CSV Export ist immer vorhanden und schnell
• Stattdessen:
• Turbodbc für schnelle Anbindung
• Arrow als Datenformat auf dem Weg
DB -> C++ -> Python / Pandas
15. Apache Arrow: Beispiel 2
PySpark
15
• 1 Millionen Integer von Spark nach PySpark
• 8 MiB Daten (sehr wenig!)
• Bis jetzt: 2.57s
• Mit Arrow (@pandas_udf): 0.05s
18. Blue Yonder GmbH
Ohiostraße 8
76149 Karlsruhe
Germany
+49 721 383117 0
Blue Yonder Software Limited
19 Eastbourne Terrace
London, W2 6LG
United Kingdom
+44 20 3626 0360
Blue Yonder
Best decisions,
delivered daily
Blue Yonder Analytics, Inc.
5048 Tennyson Parkway
Suite 250
Plano, Texas 75024
USA
18