1.1. 引擎说明

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

引擎表名和表清理机制

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

引擎相关配置

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

字段 类型 对应java字段 描述
HS_ENGINE_TYPE STRING ENGINE_TYPE 引擎类型,参考引擎类型说明
IS_ENGINE_EMBEDDED BOOL 是否为衡石自带的引擎,默认为true; 如果是衡石自带引擎,则可以在页面开放数仓, 如果不是衡石自带引擎,而是客户自己的引擎,则在页面不能开放数仓
SYSTEM_ENGINE_URL STRING SYSTEM_ENGINE_URL 设置用户自建的引擎的jdbc url作为内置引擎
INTERNAL_ENGINE_DATASET_PATH STRING INTERNAL_ENGINE_DATASET_PATH 数据集导入路径,默认是public,多级路径用英文逗号分隔
INTERNAL_ENGINE_TMP_PATH STRING INTERNAL_ENGINE_TMP_PATH 引擎临时路径,主要用于数据集成文件上传,默认是hengshi_internal_engine_tmp_schema,多级路径用英文逗号分隔
INTERNAL_ENGINE_OUTPUT_PATH STRING INTERNAL_ENGINE_OUTPUT_PATH 引擎公共数据路径,用于提供衡石的共用数据,比如万年历等。默认是common,多级路径用英文逗号分隔
UPDATE_ENGINE_COMMON_DATA BOOL UPDATE_ENGINE_COMMON_DATA 是否更新公共数据,默认是false,如果存在不更新,不存在才导入
OPEN_DW_USER STRING OPEN_DW_USER 衡石数仓用户名
OPEN_DW_DB STRING OPEN_DW_DB 衡石数仓所在DB
OPEN_DW_TYPE STRING OPEN_DW_TYPE 衡石数仓类型,可以为postgresql或者greenplum,默认是greenplum
GREENPLUM_QUERY_USR STRING ENGINE_QUERY_USER 衡石提供的GreenplumDB的查询用户名
GREENPLUM_QUERY_PWD STRING ENGINE_QUERY_PASSWORD 衡石提供的GreenplumDB的查询用户密码
QUERY_QUEUE STRING ENGINE_QUERY_QUEUE 衡石提供的GreenplumDB的查询用户所属的资源队列
GREENPLUM_ETL_USR STRING ENGINE_ETL_USER 衡石提供的GreenplumDB的ETL用户名
GREENPLUM_ETL_PWD STRING ENGINE_ETL_PASSWORD 衡石提供的GreenplumDB的ETL用户密码
ETL_QUEUE STRING ENGINE_ETL_QUEUE 衡石提供的GreenplumDB的ETL用户所属的资源队列
ENGINE_CONN_POOL_SIZE INTEGER ENGINE_CONN_POOL_SIZE 引擎连接池大小,默认是10
INTERNAL_ENGINE_CONNECTION_TITLE STRING INTERNAL_ENGINE_CONNECTION_TITLE 引擎连接显示的标题,默认是“引擎连接”
DATASET_CACHE_MAX_SIZE_MB INTEGER DATASET_CACHE_MAX_SIZE_MB 导入引擎的数据集的大小限制,单位的MB,默认50000
DATASET_CACHE_IMPORT_MAX_TIME INTEGER DATASET_CACHE_IMPORT_MAX_TIME 导入引擎过程最大时间,单位是小时,默认是3,这个影响引擎表的回收判断,如果存在误判可以改大一些,后果是没有使用的表清理会延迟一些
ENGINE_UPDATE_DEFAULT_RESOURCE_GROUP_RATIO BOOL ENGINE_UPDATE_DEFAULT_RESOURCE_GROUP_RATIO 是否需要更新默认资源组(default_group)的比例,默认是true
ENGINE_DEFAULT_RESOURCE_GROUP_RATIO INTEGER ENGINE_DEFAULT_RESOURCE_GROUP_RATIO 默认资源组(default_group)的比例,默认是10
ENGINE_RESOURCE_GROUP_PREFIX STRING ENGINE_RESOURCE_GROUP_PREFIX 衡石创建的资源组的前缀,多个衡石服务共享一套引擎可以用不同前缀,默认是hengshi
ENGINE_PLATFORM_RESOURCE_GROUP_RATIO INTEGER ENGINE_PLATFORM_RESOURCE_GROUP_RATIO 平台方资源组的总比例,默认是30
ENGINE_TENANT_RESOURCE_GROUP_RATIO INTEGER ENGINE_TENANT_RESOURCE_GROUP_RATIO 租户资源组的总比例,默认是40
TOTAL_TENANT_ENGINE_RESOURCE_UNIT INTEGER TOTAL_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文件

    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 类型

    HS_ENGINE_TYPE="postgresql"
    export OPEN_DW_TYPE="postgresql"
    export OPEN_DW_USER="dwguest"
    export OPEN_DW_DB="hengshi_hs_dw"
    
  • java config文件

    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文件

    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文件

    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文件

    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文件

    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文件

    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文件

    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文件

    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文件

    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文件

    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文件

    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文件

    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文件

    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文件

    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
    

results matching ""

    No results matching ""

    替代衡石metadb Doris引擎配置