Generates PlantUML diagrams for clickhouse databases
Project description
PlantUML generator for ClickHouse tables
This is a very early version of diagrams generator. It parses system.tables
table and produces PlantUML diagrams source. Here's example of produced diagram:
@startuml
!define Table(x) class x << (T,mistyrose) >>
!define View(x) class x << (V,lightblue) >>
!define MaterializedView(x) class x << (m,orange) >>
!define Distributed(x) class x << (D,violet) >>
hide empty methods
hide stereotypes
skinparam classarrowcolor gray
Distributed(graphite.data) {
ENGINE=**Distributed**
..engine config..
cluster: graphite_data
database: graphite
table: data_lr
sharding_key: cityHash64(Path)
==columns==
Path: String
Value: Float64
Time: UInt32
Date: Date
Timestamp: UInt32
}
graphite.data_lr -|> graphite.data
Table(graphite.data_lr) {
ENGINE=**ReplicatedGraphiteMergeTree**
..engine config..
rollup_config: graphite_rollup
..replication..
zoo_path: /clickhouse/tables/graphite.data_lr/{shard}
replica: {replica}
==columns==
Path: String <size:15><&signal></size>
Value: Float64
Time: UInt32 <size:15><&signal></size>
Date: Date <size:15><&list-rich></size>
Timestamp: UInt32
..<size:15><&list-rich></size>partition key..
toYYYYMMDD(toStartOfInterval(Date, toIntervalDay(3)))
..<size:15><&signal></size>sorting key..
Path, Time
}
Table(graphite.index) {
ENGINE=**ReplicatedReplacingMergeTree**
..engine config..
version: Version
..replication..
zoo_path: /clickhouse/tables/graphite.index/1
replica: {replica}
==columns==
Date: Date <size:15><&list-rich></size> <size:15><&signal></size>
Level: UInt32 <size:15><&signal></size>
Path: String <size:15><&signal></size>
Version: UInt32
..<size:15><&list-rich></size>partition key..
toYYYYMM(Date)
..<size:15><&signal></size>sorting key..
Level, Path, Date
}
Table(graphite.tagged) {
ENGINE=**ReplicatedReplacingMergeTree**
..engine config..
version: Version
..replication..
zoo_path: /clickhouse/tables/graphite.tagged/1
replica: {replica}
==columns==
Date: Date <size:15><&list-rich></size> <size:15><&signal></size>
Tag1: String <size:15><&signal></size>
Path: String <size:15><&signal></size>
Tags: Array(String)
Version: UInt32
..<size:15><&list-rich></size>partition key..
toYYYYMM(Date)
..<size:15><&signal></size>sorting key..
Tag1, Path, Date
}
@enduml
And how it looks after running PlantUML:
Usage
python setup.py install
clickhouse-plantuml
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
clickhouse_plantuml-0.2.1.tar.gz
(52.2 kB
view hashes)
Built Distribution
Close
Hashes for clickhouse_plantuml-0.2.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82930c505fa9227c4373882fcce39b4e9390612763d5de1abb091f165dc8d22e |
|
MD5 | 01bef91471ff9c3b0c0306c5ba1dc0dc |
|
BLAKE2b-256 | b10426ad88c8f6c06854392688037a08e11414cb5fcc596a5c99a1d2d88af7ea |
Close
Hashes for clickhouse_plantuml-0.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d726805f52b908f2af045d9efcac5abc8a73347fcacf502e2cd9c16953bbb87c |
|
MD5 | d586652ebf79e70eb10fb1f715da00f2 |
|
BLAKE2b-256 | 38048b98082dde945de075fa5b30b838424aaa031de36f82a9bb070b06dddcd8 |