title | slug | license |
---|---|---|
How to use relational backend storage |
/how-to-use-relational-backend-storage |
This software is licensed under the Apache License version 2. |
Before the version 0.6.0
, Apache Gravitino supports KV and Relational backend storage to store metadata.
Since 0.6.0, Gravitino only supports using RDBMS as relational backend storage to store metadata. This doc will guide you on how to use the
relational backend storage in Gravitino.
Relational backend storage mainly aims to the users who are accustomed to using RDBMS to store data or lack available a KV storage, and want to use Gravitino.
With relational backend storage, you can quickly deploy Gravitino in a production environment and take advantage of relational storage to manage metadata.
Currently, relational backend storage supports the JDBCBackend
, and MySQL
and H2
are supported currently for JDBCBackend
, H2
is the
default storage for JDBCBackend
.
- MySQL 5.7 or 8.0.
- Gravitino distribution package.
- MySQL connector Jar (Should be compatible with the version of MySQL instance).
You need to download
and unzip
the distribution package firstly, please see
How to install Gravitino.
Then you can get the initialization script in the directory:
${GRAVITINO_HOME}/scripts/mysql/
The script name is like schema-{version}-mysql.sql
, and the version
depends on your Gravitino version.
For example, if your Gravitino version is 0.6.0
, then you can choose the latest version script.
If you used a legacy script, you can use upgrade-{old version}-to-{new version}-mysql.sql
to upgrade the schema.
Please create a database in MySQL in advance, and execute the initialization script obtained above in the database.
You should download the MySQL connector Jar for the corresponding version of MySQL you use
(You can download it from the maven-central-repo),
which is name like mysql-connector-java-{version}.jar
.
Then please place it in the distribution package directory:
${GRAVITINO_HOME}/libs/
Find the server configuration file which name is gravitino.conf
in the distribution package directory:
${GRAVITINO_HOME}/conf/
Then set up the following server configs:
gravitino.entity.store = relational
gravitino.entity.store.relational = JDBCBackend
gravitino.entity.store.relational.jdbcUrl = ${your_jdbc_url}
gravitino.entity.store.relational.jdbcDriver = ${your_driver_name}
gravitino.entity.store.relational.jdbcUser = ${your_username}
gravitino.entity.store.relational.jdbcPassword = ${your_password}
Finally, you can run the script in the distribution package directory to start the server:
./${GRAVITINO_HOME}/bin/gravitino.sh start
As mentioned above, H2
is the default storage for JDBCBackend
, so you can use H2
directly without any additional configuration.