Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: upgrade 0.8.2 #3370

Merged
merged 8 commits into from
Jul 18, 2023
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,24 @@
# Changelog

## [0.8.1] - 2023-07-20

### Features
- Enhance the `delete` statement (#3301 @dl239)
- Enhance the C++ SDK (#3334 @vagetablechicken)
- Support the new option `IF EXISTS` in the `DROP TABLE/DATABASE` statement (#3348 @emo-coder)
- Improve the documents (#3344 #3152 @vagetablechicken, #3341 @aceforeverd, #3343 @dl239)
- Upgrade the version of Kafka connector to `10.5.0-SNAPSHOT-0.8.1` (#3365 @vagetablechicken)

### Bug Fixes
- Loading external UDF libraries fails under certain environment when runing an offline task (#3350 #3359 @vagetablechicken)
- Loading data fails with Hive soft links (#3349 @vagetablechicken)
- Insertion succeeds but with an invalid timestamp (#3313 @aceforeverd)
- The bool type is not properly packed in APIServer. (#3366 @vagetablechicken)
- The table can be created successfully when there are duplicated indexs. (#3306 @dl239)

### Breaking Changes:
- The field `Offline_deep_copy` will be replaced by `Offline_symbolic_paths` in the result of `SHOW TABLE STATUS` #3349.

## [0.8.1] - 2023-06-28

### Features
Expand Down
2 changes: 1 addition & 1 deletion demo/java_quickstart/demo/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
<dependency>
<groupId>com.4paradigm.openmldb</groupId>
<artifactId>openmldb-jdbc</artifactId>
<version>0.8.1</version>
<version>0.8.2</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
Expand Down
4 changes: 2 additions & 2 deletions demo/predict-taxi-trip-duration/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ w2 as (PARTITION BY passenger_count ORDER BY pickup_datetime ROWS_RANGE BETWEEN

**Start docker**
```
docker run -it 4pdosc/openmldb:0.8.1 bash
docker run -it 4pdosc/openmldb:0.8.2 bash
```
**Initialize environment**
```bash
Expand Down Expand Up @@ -138,7 +138,7 @@ python3 predict.py
**Start docker**

```bash
docker run -it 4pdosc/openmldb:0.8.1 bash
docker run -it 4pdosc/openmldb:0.8.2 bash
```
**Initialize environment**

Expand Down
2 changes: 1 addition & 1 deletion demo/talkingdata-adtracking-fraud-detection/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ We recommend you to use docker to run the demo. OpenMLDB and dependencies have b
**Start docker**

```
docker run -it 4pdosc/openmldb:0.8.1 bash
docker run -it 4pdosc/openmldb:0.8.2 bash
```

#### Run locally
Expand Down
8 changes: 4 additions & 4 deletions docs/en/deploy/compile.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
This section describes the steps to compile and use OpenMLDB inside its official docker image [hybridsql](https://hub.docker.com/r/4pdosc/hybridsql).
The docker image has packed required tools and dependencies, so there is no need to set them up separately. To compile without the official docker image, refer to the section [Detailed Instructions for Build](#detailed-instructions-for-build) below.

Keep in mind that you should always use the same version of both compile image and [OpenMLDB version](https://github.com/4paradigm/OpenMLDB/releases). This section demonstrates compiling for [OpenMLDB v0.8.1](https://github.com/4paradigm/OpenMLDB/releases/tag/v0.8.1) under `hybridsql:0.8.1` ,If you prefer to compile on the latest code in `main` branch, pull `hybridsql:latest` image instead.
Keep in mind that you should always use the same version of both compile image and [OpenMLDB version](https://github.com/4paradigm/OpenMLDB/releases). This section demonstrates compiling for [OpenMLDB v0.8.2](https://github.com/4paradigm/OpenMLDB/releases/tag/v0.8.2) under `hybridsql:0.8.2` ,If you prefer to compile on the latest code in `main` branch, pull `hybridsql:latest` image instead.

1. Pull the docker image

Expand All @@ -21,11 +21,11 @@ Keep in mind that you should always use the same version of both compile image a
docker run -it 4pdosc/hybridsql:0.8 bash
```

3. Download the OpenMLDB source code inside the docker container, and setting the branch into v0.8.1
3. Download the OpenMLDB source code inside the docker container, and setting the branch into v0.8.2

```bash
cd ~
git clone -b v0.8.1 https://github.com/4paradigm/OpenMLDB.git
git clone -b v0.8.2 https://github.com/4paradigm/OpenMLDB.git
```

4. Compile OpenMLDB
Expand Down Expand Up @@ -151,7 +151,7 @@ The built jar packages are in the `target` path of each submodule. If you want t
1. Downloading the pre-built OpenMLDB Spark distribution:

```bash
wget https://github.com/4paradigm/spark/releases/download/v3.2.1-openmldb0.8.1/spark-3.2.1-bin-openmldbspark.tgz
wget https://github.com/4paradigm/spark/releases/download/v3.2.1-openmldb0.8.2/spark-3.2.1-bin-openmldbspark.tgz
```

Alternatively, you can also download the source code and compile from scratch:
Expand Down
50 changes: 25 additions & 25 deletions docs/en/deploy/install_deploy.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
* The number of cores is recommended to be no less than 4 cores. If the CPU does not support the AVX2 instruction set in the Linux environment, the deployment package needs to be recompiled from the source code.

## Deployment Package
The precompiled OpenMLDB deployment package is used by default in this documentation ([Linux](https://github.com/4paradigm/OpenMLDB/releases/download/v0.8.1/openmldb-0.8.1-linux.tar.gz) , [macOS](https://github.com/4paradigm/OpenMLDB/releases/download/v0.8.1/openmldb-0.8.1-darwin.tar.gz)), the supported operating system requirements are: CentOS 7, Ubuntu 20.04, macOS >= 10.15. If the user wishes to compile by himself (for example, for OpenMLDB source code development, the operating system or CPU architecture is not in the support list of the precompiled deployment package, etc.), the user can choose to compile and use in the docker container or compile from the source code. For details, please refer to our [compile documentation](compile.md).
The precompiled OpenMLDB deployment package is used by default in this documentation ([Linux](https://github.com/4paradigm/OpenMLDB/releases/download/v0.8.2/openmldb-0.8.2-linux.tar.gz) , [macOS](https://github.com/4paradigm/OpenMLDB/releases/download/v0.8.2/openmldb-0.8.2-darwin.tar.gz)), the supported operating system requirements are: CentOS 7, Ubuntu 20.04, macOS >= 10.15. If the user wishes to compile by himself (for example, for OpenMLDB source code development, the operating system or CPU architecture is not in the support list of the precompiled deployment package, etc.), the user can choose to compile and use in the docker container or compile from the source code. For details, please refer to our [compile documentation](compile.md).

## Configure Environment (Linux)

Expand Down Expand Up @@ -91,9 +91,9 @@ OpenMLDB standalone version needs to deploy a nameserver and a tablet. The names
### Download the OpenMLDB Release Package

```
wget https://github.com/4paradigm/OpenMLDB/releases/download/v0.8.1/openmldb-0.8.1-linux.tar.gz
tar -zxvf openmldb-0.8.1-linux.tar.gz
cd openmldb-0.8.1-linux
wget https://github.com/4paradigm/OpenMLDB/releases/download/v0.8.2/openmldb-0.8.2-linux.tar.gz
tar -zxvf openmldb-0.8.2-linux.tar.gz
cd openmldb-0.8.2-linux
```

### Configuration
Expand Down Expand Up @@ -163,9 +163,9 @@ Environment Requirements:
### Download the OpenMLDB Deployment Package

```
wget https://github.com/4paradigm/OpenMLDB/releases/download/v0.8.1/openmldb-0.8.1-linux.tar.gz
tar -zxvf openmldb-0.8.1-linux.tar.gz
cd openmldb-0.8.1-linux
wget https://github.com/4paradigm/OpenMLDB/releases/download/v0.8.2/openmldb-0.8.2-linux.tar.gz
tar -zxvf openmldb-0.8.2-linux.tar.gz
cd openmldb-0.8.2-linux
```

### Configuration
Expand All @@ -175,7 +175,7 @@ which are listed below.

| Environment Variables | Default Values | Definitons |
|-----------------------------------|---------------------------------------------------------|-------------------------------------------------------------------------------------------------------|
| OPENMLDB_VERSION | 0.8.1 | OpenMLDB version |
| OPENMLDB_VERSION | 0.8.2 | OpenMLDB version |
| OPENMLDB_MODE | standalone | standalone or cluster mode |
| OPENMLDB_HOME | root directory of the release folder | openmldb root path |
| SPARK_HOME | $OPENMLDB_HOME/spark | the root path of openmldb spark release. if not exists, download from online |
Expand Down Expand Up @@ -311,10 +311,10 @@ Deploy the Zookeeper cluster [refer to here](https://zookeeper.apache.org/doc/r3
#### 1. Download the OpenMLDB Deployment Package

```
wget https://github.com/4paradigm/OpenMLDB/releases/download/v0.8.1/openmldb-0.8.1-linux.tar.gz
tar -zxvf openmldb-0.8.1-linux.tar.gz
mv openmldb-0.8.1-linux openmldb-tablet-0.8.1
cd openmldb-tablet-0.8.1
wget https://github.com/4paradigm/OpenMLDB/releases/download/v0.8.2/openmldb-0.8.2-linux.tar.gz
tar -zxvf openmldb-0.8.2-linux.tar.gz
mv openmldb-0.8.2-linux openmldb-tablet-0.8.2
cd openmldb-tablet-0.8.2
```

#### 2. Modify the Configuration File: conf/tablet.flags
Expand Down Expand Up @@ -361,10 +361,10 @@ Repeat the above steps to deploy multiple tablets.
#### 1. Download the OpenMLDB Deployment Package

```
wget https://github.com/4paradigm/OpenMLDB/releases/download/v0.8.1/openmldb-0.8.1-linux.tar.gz
tar -zxvf openmldb-0.8.1-linux.tar.gz
mv openmldb-0.8.1-linux openmldb-ns-0.8.1
cd openmldb-ns-0.8.1
wget https://github.com/4paradigm/OpenMLDB/releases/download/v0.8.2/openmldb-0.8.2-linux.tar.gz
tar -zxvf openmldb-0.8.2-linux.tar.gz
mv openmldb-0.8.2-linux openmldb-ns-0.8.2
cd openmldb-ns-0.8.2
```

#### 2. Modify the Configuration File: conf/nameserver.flags
Expand Down Expand Up @@ -411,10 +411,10 @@ Before running, make sure that the OpenMLDB cluster has been started, otherwise
#### 1. Download the OpenMLDB Deployment Package

```
wget https://github.com/4paradigm/OpenMLDB/releases/download/v0.8.1/openmldb-0.8.1-linux.tar.gz
tar -zxvf openmldb-0.8.1-linux.tar.gz
mv openmldb-0.8.1-linux openmldb-apiserver-0.8.1
cd openmldb-apiserver-0.8.1
wget https://github.com/4paradigm/OpenMLDB/releases/download/v0.8.2/openmldb-0.8.2-linux.tar.gz
tar -zxvf openmldb-0.8.2-linux.tar.gz
mv openmldb-0.8.2-linux openmldb-apiserver-0.8.2
cd openmldb-apiserver-0.8.2
```

#### 2. Modify the Configuration File: conf/apiserver.flags
Expand Down Expand Up @@ -454,12 +454,12 @@ TaskManager can be deployed in single server. You can deploy multiple instances
#### 1. Download the OpenMLDB Spark Distribution that is Optimized for Feature Engineering

```
wget https://github.com/4paradigm/spark/releases/download/v3.2.1-openmldb0.8.1/spark-3.2.1-bin-openmldbspark.tgz
wget https://github.com/4paradigm/spark/releases/download/v3.2.1-openmldb0.8.2/spark-3.2.1-bin-openmldbspark.tgz
tar -zxvf spark-3.2.1-bin-openmldbspark.tgz
wget https://github.com/4paradigm/OpenMLDB/releases/download/v0.8.1/openmldb-0.8.1-linux.tar.gz
tar -zxvf openmldb-0.8.1-linux.tar.gz
mv openmldb-0.8.1-linux openmldb-taskmanager-0.8.1
cd openmldb-taskmanager-0.8.1
wget https://github.com/4paradigm/OpenMLDB/releases/download/v0.8.2/openmldb-0.8.2-linux.tar.gz
tar -zxvf openmldb-0.8.2-linux.tar.gz
mv openmldb-0.8.2-linux openmldb-taskmanager-0.8.2
cd openmldb-taskmanager-0.8.2
```

#### 2. Modify the Configuration File conf/taskmanager.properties
Expand Down
10 changes: 5 additions & 5 deletions docs/en/quickstart/java_sdk.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ Configure maven pom
<dependency>
<groupId>com.4paradigm.openmldb</groupId>
<artifactId>openmldb-jdbc</artifactId>
<version>0.8.1</version>
<version>0.8.2</version>
</dependency>
<dependency>
<groupId>com.4paradigm.openmldb</groupId>
<artifactId>openmldb-native</artifactId>
<version>0.8.1</version>
<version>0.8.2</version>
</dependency>
```
### Package Installation on Mac
Expand All @@ -24,15 +24,15 @@ Configure maven pom
<dependency>
<groupId>com.4paradigm.openmldb</groupId>
<artifactId>openmldb-jdbc</artifactId>
<version>0.8.1</version>
<version>0.8.2</version>
</dependency>
<dependency>
<groupId>com.4paradigm.openmldb</groupId>
<artifactId>openmldb-native</artifactId>
<version>0.8.1-macos</version>
<version>0.8.2-macos</version>
</dependency>
```
Note that since `openmldb-native` contains the C++ static library compiled by OpenMLDB, by default it is a Linux's static library. On macOS, the version of the above openmldb-native needs to be changed to `0.8.1-macos`, and the version of openmldb-jdbc remains unchanged.
Note that since `openmldb-native` contains the C++ static library compiled by OpenMLDB, by default it is a Linux's static library. On macOS, the version of the above openmldb-native needs to be changed to `0.8.2-macos`, and the version of openmldb-jdbc remains unchanged.

The macOS native relase only supports macos-12. If you want use in macos-11 or macos 10.15, you should build openmldb-native from source in macos-11/macos-10.15, see [Build Java SDK](../deploy/compile.md#build-java-sdk-with-multi-processes) for details.

Expand Down
2 changes: 1 addition & 1 deletion docs/en/quickstart/openmldb_quickstart.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ If you wan to compile and install it by yourself, you can refer to our [installa
Pull the image (image download size is about 1GB, after decompression is about 1.7 GB) and start the docker container:

```bash
docker run -it 4pdosc/openmldb:0.8.1 bash
docker run -it 4pdosc/openmldb:0.8.2 bash
```

```{important}
Expand Down
6 changes: 3 additions & 3 deletions docs/en/reference/ip_tips.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,12 @@ Expose the port through `-p` when starting the container, and the client can acc

The stand-alone version needs to expose the ports of three components (nameserver, tabletserver, apiserver):
```
docker run -p 6527:6527 -p 9921:9921 -p 8080:8080 -it 4pdosc/openmldb:0.8.1 bash
docker run -p 6527:6527 -p 9921:9921 -p 8080:8080 -it 4pdosc/openmldb:0.8.2 bash
```

The cluster version needs to expose the zk port and the ports of all components:
```
docker run -p 2181:2181 -p 7527:7527 -p 10921:10921 -p 10922:10922 -p 8080:8080 -p 9902:9902 -it 4pdosc/openmldb:0.8.1 bash
docker run -p 2181:2181 -p 7527:7527 -p 10921:10921 -p 10922:10922 -p 8080:8080 -p 9902:9902 -it 4pdosc/openmldb:0.8.2 bash
```

```{tip}
Expand All @@ -57,7 +57,7 @@ If the OpenMLDB service process is distributed, the "port number is occupied" ap
#### Host Network
Or more conveniently, use host networking without port isolation, for example:
```
docker run --network host -it 4pdosc/openmldb:0.8.1 bash
docker run --network host -it 4pdosc/openmldb:0.8.2 bash
```
But in this case, it is easy to find that the port is occupied by other processes in the host. If occupancy occurs, change the port number carefully.

Expand Down
2 changes: 1 addition & 1 deletion docs/en/use_case/JD_recommendation_en.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ Oneflow-serving:https://github.com/Oneflow-Inc/serving/tree/ce5d667468b6b3ba66
Pull the OpenMLDB docker image and run.

```bash
docker run -dit --name=openmldb --network=host -v $demodir:/work/oneflow_demo 4pdosc/openmldb:0.8.1 bash
docker run -dit --name=openmldb --network=host -v $demodir:/work/oneflow_demo 4pdosc/openmldb:0.8.2 bash
docker exec -it openmldb bash
```

Expand Down
2 changes: 1 addition & 1 deletion docs/en/use_case/airflow_provider_demo.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ For the newest version, please visit [GitHub example_dags](https://github.com/4p
- Please project the previously downloaded files to the path `/work/airflow/dags`, where Airflow will access for the DAG.

```
docker run -p 8080:8080 -v `pwd`/airflow_demo_files:/work/airflow/dags -it 4pdosc/openmldb:0.8.1 bash
docker run -p 8080:8080 -v `pwd`/airflow_demo_files:/work/airflow/dags -it 4pdosc/openmldb:0.8.2 bash
```

#### 0.3 Download and Install the Airflow and the Airflow OpenMLDB Provider
Expand Down
2 changes: 1 addition & 1 deletion docs/en/use_case/dolphinscheduler_task_demo.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ In addition to the feature engineering done by OpenMLDB, the prediction also req

The demo can run on MacOS or Linux, the OpenMLDB docker image is recommended. We'll start OpenMLDB and DolphinScheduler in the same container, expose the DolphinScheduler web port:
```
docker run -it -p 12345:12345 4pdosc/openmldb:0.8.1 bash
docker run -it -p 12345:12345 4pdosc/openmldb:0.8.2 bash
```

```{attention}
Expand Down
2 changes: 1 addition & 1 deletion docs/en/use_case/kafka_connector_demo.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ For OpenMLDB Kafka Connector implementation, please refer to [extensions/kafka-c
This article will start the OpenMLDB in docker container, so there is no need to download the OpenMLDB separately. Moreover, Kafka and connector can be started in the same container. We recommend that you save the three downloaded packages to the same directory. Let's assume that the packages are in the `/work/kafka` directory.

```
docker run -it -v `pwd`:/work/kafka --name openmldb 4pdosc/openmldb:0.8.1 bash
docker run -it -v `pwd`:/work/kafka --name openmldb 4pdosc/openmldb:0.8.2 bash
```

### Steps
Expand Down
2 changes: 1 addition & 1 deletion docs/en/use_case/lightgbm_demo.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Note that: (1) this case is based on the OpenMLDB cluster version for tutorial d
- Pull the OpenMLDB docker image and run the corresponding container:

```bash
docker run -it 4pdosc/openmldb:0.8.1 bash
docker run -it 4pdosc/openmldb:0.8.2 bash
```

The image is preinstalled with OpenMLDB and preset with all scripts, third-party libraries, open-source tools and training data required for this case.
Expand Down
2 changes: 1 addition & 1 deletion docs/en/use_case/pulsar_connector_demo.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Only OpenMLDB cluster mode can be the sink dist, and only write to online storag

We recommend that you use ‘host network’ to run docker. And bind volume ‘files’ too. The sql scripts are in it.
```
docker run -dit --network host -v `pwd`/files:/work/pulsar_files --name openmldb 4pdosc/openmldb:0.8.1 bash
docker run -dit --network host -v `pwd`/files:/work/pulsar_files --name openmldb 4pdosc/openmldb:0.8.2 bash
docker exec -it openmldb bash
```
```{note}
Expand Down
2 changes: 1 addition & 1 deletion docs/en/use_case/talkingdata_demo.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ It is recommended to run this demo in Docker. Please make sure that OpenMLDB and
**Start the OpenMLDB Docker Image**

```
docker run -it 4pdosc/openmldb:0.8.1 bash
docker run -it 4pdosc/openmldb:0.8.2 bash
```

#### 1.1.2 Run Locally
Expand Down
8 changes: 4 additions & 4 deletions docs/zh/deploy/compile.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

此节介绍在官方编译镜像 [hybridsql](https://hub.docker.com/r/4pdosc/hybridsql) 中编译 OpenMLDB,主要可以用于在容器内试用和开发目的。镜像内置了编译所需要的工具和依赖,因此不需要额外的步骤单独配置它们。关于基于非 docker 的编译使用方式,请参照下面的 [从源码全量编译](#从源码全量编译) 章节。

对于编译镜像的版本,需要注意拉取的镜像版本和 [OpenMLDB 发布版本](https://github.com/4paradigm/OpenMLDB/releases)保持一致。以下例子演示了在 `hybridsql:0.8.1` 镜像版本上编译 [OpenMLDB v0.8.1](https://github.com/4paradigm/OpenMLDB/releases/tag/v0.8.1) 的代码,如果要编译最新 `main` 分支的代码,则需要拉取 `hybridsql:latest` 版本镜像。
对于编译镜像的版本,需要注意拉取的镜像版本和 [OpenMLDB 发布版本](https://github.com/4paradigm/OpenMLDB/releases)保持一致。以下例子演示了在 `hybridsql:0.8.2` 镜像版本上编译 [OpenMLDB v0.8.2](https://github.com/4paradigm/OpenMLDB/releases/tag/v0.8.2) 的代码,如果要编译最新 `main` 分支的代码,则需要拉取 `hybridsql:latest` 版本镜像。

1. 下载 docker 镜像
```bash
Expand All @@ -16,10 +16,10 @@
docker run -it 4pdosc/hybridsql:0.8 bash
```

3. 在 docker 容器内, 克隆 OpenMLDB, 并切换分支到 v0.8.1
3. 在 docker 容器内, 克隆 OpenMLDB, 并切换分支到 v0.8.2
```bash
cd ~
git clone -b v0.8.1 https://github.com/4paradigm/OpenMLDB.git
git clone -b v0.8.2 https://github.com/4paradigm/OpenMLDB.git
```

4. 在 docker 容器内编译 OpenMLDB
Expand Down Expand Up @@ -141,7 +141,7 @@ make SQL_JAVASDK_ENABLE=ON NPROC=4
1. 下载预编译的OpenMLDB Spark发行版。

```bash
wget https://github.com/4paradigm/spark/releases/download/v3.2.1-openmldb0.8.1/spark-3.2.1-bin-openmldbspark.tgz
wget https://github.com/4paradigm/spark/releases/download/v3.2.1-openmldb0.8.2/spark-3.2.1-bin-openmldbspark.tgz
```

或者下载源代码并从头开始编译。
Expand Down
Loading
Loading