Click here for a quick overview of Polaris.
Click here for the quickstart experience, which will help you set up a Polaris instance locally or on any supported cloud provider.
Apache Polaris is organized into the following modules:
polaris-core
- The main Polaris entity definitions and core business logicpolaris-api-management-model
- The Polaris management modelpolaris-api-management-service
- The Polaris management servicepolaris-api-iceberg-service
- The Iceberg REST servicepolaris-service-common
- The main components of the Polaris serverpolaris-quarkus-service
- The Quarkus-specific components of the Polaris serverpolaris-quarkus-defaults
- The Quarkus-specific configuration defaultspolaris-quarkus-server
- The Polaris server runtimepolaris-quarkus-admin-tool
- The Polaris admin & maintenance toolpolaris-jpa-model
- The JPA entity definitionspolaris-eclipselink
- The Eclipselink implementation of the MetaStoreManager interfaceApache Polaris is built using Gradle with Java 21+ and Docker 27+.
./gradlew build
- To build and run tests. Make sure Docker is running, as the integration tests depend on it../gradlew assemble
- To skip tests../gradlew test
- To run unit tests and integration tests../gradlew run
- To run the Polaris server locally; the server is reachable at localhost:8181. This is also suitable for running regression tests, or for connecting with Spark../regtests/run_spark_sql.sh
- To connect from Spark SQL. Here are some example commands to run in the Spark SQL shell:create database db1; show databases; create table db1.table1 (id int, name string); insert into db1.table1 values (1, 'a'); select * from db1.table1;
env POLARIS_HOST=localhost ./regtests/run.sh
- To run regression tests locally, see more options here../gradlew \ :polaris-quarkus-server:assemble \ :polaris-quarkus-server:quarkusAppPartsBuild --rerun \ -Dquarkus.container-image.build=true
docker run -p 8181:8181 -p 8182:8182 apache/polaris:latest
- To run the image.The Polaris codebase contains some docker compose examples to quickly get started with Polaris, using different configurations. Check the ./getting-started
directory for more information.
./run.sh
- To run Polaris as a mini-deployment locally. This will create a Kind cluster, then deploy one pod and one service. The service is available on ports 8181
and 8182
.kubectl port-forward svc/polaris-service -n polaris 8181:8181 8182:8182
- To create secure connections between a local machine and a pod within the cluster for both service and health/metrics endpoints:kubectl get pods -n polaris
- To check the status of the pods.kubectl get deployment -n polaris
- To check the status of the deployment.kubectl describe deployment polaris-deployment -n polaris
- To troubleshoot if things aren't working as expected.Polaris Servers can be configured using a variety of ways. Please see the Configuration Guide for more information.
Default configuration values can be found in quarkus/defaults/src/main/resources/application.properties
.
site/bin/run-hugo-in-docker.sh
site/
for more information.Apache Polaris is under the Apache License Version 2.0. See the LICENSE.
Apache Polaris™ is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
Apache®, Apache Polaris™, Apache Iceberg™, Apache Spark™ are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries.