Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add pymyrepli node #1

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions diagrams/onprem/analytics.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,8 @@ class Tableau(_Analytics):
class Trino(_Analytics):
_icon = "trino.png"

class pymy(_Analytics):
_icon = "pymy.png"

# Aliases

Expand Down
39 changes: 39 additions & 0 deletions diagrams_pymyrepli.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
from diagrams import Cluster, Diagram, Edge
from diagrams.aws.database import Dynamodb, Redshift
from diagrams.aws.analytics import KinesisDataStreams, ElasticsearchService
from diagrams.aws.compute import Lambda
from diagrams.aws.storage import S3
from diagrams.onprem.database import MySQL, MariaDB
from diagrams.generic.database import SQL
from diagrams.onprem.queue import Kafka
from diagrams.onprem.analytics import Spark, pymy
from diagrams.saas.analytics import Snowflake

with Diagram("", show=False):

with Cluster("User (Client)"):
muser = MySQL("MySQL User")
mduser = MariaDB("MariaDB User")

with Cluster("Server"):

with Cluster("MySQL/MariaDB Master"):
master = SQL("Binlog")

with Cluster("MySQL/MariaDB Slave"):
slave = SQL("Slave")

with Cluster("python-mysql-replication Slave"):
py_mysql_replication = pymy("")

muser >> Edge(label="DDL/DML") >> master
master >> Edge(label="Event") >> py_mysql_replication
master >> Edge(label="Execute") >> slave

with Cluster("UseCase"):
with Cluster("AWS"):
kinesis = KinesisDataStreams("Kinesis")
py_mysql_replication >> kinesis >> Lambda("Lambda") >> [Dynamodb("DynamoDB"), ElasticsearchService("OpenSearch Service")]
py_mysql_replication >> S3("S3") >> Redshift("Redshift")

py_mysql_replication >> Kafka("Kafka") >> Spark("Spark\n Streaming") >> Snowflake("Snowflake")
54 changes: 54 additions & 0 deletions diagrams_pymyrepli_graph.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
from diagrams import Cluster, Diagram, Edge
from diagrams.generic.database import SQL
from diagrams.generic.storage import Storage
from diagrams.programming.language import Python

graph_attrs = {
"pad": "0.5",
"rankdir": "TB",
}

with Diagram("", show=False, graph_attr=graph_attrs):

with Cluster("user (client)"):
with Cluster("DML"):
insert = SQL("INSERT")
update = SQL("UPDATE")
delete = SQL("DELETE")
ddl = SQL("DDL")

with Cluster("server"):
with Cluster("MySQL/MariaDB (server/master)"):
with Cluster("Rows_event"):
write_rows_event = SQL("Write_rows_event")
update_rows_event = SQL("Update_rows_event")
delete_rows_event = SQL("Delete_rows_event")
query_event = SQL("Query_event")
binary_log = Storage("binary log")

with Cluster("MySQL/MariaDB (slave)"):
execute = SQL("Execute")

with Cluster("python-mysql-replication (slave)"):
with Cluster("RowsEvent"):
writeRowsEvent = SQL("WriteRowsEvent")
updateRowsEvent = SQL("UpdateRowsEvent")
deleteRowsEvent = SQL("DeleteRowsEvent")
queryEvent = SQL("QueryEvent")

insert >> Edge(label="Write_rows_event") >> write_rows_event
update >> Edge(label="Update_rows_event") >> update_rows_event
delete >> Edge(label="Delete_rows_event") >> delete_rows_event
ddl >> Edge(label="Query_event") >> query_event

write_rows_event >> binary_log
update_rows_event >> binary_log
delete_rows_event >> binary_log
query_event >> binary_log

binary_log >> Edge(label="Execute") >> execute

binary_log >> Edge(label="WriteRowsEvent") >> writeRowsEvent
binary_log >> Edge(label="UpdateRowsEvent") >> updateRowsEvent
binary_log >> Edge(label="DeleteRowsEvent") >> deleteRowsEvent
binary_log >> Edge(label="QueryEvent") >> queryEvent
4 changes: 4 additions & 0 deletions docs/nodes/onprem.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,10 @@ Node classes list of onprem provider.
<img width="30" src="/img/resources/onprem/analytics/trino.png" alt="Trino" style="float: left; padding-right: 5px;" >
**diagrams.onprem.analytics.Trino**

<img width="30" src="/img/resources/onprem/analytics/pymy.png" alt="pymy" style="float: left; padding-right: 5px;" >
**diagrams.onprem.analytics.pymy**


## onprem.auth


Expand Down
Binary file added resources/onprem/analytics/pymy.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading