Apache Doris (Incubating)

Clone this repo:
  1. 292273b Fix string bug in segment v2 (#2005) by kangpinghuang · 11 hours ago master
  2. 05c05cf Add apache arrow IPC module for Spark-Doris-Connector usage (#1958) by Yunfeng,Wu · 13 hours ago
  3. 3f325e0 Change the priority of different type in function (#2003) by EmmyMiao87 · 17 hours ago
  4. c3b5046 Fix bug of invalid stream load task rollback (#1999) by Mingyu Chen · 30 hours ago
  5. d9bb494 Fix bug that insert stmt with label return label already exist. (#2006) by Mingyu Chen · 31 hours ago

Apache Doris (incubating)

Join the chat at https://gitter.im/apache-doris/Lobby

Doris is an MPP-based interactive SQL data warehousing for reporting and analysis. Its orignal name was Palo, developed in Baidu. After donating it to Apache Software Foundation, it was renamed Doris.

1. License

Apache License, Version 2.0

2. Technology

Doris mainly integrates the technology of Google Mesa and Apache Impala, and it is based on a column-oriented storage engine and can communicate by MySQL client.

3. User cases

Doris not only provides high concurrent low latency point query performance, but also provides high throughput queries of ad-hoc analysis.

Doris not only provides batch data loading, but also provides near real-time mini-batch data loading.

Doris also provides high availability, reliability, fault tolerance, and scalability.

The simplicity (of developing, deploying and using) and meeting many data serving requirements in single system are the main features of Doris (refer to Overview).

4. Compile and install

Currently only supports Docker environment and Linux OS, such as Ubuntu and CentOS.

4.1 Compile in Docker environment (Recommended)

We offer a docker images as a Doris compilation environment. You can compile Doris from source in it and run the output binaries in other Linux environment.

Firstly, you must be install and start docker service.

And then you could build Doris as following steps:

Step1: Pull the docker image with Doris building environment

$ docker pull apachedoris/doris-dev:build-env

You can check it by listing images, for example:

$ docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
apachedoris/doris-dev   build-env           f8bc5d4024e0        21 hours ago        3.28GB

NOTE: You may have to use different images to compile from source.

image versioncommit idrelease version
apachedoris/doris-dev:build-envbefore ff0dd0d0.8.x, 0.9.x
apachedoris/doris-dev:build-env-1.1ff0dd0d or later0.10.x or later

Step2: Run the Docker image

You can run the image directyly:

$ docker run -it apachedoris/doris-dev:build-env

Or if you want to compile the source located in your local host, you can map the local directory to the image by running:

$ docker run -it -v /your/local/path/incubator-doris-DORIS-x.x.x-release/:/root/incubator-doris-DORIS-x.x.x-release/ apachedoris/doris-dev:build-env

Step3: Download Doris source

Now you should in docker environment.

You can download Doris source by release package or by git clone in image.

(If you already downloaded the source in your local host and map it to the image in Step2, you can skip this step.)

$ wget https://dist.apache.org/repos/dist/dev/incubator/doris/xxx.tar.gz
or
$ git clone https://github.com/apache/incubator-doris.git

Step4: Build Doris

Enter Doris source path and build Doris.

$ sh build.sh

After successfully building, it will install binary files in the directory output/.

4.2 For Linux OS

Prerequisites

You must be install following softwares:

GCC 5.3.1+, Oracle JDK 1.8+, Python 2.7+, Apache Maven 3.5+, CMake 3.4.3+

After you installed above all, you also must be set them to environment variable PATH and set JAVA_HOME.

If your GCC version is less than 5.3.1, you can run:

sudo yum install devtoolset-4-toolchain -y

and then, set the path of GCC (e.g /opt/rh/devtoolset-4/root/usr/bin) to the environment variable PATH.

Compile and install

Run following script, it will compile thirdparty libraries and build whole Doris.

sh build.sh

After successfully building, it will install binary files in the directory output/.

5. Licence Notice

License of some of third-party dependencies are not compatible with Apache 2.0 License. So you may have to disable some features of Doris to be complied with Apache 2.0 License. Details can be found in thirdparty/LICENSE.txt

6. Reporting Issues

If you find any bugs, please file a GitHub issue.

7. Links