HUG France Feb 2016 - Migration de données structurées entre Hadoop et RDBMS par Louis Rabiet...

21
February 16 th 2016 [email protected] Migrating structured data between Hadoop and RDBMS

Transcript of HUG France Feb 2016 - Migration de données structurées entre Hadoop et RDBMS par Louis Rabiet...

Page 1: HUG France Feb 2016 - Migration de données structurées entre Hadoop et RDBMS par Louis Rabiet (Squid Solution)

February 16th 2016 [email protected]

Migrating structured data between Hadoop and RDBMS

Page 2: HUG France Feb 2016 - Migration de données structurées entre Hadoop et RDBMS par Louis Rabiet (Squid Solution)

Who am I?

• Full Stack engineer at Squid Solutions. • Specialised in Big data. • Fun fact: sleeping by myself in my tent on

the top of the highest mountains of the world

Page 3: HUG France Feb 2016 - Migration de données structurées entre Hadoop et RDBMS par Louis Rabiet (Squid Solution)

What I do ?

• Develop of an analytics toolbox.• No setup. No SQL. No compromise.•Generate SQL with a REST API.

It is open source! https://github.com/openbouquet

Page 4: HUG France Feb 2016 - Migration de données structurées entre Hadoop et RDBMS par Louis Rabiet (Squid Solution)

Topic of today

• You need Scalability?• You need a machine learning toolbox? Hadoop is the solution.

•But you still need structured data?Our tool provide a solution.

=> We need both!

Page 5: HUG France Feb 2016 - Migration de données structurées entre Hadoop et RDBMS par Louis Rabiet (Squid Solution)

What does that mean?

•Creation of dataset in Bouquet• Send the dataset to Spark• Enrich inside Spark•Re-injection in original database

Page 6: HUG France Feb 2016 - Migration de données structurées entre Hadoop et RDBMS par Louis Rabiet (Squid Solution)

How we do it?

User input

Relational DB

SparkBouquet

Page 7: HUG France Feb 2016 - Migration de données structurées entre Hadoop et RDBMS par Louis Rabiet (Squid Solution)

Create and Send

Page 8: HUG France Feb 2016 - Migration de données structurées entre Hadoop et RDBMS par Louis Rabiet (Squid Solution)

How does it work?

BouquetRelational DB

Spark

HDFS/ Tachyon

Hive Metastore

User select the data. Bouquet generate the corresponding SQL Code

Kafka

Page 9: HUG France Feb 2016 - Migration de données structurées entre Hadoop et RDBMS par Louis Rabiet (Squid Solution)

How does it work?

BouquetRelational DB

Spark

HDFS/ Tachyon

Hive Metastore

Data is read from the SQL database

Kafka

Page 10: HUG France Feb 2016 - Migration de données structurées entre Hadoop et RDBMS par Louis Rabiet (Squid Solution)

How does it work?

BouquetRelational DB

Spark

HDFS/ Tachyon

Hive Metastore

The BI tool creates an avro schema and send the data to Kafka

Kafka

Page 11: HUG France Feb 2016 - Migration de données structurées entre Hadoop et RDBMS par Louis Rabiet (Squid Solution)

How does it work?

BouquetRelational DB

SparkKafka

HDFS/ Tachyon

Hive Metastore

Kafka Broker(s) receive the data

Page 12: HUG France Feb 2016 - Migration de données structurées entre Hadoop et RDBMS par Louis Rabiet (Squid Solution)

How does it work?

BouquetRelational DB

Spark

HDFS/ Tachyon

Hive Metastore

Kafka

The hive metastore is updated and the hdfs connectors writes into hdfs

Page 13: HUG France Feb 2016 - Migration de données structurées entre Hadoop et RDBMS par Louis Rabiet (Squid Solution)

How to keep the data structured?

Use a schema registry (Avro in Kafka).each schema has a corresponding kafka topic and a distinct hive table.

{ "type": "record", "name": "ArtistGender", "fields" : [ {"name": "count", "type": "long"}, {"name": "gender", "type": "String"]}]}

Page 14: HUG France Feb 2016 - Migration de données structurées entre Hadoop et RDBMS par Louis Rabiet (Squid Solution)

Challenges

- Auto creation of topics/table in Hive for each datasets from Bouquet. - JDBC reads are too slow for something like Kafka.- Issue with types conversion: null is not supported for all cases for example (issue

272 on schema-registry).- Versions: Kafka 0.9.0, Tachyon 0.7.1, Spark 1.5.2 with HortonWorks 2.3.4 (Dec

2015)- Hive: Setting the warehouse directory.- In tachyon: Setting up hostname.

Page 15: HUG France Feb 2016 - Migration de données structurées entre Hadoop et RDBMS par Louis Rabiet (Squid Solution)

Tachyon?

•Use it as in memory filesystem to replace HDFS.• Interact with Spark using the hdfs plugin. • Transparent from user point of view

Page 16: HUG France Feb 2016 - Migration de données structurées entre Hadoop et RDBMS par Louis Rabiet (Squid Solution)

Status

Injection SQL -> Spark: OKSpark usage: OKRe-injection: In alpha stage.

Page 17: HUG France Feb 2016 - Migration de données structurées entre Hadoop et RDBMS par Louis Rabiet (Squid Solution)

Re-injection

Two solutions: • Spark user notifies Bouquet that data has changed (using a custom function)• Bouquet pulls the data from spark

Page 18: HUG France Feb 2016 - Migration de données structurées entre Hadoop et RDBMS par Louis Rabiet (Squid Solution)

We use it for real!

Collaborating with La Poste to be able to use Spark and the re-injection mechanism to use Bouquet and a geographical visualisation.

Page 19: HUG France Feb 2016 - Migration de données structurées entre Hadoop et RDBMS par Louis Rabiet (Squid Solution)

In the future

•Notebook integration•We got a DSL for bouquet API, we may want to have built-in support spark. • Improve scalability (Bulk Unload and Kafka fine tuning)

Page 20: HUG France Feb 2016 - Migration de données structurées entre Hadoop et RDBMS par Louis Rabiet (Squid Solution)

QUESTIONS OPENBOUQUET.IO

Page 21: HUG France Feb 2016 - Migration de données structurées entre Hadoop et RDBMS par Louis Rabiet (Squid Solution)

DB HD

Bouquet Architecture

Bouquet Server

SQL DATA

JDBC

Dynamic Caching & Indexing

REST APIBusiness Modeling OAuth2

Generic Apps

Multi-Tenant

REDIS Elastic MongoDB

JS/SDK Custom Apps