Deployment¶
This guide outlines how to deploy the Unity Catalog server.
Deploying using tarball¶
Prerequisites¶
- To generate the tarball, run the following command in the source code:
build/sbt createTarball
Unpacking the tarball¶
- The tarball generated in the
target
directory can be unpacked using the following command:tar -xvf unitycatalog-<version>.tar.gz
- Unpacking the tarball will create the following directory structure:
unitycatalog-<version> ├── bin │ ├── start-uc-server │ └── uc ├── etc │ ├── conf │ ├── data │ ├── db │ └── logs └── jars
- The
bin
directory contains the scripts that you can use to start the UC server and run the CLI. - The
etc
directory contains the configuration, data, database, and logs directories. - The
jars
directory contains the jar files required to run the UC server.
Configuring the UC server¶
- The UC server can be configured by modifying the files in
etc/conf/
. This includes properties related to logging, server environment and the s3 configuration. - Setting the server environment to
dev
will use properties located inetc/conf/hibernate.properties
to configure the backend database whereastest
will spin up an in-memory database. - The
etc/data/
directory contains the data files that are used by the UC server. This includes the tables and volumes that are created. - The
etc/db/
directory contains the backend database that is used by the UC server.
Configuring the database¶
- The backend database can be configured by modifying the
etc/conf/hibernate.properties
file. - You need to provide the connection details to connect to your database server.
Example MySQL Connection¶
Prerequisites¶
- Install docker.
- Download JDBC driver for MySQL.
Start MySQL server¶
- In a terminal, navigate to the cloned repository root directory.
- Modify
etc/db/mysql-example.yml
to configure MySQL server. Then start MySQL using Docker:
docker-compose -f etc/db/mysql-example.yml up -d
- Modify the
etc/conf/hibernate.properties
file with your MySQL connection details:
hibernate.connection.driver_class=com.mysql.cj.jdbc.Driver
hibernate.connection.url=jdbc:mysql://localhost:3306/ucdb
hibernate.connection.user=uc_default_user
hibernate.connection.password=uc_default_password
- Modify the
jars/classpath
file and add path to your jdbc driver.
Example PostgreSQL Connection¶
Prerequisites¶
- Install docker.
- Download JDBC driver for PostgreSQL.
Start PostgreSQL server¶
- In a terminal, navigate to the cloned repository root directory.
- Modify
etc/db/postgres-example.yml
to configure PostgreSQL server. Then start PostgreSQL using Docker:
docker-compose -f etc/db/postgres-example.yml up -d
- Modify the
etc/conf/hibernate.properties
file with your PostgreSQL connection details:
hibernate.connection.driver_class=org.postgresql.Driver
hibernate.connection.url=jdbc:postgresql://localhost:5432/ucdb
hibernate.connection.user=uc_default_user
hibernate.connection.password=uc_default_password
- Modify the
jars/classpath
file and add path to your jdbc driver.