# Connect CH to Spark

## NOTE: Depressed

## Processes and data relation
```
+-----------------------------------------------+
|                                               |
|  Spark                    +-------------+     |
|                           | Spark rows  |     |
|                           +---------^---+     |
|                                     |         |
|  +----------------------------------|------+  |
|  |                                  |      |  |
|  |  Spark-CH Client:              Decode   |  |
|  |    In process '.jar' package     |      |  |
|  |                                  |      |  |
|  +---+------------------------------|------+  |
|      |                              |         |
+------|------------------------------|---------+
       |                              |
       | Scan (Load ch.so, JNI)       |
       |                              |
+------|------------------------------|---------+
|      |                              |         |
|      |         CH Lib (ch.so)       |         |
|      |                              |         |   +-----------------+
|      |                              |         |   |                 |
|      +-------------------------------------------->  Latch service  |
|      |                              |         |   |                 |
|      |                              |         |   +--------------^--+
|  +---v------------------------------|------+  |                  |
|  |                                  |      |  |                  |
|  |  CH Connector          +---------+---+  |  |                  |
|  |                        | Arrow data  |  |  |                  |
|  |                        +---------^---+  |  |                  |
|  |                                  |      |  |                  |
|  |                               Encode    |  |                  |
|  |                                  |      |  |                  |
|  +---+------------------------------|------+  |                  |
|      |                              |         |                  |
|  +---+------------------------------|------+  |                  |
|  |                                  |      |  |                  |
|  |  CH Engine:            +---------+---+  |  |                  |
|  |    MergeTree           | CH Columns  |  |  |   +-----------+  |
|  |                        +---------^---+  |  |   |           |  |
|  |                                  |      +------>  Database |  |
|  |                                Query    |  |   |  (files)  |  |
|  |                                         |  |   |           |  |
|  +-----------------------------------------+  |   +-----^-----+  |
|                                               |         |        |
+-----------------------------------------------+         |        |
                                                          |        |
                                                          |        |
+---------------------------+                             |        |
|                           |                             |        |
|  Binlog Syncer:           |                             |        |
|    One process            |                             |        |
|                           |                             |        |
|  +---------------------+  |                             |        |
|  |                     |  |                             |        |
|  |  CH Lib (ch.so):    +--------------------------------+--------+
|  |    Store engine     |  |
|  |    Connector        |  |
|  |                     |  |
|  +-------------+-------+  |
|                |          |
|  +-------------+-------+  |
|  |                     |  |
|  |  Binlog Writer:     |  |
|  |    In process       |  |
|  |                     |  |
|  +-------------^-------+  |
|                |          |
+----------------|----------+
                 |
                 |
+----------------|----------+
|                |          |
|  TiDB          |          |
|       +--------+-------+  |
|       |  Binlog        |  |
|       +----------------+  |
|                           |
+---------------------------+

-->: Calling direction or data flow
```
