Cross-platform database management with DBeaver
Data Director
Governing and taking care of databases is a specialized task that requires special system administrators who are commonly known as database administrators (DBAs). While their role encompasses all aspects of maintaining data integrity within an organization, some of it overlaps with the duties of a system administrator.
To save yourself time and effort when you are called to administer databases, you can use a graphical database management tool. There's no dearth of such tools, and some databases have their own in-house versions. What sets DBeaver [1] apart is that it works across platforms and supports a wide variety of database servers. Whether you are using relational databases like PostgreSQL and MariaDB, Hadoop-based ones like Apache Hive, graph databases like Neo4j, or even embedded ones like Firebird and SQLite, DBeaver can manage them all, as well as several others (Figure 1). Basically, if your database server has a JDBC driver, you can hook it up with DBeaver.
DBeaver comes in two versions: DBeaver Community Edition (CE) and DBeaver Enterprise Edition (EE). The CE version discussed in this article is available under the open source Apache License. The proprietary DBeaver EE [2] is available under a subscription model and supports databases with non-JDBC drivers, as well, including NoSQL behemoths like MongoDB and Apache Cassandra. Refer to the "Enterprise Edition Features" box for information on the functionality you get with the proprietary version.
Enterprise Edition Features
While the open source CE version has plenty of features, it lacks some elements that make more sense in a data-intensive enterprise. For starters, the Mock Data generator is a very useful feature for populating a newly created database with thousands of rows of sample data. If you have a large database and complex relationships between the tables, you can use the Visual Query Builder tool, which is designed to aid even non-SQL users by helping them query the database without writing a single line of SQL.
Furthermore, DBeaver has tools that will help you keep an eye on interactions with the database server and even optimize it to be more efficient. The Session Manager tool monitors connections to the database and pinpoints sessions that consume too many resources, and the Execution Plan Analyzer, which is part of the Session Manager tool, helps dig out inefficient queries.
You can use DBeaver CE for a variety of common tasks, such as editing metadata, exporting/importing data, managing users, and a lot more. It includes an SQL editor, a query manager, and Entity Relation (ER) diagrams that help visualize the connections between the databases. You can also use DBeaver to manipulate the data housed inside the database by directly viewing and editing it.
DBeaver is written in Java and based on the Eclipse Rich Client Platform. DBeaver CE is available in the repositories of many distributions. I use Ubuntu; the Snap version in the repositories is outdated, so I suggest grabbing one from Flathub. To equip Ubuntu to install Flatpaks, first fetch the Flatpak plugin for Gnome Software with:
sudo apt install gnome-software-plugin-flatpak
This command automatically installs all the required components. Once it's done, add the Flathub repository [3] with:
sudo flatpak remote-add --if-not-exists flathub
Now your Ubuntu installation is all set to install Flatpak apps. If you aren't running Ubuntu, follow the instructions for your distribution on the Flatpak website [4] to enable it to install flatpaks.
Once your distribution is ready, you can search for DBeaver inside its graphical software manager or type
flatpak install flathub io.dbeaver.DBeaverCommunity
inside a terminal to install the app.
Initial Impressions
When you launch DBeaver for the first time, it will prompt you for details to connect to a database server. The first step is to select a database server to which you want to connect from the list of supported databases. You can use DBeaver to connect to databases on the localhost, as well as those on a remote machine over the network or across the Internet.
Different databases require different configurations, but generally speaking, you'll need to enter the database server's hostname and the administrator's username and password (Figure 2). You should use the Test Connection button to check the connection before exiting the wizard. Because this is a pristine installation, DBeaver will download the drivers it requires to communicate with your database.
Once it connects to the database server, DBeaver will take you to the main interface. Every connection you create shows up in the Database Navigator tab on the left in an expandable tree, which you can use to access the various database components (e.g., tables, indexes, views, etc.).
Double-clicking any component loads it in the Editor window on the right for manipulation. For instance, double-clicking on a table loads it in the Editor window and opens three tabs (Figure 3). The first tab, Properties , displays various bits of information about the table. The second tab, Data , displays the data in the table. The ER Diagram tab displays the entity relation between the various tables. This tab is more useful when viewing an entire database because it displays the foreign keys that link the various tables.
Spend some time exploring DBeaver's interface. The app has very powerful and useful right-click context menus in the navigation window that offer all kinds of functionality. Right-click on a table to create a new one or even an entire database. Other options help you import and export data to and from a table (see the "Moving Data" box for details). If you select multiple tables, the menu also has an option to compare them by various parameters. One of the most useful options in the context menu is the Tools submenu that includes various helpful options. For instance, you can back up a database and analyze, repair, and optimize a table, in addition to other options. To help you write SQL queries, the menu also includes options to generate various kinds of SQL statements.
Moving Data
In addition to letting you connect to your database server and manipulate its structure and data, DBeaver also lets you import and export data. After you've established a connection to a database server, select a table and bring up the right-click context menu. The menu contains separate options to import and export data. Selecting either option launches the Data Transfer wizard, which assists you with the task. Using the Import Data
option, you can bring data into a table from a CSV file or from another table. The wizard will take you through the steps involved in importing the data depending on the file type from which you are importing. On the other hand, if you want to export the data, the wizard will first prompt you to select the output file format. DBeaver supports various popular file formats, including CSV, HTML, JSON, XLS, and more. It can even export the data as a series of SQL INSERT
statements, which makes it easier to import the database.
Useful Functions
DBeaver has some very useful tools to ease many of the routine database administration tasks. One of the most useful is the SQL Editor, which has many features you would expect in an IDE to ease writing SQL, such as autocompletion, autoformatting, templates, history, and more.
You can bring up the SQL Editor from the right-click context menu or by heading to SQL Editor | SQL Editor . Here, you can write the SQL queries either manually with the help of autocompletion or use assistance tools like SQL Templates, which insert frequently used SQL statements. You can also use the Generate SQL option from the right-click context menu to copy and paste common SQL queries.
Once you've written some SQL statements, you can use the Play button on the left side of the SQL Editor to run the currently selected statement. The query output will be displayed in the results window below the SQL Editor. What's more, you can edit the values in the results window and even insert new rows of data. When you make any changes in the Data Viewer, before you save them to the database, you can use the Script button to preview the SQL lines that will make the changes to the database.
In fact, the Data Viewer is another interesting feature of DBeaver. Besides letting you edit data inside a table, you can also use it to filter, sort, and colorize the data. These features help make sense of large quantities of data. The top toolbar contains buttons that you can use to apply custom filters to sort the data, depending on your needs (Figure 4). One of the easiest ways to filter data is to specify an SQL expression in the filter field above the table or pick one from the predefined templates.
ER diagrams (Figure 5) are the third important tool for helping visualize the connections between the various tables in the database. ER diagrams in DBeaver are read-only; you can move the elements and rearrange their layout, but these changes cannot be saved. If you want to make any changes or add new elements, DBeaver lets you create custom ER diagrams under New | ER Diagram . This sequence launches a wizard that prompts you to select the tables you want to include in the ER diagram; however, you can add more tables, even for different databases, once the initial diagram has been created. You can then use the diagram tools and add the connections you want between the tables.
Conclusion
As you can see, DBeaver is a very diverse tool that will make a DBA's life a lot simpler. The open source Community Edition supports a wide array of commonly used databases and rolls in quite a lot of functionality to take the pain out of managing databases in all types of environments. The project has ample documentation [5] on its wiki to help you orient yourself with the tool.
Infos
- DBeaver: https://dbeaver.io/
- DBeaver EE: https://dbeaver.com/
- Flathub repository: https://flathub.org/repo/flathub.flatpakrepo
- Flatpak website https://flatpak.org/setup/
- DBeaver Project documentation: https://github.com/dbeaver/dbeaver/wiki/
Buy this article as PDF
(incl. VAT)