The capabilities and features of MariaDB Platform continue to expand, resulting in larger and more sophisticated production deployments – and the need for better tools. To provide DBAs with comprehensive, consolidating tooling, we created MariaDB Enterprise Tools: an easy-to-use, modular command-line interface for interacting with any part of MariaDB Platform.
In this session, we will provide a preview of the MariaDB Enterprise Client, walk through current and planned modules and discuss future plans for MariaDB Enterprise Tools – including SkySQL modules and the ability to create custom modules.
2. About Me
2
● Andrew (LinuxJedi) Hutchings
● Previously Lead Engineer / Manager for
MariaDB ColumnStore
● Many years of experience in database, cloud
and web technologies
● Co-author of MySQL 5.1 Plugin Development
● Twitter: @LinuxJedi
● EMail: linuxjedi@mariadb.com
3. Intended Audience
● DBAs who use command line tools
● Or really anyone who uses command line tools
3
4. The Problem...
4
● MariaDB’s growing suite of products each has its own set of tools to use
● Some of the tools have different interfaces
● Several of the tools have not had many changes in years
● DBA tools that MariaDB do not have equivalents of yet also have different
interfaces
5. The Idea
● A unified utility that encompases the entire MariaDB stack
● Modular design so extra tools can be added
● Easy / inviting to use for beginners and power users
● Newer features that MariaDB clients should have had long ago
5
7. What is it?
7
● A unified command line framework for Linux, Windows and macOS
○ The “Swiss Army Knife” of MariaDB
● Designed from the ground up to be easy to use
○ Run from your laptop (or on-prem server) to connect to multiple servers and cloud
○ Wizard driven, help screens, extensive documentation
○ Many advanced features for power users
● High-performance non-blocking core
● Extendable using modular interface
○ Can also execute external tools as modules
● Developed from the ground-up by MariaDB Corporation
11. Project Status
● Early technical preview stage
● Multi-window support
● Plugin architecture created
● SQL Prompt and ‘top’-like module created
● Builds and runs in macOS and Linux
● User and module developer documentation written
11
12. 12
Menu bar
Current DB
name in
prompt
Precise
execution
time
Bold column
names (only for
terminal output)
Unicode table
layout
characters
Host / port,
shows
padlock for
SSL
User authenticated as Current character set (UTF-8
default) Current table layout type
Indicator for
terminal / file
output
Current
delimiter
Status bar
13. 13
Current Features - Core
● Entirely event driven asynchronous core
● Handles multiple SQL connections simultaneously in a single thread
● Multi-window capable
● Multiple possible table layouts
● Unicode from the ground-up (but can fall-back to ASCII)
○ Powerline support too
● Mouse support (scrolling only for now)
● Connection URL support (mariadb://user@hostname/database)
● SSL certification verification by default
14. Current Features - Core - Table Layouts
● ASCII - Like the traditional client
● Unicode - A more fancy output
● CSV - For direct input into other tools
● Vertical - Like using “G” in the traditional client
● Markdown - For directly creating tables in documents
● JSON - Can be used for building REST requests
● Many more possible
14
15. Current Features - SQL Prompt
● Smarter query processing, no need for a delimiter for single line queries
● Easier to understand query history search
● Modular command parser
○ New commands are simple to add
15
16. Current Features - Module API
● Well documented API for modules
● Currently written in C
● Gives functionality for
○ Window manipulation
○ Async SQL queries
○ Command parsing
○ General utilities
16
17. Current Features - Top Module
● Similar to Linux / Unix ‘top’ command
● Shows live usage statistics for a MariaDB server
● Shows processlist
17
19. Planned Features - Core
● Help improvements
● UI improvements to aid users
● Full mouse support
● Windows support
● Connection details manager
19
20. Planned Features - SQL Watch Module
● A module to execute a single query repeatedly and watch for changes
○ New rows
○ Modified rows
● Can be useful to see state changes in status variables or live changes to parts
of tables
20
21. Planned Features - Shell Exec Wizard
● Provides a form to execute an external application
○ mariabackup as an example
● Uses a simple configuration file to map form details to executable options
● Output renders inside the UI
○ Interactive input may also be possible later
● Makes it extremely easy to add extra features just with configuration files
21
22. Planned Features - Command Modules
● Modules that a user can run with a single command
○ They execute something
○ Echo to screen if needed
○ Then return
● Can take zero or more parameters
● Executed by just typing in the command name in SQL Prompt with any
parameters
22
23. Planned Features - SQL Prompt
● Autocomplete suggestions
● Live syntax highlighting
● More commands
23
24. Planned Features - Backup
● A multi-threaded warm backup module
○ Think the regular dump tool but many times faster
○ Uses transaction snapshots
○ Possibly also use replication stream to get the data between start and end of
snapshot
● A hot backup (snapshot) module
○ Implementation details to be decided
24
25. Planned Features - SkySQL
● Simple user interface to create and manage SkySQL instances
● A new instance could automatically be stored in the connection list
25
26. More Features?
● MariaDB’s tools, ColumnStore tools, Xpand’s tools, MaxScale’s tools, etc...
● Database browser? Replication visualisations? Split window view?
● We are open to suggestions
● This is a modular core, we can do a lot with it
26
28. Summary
28
● We are building a simple unified DBA tool for the entire MariaDB stack
● Expect more about this tool in the coming months as we complete the first
release