When creating an external catalog, Doris will automatically sync the schema of table from external catalog. But some of column type are not supported by Doris now, such as struct, map, etc. In previous, when meeting these unsupported column, Doris will throw an exception, and the corresponding table can not be synced. But user may just want to query other supported columns. In this PR, I add a new column type: UNSUPPORTED. And now it is just used for external table schema sync. When meeting unsupported column, it will be synced as column with UNSUPPORTED type. When query this table, there are serval situation: select * from table: throw error Unsupported type 'UNSUPPORTED_TYPE' xxx select k1 from table: k1 is with supported type. query OK. select * except(k2): k2 is with unsupported type. query OK
Doris Develop Environment based on docker
Preparation
-
Download the Doris code repo
$ cd /to/your/workspace/ $ git clone https://github.com/apache/doris.gitYou can remove the
.gitdir indoris/to make the dir size smaller. So that the following generated docker image can be smaller. -
Copy Dockerfile
$ cd /to/your/workspace/ $ cp doris/docker/Dockerfile ./
After preparation, your workspace should like this:
.
├── Dockerfile
├── doris
│ ├── be
│ ├── bin
│ ├── build.sh
│ ├── conf
│ ├── DISCLAIMER-WIP
│ ├── docker
│ ├── docs
│ ├── env.sh
│ ├── fe
│ ├── ...
Build docker image
$ cd /to/your/workspace/
$ docker build -t doris:v1.0 .
dorisis docker image repository name andv1.0is tag name, you can change them to whatever you like.
Use docker image
This docker image you just built does not contain Doris source code repo. You need to download it first and map it to the container. (You can just use the one you used to build this image before)
$ docker run -it -v /your/local/path/doris/:/root/doris/ doris:v1.0
$ docker run -it -v /your/local/.m2:/root/.m2 -v /your/local/doris-DORIS-x.x.x-release/:/root/doris-DORIS-x.x.x-release/ doris:v1.0
Then you can build source code inside the container.
$ cd /root/doris/
$ sh build.sh
NOTICE
The default JDK version is openjdk 11, if you want to use openjdk 8, you can run the command:
$ alternatives --set java java-1.8.0-openjdk.x86_64
$ alternatives --set javac java-1.8.0-openjdk.x86_64
$ export JAVA_HOME=/usr/lib/jvm/java-1.8.0
The version of jdk you used to run FE must be the same version you used to compile FE.
Latest update time
2022-1-23