Skip to content

引擎说明

衡石可以配置一个内置引擎,用于对数据集进行加速,适用于客户没有计算能力较强的查询引擎的场景。在数据集管理页面打开开关就能获得加速效果。衡石安装包包含了 Postgresql 引擎、GreenplumDB 引擎、Doris 引擎。 客户还可以自己提供其他类型的引擎,包括 Aws Athena,Aws Redshift,阿里云 Hologres,自建 Postgresql,自建 GreenplumDB,自建 MySQL,自建达梦数据库等。另外,如果选择使用衡石安装的 Postgresql 或者 GreenplumDB 作为引擎,还同时支持配置这个服务作为数仓,给数据集成作为输出节点使用。 默认衡石使用 GreenplumDB 作为内置的引擎和数仓,支持数据集导入引擎,同时支持作为数据集成的输出目的地。这种情况下不需要做高级配置。

引擎表名和表清理机制

为了避免读写冲突,全量导入的表名是随机生成的,表名中有创建时间。再次全量导入,则生成新的表,旧表不再使用。复制数据集时,两个数据集会重用一个表。删除数据集的时候,不删除表。这里引入了一个 垃圾回收的机制,清理任务定期扫描引擎表列表,发现没有被数据集引用的表,就删除。

引擎相关配置

引擎的配置需要在启动前在安装跟目录下的 conf/hengshi-sense-env.sh 文件中配置,需要在变量前面加上 export 关键字。相关字段说明如下:

字段类型对应 java 字段描述
HS_ENGINE_TYPESTRINGENGINE_TYPE引擎类型,参考引擎类型说明
IS_ENGINE_EMBEDDEDBOOL是否为衡石自带的引擎,默认为 true; 如果是衡石自带引擎,则可以在页面开放数仓, 如果不是衡石自带引擎,而是客户自己的引擎,则在页面不能开放数仓
SYSTEM_ENGINE_URLSTRINGSYSTEM_ENGINE_URL设置用户自建的引擎的 jdbc url 作为内置引擎
INTERNAL_ENGINE_DATASET_PATHSTRINGINTERNAL_ENGINE_DATASET_PATH数据集导入路径,默认是 public,多级路径用英文逗号分隔
INTERNAL_ENGINE_TMP_PATHSTRINGINTERNAL_ENGINE_TMP_PATH引擎临时路径,主要用于数据集成文件上传,默认是 hengshi_internal_engine_tmp_schema,多级路径用英文逗号分隔
INTERNAL_ENGINE_OUTPUT_PATHSTRINGINTERNAL_ENGINE_OUTPUT_PATH引擎公共数据路径,用于提供衡石的共用数据,比如万年历等。默认是 common,多级路径用英文逗号分隔
UPDATE_ENGINE_COMMON_DATABOOLUPDATE_ENGINE_COMMON_DATA是否更新公共数据,默认是 false,如果存在不更新,不存在才导入
OPEN_DW_USERSTRINGOPEN_DW_USER衡石数仓用户名
OPEN_DW_DBSTRINGOPEN_DW_DB衡石数仓所在 DB
OPEN_DW_TYPESTRINGOPEN_DW_TYPE衡石数仓类型,可以为 postgresql 或者 greenplum,默认是 greenplum
GREENPLUM_QUERY_USRSTRINGENGINE_QUERY_USER衡石提供的 GreenplumDB 的查询用户名
GREENPLUM_QUERY_PWDSTRINGENGINE_QUERY_PASSWORD衡石提供的 GreenplumDB 的查询用户密码
QUERY_QUEUESTRINGENGINE_QUERY_QUEUE衡石提供的 GreenplumDB 的查询用户所属的资源队列
GREENPLUM_ETL_USRSTRINGENGINE_ETL_USER衡石提供的 GreenplumDB 的 ETL 用户名
GREENPLUM_ETL_PWDSTRINGENGINE_ETL_PASSWORD衡石提供的 GreenplumDB 的 ETL 用户密码
ETL_QUEUESTRINGENGINE_ETL_QUEUE衡石提供的 GreenplumDB 的 ETL 用户所属的资源队列
ENGINE_CONN_POOL_SIZEINTEGERENGINE_CONN_POOL_SIZE引擎连接池大小,默认是10
INTERNAL_ENGINE_CONNECTION_TITLESTRINGINTERNAL_ENGINE_CONNECTION_TITLE引擎连接显示的标题,默认是“引擎连接”
DATASET_CACHE_MAX_SIZE_MBINTEGERDATASET_CACHE_MAX_SIZE_MB导入引擎的数据集的大小限制,单位的 MB,默认50000
DATASET_CACHE_IMPORT_MAX_TIMEINTEGERDATASET_CACHE_IMPORT_MAX_TIME导入引擎过程最大时间,单位是小时,默认是3,这个影响引擎表的回收判断,如果存在误判可以改大一些,后果是没有使用的表清理会延迟一些
ENGINE_UPDATE_DEFAULT_RESOURCE_GROUP_RATIOBOOLENGINE_UPDATE_DEFAULT_RESOURCE_GROUP_RATIO是否需要更新默认资源组(default_group)的比例,默认是 true
ENGINE_DEFAULT_RESOURCE_GROUP_RATIOINTEGERENGINE_DEFAULT_RESOURCE_GROUP_RATIO默认资源组(default_group)的比例,默认是10
ENGINE_RESOURCE_GROUP_PREFIXSTRINGENGINE_RESOURCE_GROUP_PREFIX衡石创建的资源组的前缀,多个衡石服务共享一套引擎可以用不同前缀,默认是 hengshi
ENGINE_PLATFORM_RESOURCE_GROUP_RATIOINTEGERENGINE_PLATFORM_RESOURCE_GROUP_RATIO平台方资源组的总比例,默认是30
ENGINE_TENANT_RESOURCE_GROUP_RATIOINTEGERENGINE_TENANT_RESOURCE_GROUP_RATIO租户资源组的总比例,默认是40
TOTAL_TENANT_ENGINE_RESOURCE_UNITINTEGERTOTAL_TENANT_ENGINE_RESOURCE_UNIT默认租户资源的总单元数,默认是100

引擎类型说明

IS_ENGINE_EMBEDDED含义
true配置为衡石内嵌引擎
false配置为客户自由引擎
类型值意义
NONE不使用引擎
GREENPLUM使用 GreenplumDB(默认)
DORIS使用 DorisDB
POSTGRESQL使用 Postgresql
ATHENA使用 Aws Athena
CLIENT_GREENPLUM当是客户自有 GreenplumDB 时,配置此变量
REDSHIFT使用 Aws Redshift
MYSQL使用 MySQL
DAMENG使用达梦数据库
HOLOGRES使用阿里云的 Hologres

样例1:使用衡石提供的 GreenplumDB 作为引擎,并使用它作为数仓

  • shell config 文件不用配置,这个是提供数仓的版本的脚本默认配置的,不需要做任何设置

  • java config 文件

shell
ENGINE_TYPE=greenplum
ENGINE_DB=jdbc:postgresql://192.168.211.4:15432/postgres?user=hengshi&password=xxx&charSet=UTF-8
ENGINE_QUERY_USER=hengshi_query
ENGINE_QUERY_PASSWORD=xxx
ENGINE_QUERY_QUEUE=hengshi_query_queue
ENGINE_ETL_USER=hengshi_etl
ENGINE_ETL_PASSWORD=xxx
ENGINE_ETL_QUEUE=hengshi_etl_queue
OPEN_DW_TYPE=greenplum
OPEN_DW_USER=dwguest
OPEN_DW_DB=hengshi_hs_dw

样例2:使用衡石提供的 Postgresql 作为引擎,并使用它作为数仓

  • shell config 文件, postgresql 数仓 url 也会自动配置, 只需修改 HS_ENGINE_TYPE 类型
shell
HS_ENGINE_TYPE="postgresql"
export OPEN_DW_TYPE="postgresql"
export OPEN_DW_USER="dwguest"
export OPEN_DW_DB="hengshi_hs_dw"
  • java config 文件
shell
ENGINE_TYPE=postgresql
ENGINE_DB=jdbc:postgresql://192.168.211.4:45433/engine?user=hengshi&password=xxx&charSet=UTF-8
OPEN_DW_TYPE=postgresql
OPEN_DW_USER=dwguest
OPEN_DW_DB=hengshi_hs_dw

样例3:使用外部的 Postgresql 作为引擎

  • shell config 文件
shell
HS_ENGINE_TYPE="postgresql"
IS_ENGINE_EMBEDDED=false
export SYSTEM_ENGINE_URL="jdbc:postgresql://192.168.211.4:45433/engine?user=hengshi&password=xxx&charSet=UTF-8"
export INTERNAL_ENGINE_DATASET_PATH="public"
export INTERNAL_ENGINE_TMP_PATH="hengshi_internal_engine_tmp_schema"
export INTERNAL_ENGINE_OUTPUT_PATH="common"
  • java config 文件
shell
ENGINE_TYPE=postgresql
SYSTEM_ENGINE_URL=jdbc:postgresql://192.168.211.4:45433/engine?user=hengshi&password=xxx&charSet=UTF-8
INTERNAL_ENGINE_DATASET_PATH=public
INTERNAL_ENGINE_TMP_PATH=hengshi_internal_engine_tmp_schema
INTERNAL_ENGINE_OUTPUT_PATH=common

样例4:使用外部的 GreenplumDB 作为引擎

  • shell config 文件
shell
HS_ENGINE_TYPE="client_greenplum"
IS_ENGINE_EMBEDDED=false
export SYSTEM_ENGINE_URL="jdbc:postgresql://192.168.211.4:45433/engine?user=hengshi&password=xxx&charSet=UTF-8"
export INTERNAL_ENGINE_DATASET_PATH="public"
export INTERNAL_ENGINE_TMP_PATH="hengshi_internal_engine_tmp_schema"
export INTERNAL_ENGINE_OUTPUT_PATH="common"
  • java config 文件
ENGINE_TYPE=client_greenplum
SYSTEM_ENGINE_URL=jdbc:postgresql://192.168.211.4:45433/engine?user=hengshi&password=xxx&charSet=UTF-8
INTERNAL_ENGINE_DATASET_PATH=public
INTERNAL_ENGINE_TMP_PATH=hengshi_internal_engine_tmp_schema
INTERNAL_ENGINE_OUTPUT_PATH=common

样例5:使用 Aws Athena 作为引擎

  • shell config 文件
shell
HS_ENGINE_TYPE="athena"
IS_ENGINE_EMBEDDED=false
export SYSTEM_ENGINE_URL="jdbc:awsathena://AwsRegion=cn-north-1;User=user;Password=pass;Catalog=AwsDataCatalog;Schema=default;S3OutputLocation=s3://wss-athena-result/result/;S3DataStorageLocation=s3://wss-athena/0-storage/"
export INTERNAL_ENGINE_DATASET_PATH="AwsDataCatalog,enginedb"
export INTERNAL_ENGINE_TMP_PATH="AwsDataCatalog,enginetmp"
export INTERNAL_ENGINE_OUTPUT_PATH="AwsDataCatalog,enginecommon"
  • java config 文件
shell
ENGINE_TYPE=athena
SYSTEM_ENGINE_URL=jdbc:awsathena://AwsRegion=cn-north-1;User=user;Password=pass;Catalog=AwsDataCatalog;Schema=default;S3OutputLocation=s3://wss-athena-result/result/;S3DataStorageLocation=s3://wss-athena/0-storage/
INTERNAL_ENGINE_DATASET_PATH=AwsDataCatalog,enginedb
INTERNAL_ENGINE_TMP_PATH=AwsDataCatalog,enginetmp
INTERNAL_ENGINE_OUTPUT_PATH=AwsDataCatalog,enginecommon

样例6:使用 Aws Redshift 作为引擎

  • shell config 文件
shell
HS_ENGINE_TYPE="redshift"
IS_ENGINE_EMBEDDED=false
export SYSTEM_ENGINE_URL="jdbc:redshift://test.ccveezprunlx.cn-north-1.redshift.amazonaws.com.cn:5439/engine?user=user&password=pass"
export INTERNAL_ENGINE_DATASET_PATH="enginedb"
export INTERNAL_ENGINE_TMP_PATH="enginetmp"
export INTERNAL_ENGINE_OUTPUT_PATH="enginecommon"
  • java config 文件
shell
ENGINE_TYPE=redshift
SYSTEM_ENGINE_URL=jdbc:redshift://test.ccveezprunlx.cn-north-1.redshift.amazonaws.com.cn:5439/engine?user=user&password=pass
INTERNAL_ENGINE_DATASET_PATH=enginedb
INTERNAL_ENGINE_TMP_PATH=enginetmp
INTERNAL_ENGINE_OUTPUT_PATH=enginecommon

样例7:使用 MySQL 作为引擎

  • shell config 文件
shell
HS_ENGINE_TYPE="mysql"
IS_ENGINE_EMBEDDED=false
export SYSTEM_ENGINE_URL="jdbc:mysql://192.168.211.4:3306/testdb?user=root&password=Test123@"
export INTERNAL_ENGINE_DATASET_PATH="enginedb"
export INTERNAL_ENGINE_TMP_PATH="enginetmp"
export INTERNAL_ENGINE_OUTPUT_PATH="enginecommon"
  • java config 文件
shell
ENGINE_TYPE=mysql
SYSTEM_ENGINE_URL=jdbc:mysql://192.168.211.4:3306/testdb?user=root&password=Test123@
INTERNAL_ENGINE_DATASET_PATH=enginedb
INTERNAL_ENGINE_TMP_PATH=enginetmp
INTERNAL_ENGINE_OUTPUT_PATH=enginecommon

样例8:使用 doris 作为引擎

  • shell config 文件
shell
export HS_ENGINE_TYPE="other"
export IS_ENGINE_EMBEDDED=false
export SYSTEM_ENGINE_URL="jdbc:doris://10.10.10.251:9030/hengshidb?user=hengshi&password=hengshi"
export INTERNAL_ENGINE_DATASET_PATH="enginedb"
export INTERNAL_ENGINE_TMP_PATH="enginetmp"
export INTERNAL_ENGINE_OUTPUT_PATH="enginecommon"
  • java config 文件
shell
ENGINE_TYPE=other
SYSTEM_ENGINE_URL=jdbc:doris://10.10.10.251:9030/hengshidb?user=hengshi&password=hengshi
INTERNAL_ENGINE_DATASET_PATH=enginedb
INTERNAL_ENGINE_TMP_PATH=enginetmp
INTERNAL_ENGINE_OUTPUT_PATH=enginecommon

样例9:使用 clickhouse 作为引擎

  • shell config 文件
shell
export HS_ENGINE_TYPE="other"
export IS_ENGINE_EMBEDDED=false
export SYSTEM_ENGINE_URL="jdbc:clickhouse://192.168.2.250:8123/hengshi?user=default&password=hengshipwd&cluster=hengshi_cluster"
export INTERNAL_ENGINE_DATASET_PATH="enginedb"
export INTERNAL_ENGINE_TMP_PATH="enginetmp"
export INTERNAL_ENGINE_OUTPUT_PATH="enginecommon"
  • java config 文件
shell
ENGINE_TYPE=other
SYSTEM_ENGINE_URL=jdbc:clickhouse://192.168.2.250:8123/hengshi?user=default&password=hengshipwd
INTERNAL_ENGINE_DATASET_PATH=enginedb
INTERNAL_ENGINE_TMP_PATH=enginetmp
INTERNAL_ENGINE_OUTPUT_PATH=enginecommon

衡石分析平台使用手册