当前位置: 首页 > news >正文

衡石分析平台使用手册--替换衡石 metadb

替换衡石 metadb​

在使用 HENGSHI SENSE 服务过程中,可以根据业务需要替换 HENGSHI 自带的 metadb。本文讲述使用云服务 PostgreSQL 替代衡石 metadb 的过程。

准备工作​

在进行配置前,请在云服务 PostgreSQL 上完成如下准备工作。

  1. [必须] 配置衡石业务数据库 创建用户和数据库,可参考下面示例进行操作,示例中用户名和账户名均为 hengshi。

    sql
    DO $body$ BEGIN IF NOT EXISTS (SELECT * FROM pg_catalog.pg_user WHERE  usename = 'hengshi') THEN CREATE ROLE hengshi CREATEDB CREATEROLE LOGIN PASSWORD 'hengshi202020'; END IF; END $body$;
    set role hengshi;
    create database hengshi;
    create database hengshi_sense_internal_storage;
    reset role;

  2. [必须] 配置衡石日志数据库 创建衡石日志用户,建立衡石日志数据库,并将数据库权限授权给衡石日志用户。 参考下面示例进行日志用户相关准备工作。

    sql
    \c hengshi
    DO $body$ BEGIN IF NOT EXISTS (SELECT * FROM pg_catalog.pg_user WHERE usename = 'syslog') THEN CREATE ROLE syslog LOGIN PASSWORD 'syslog'; END IF; END $body$;
    GRANT ALL PRIVILEGES ON DATABASE hengshi to syslog;
    CREATE DATABASE syslog;
    GRANT ALL PRIVILEGES ON DATABASE syslog to syslog;

  3. [可选] 配置只读账号 准备只读帐号(此操作在成功启动衡石服务后进行配置)。参考下面示例,设置只读账户。

    sql
    \c hengshi
    DO $body$ BEGIN IF NOT EXISTS (SELECT * FROM pg_catalog.pg_user WHERE  usename = 'hsro') THEN CREATE ROLE hsro LOGIN PASSWORD 'hsro202020'; END IF; END $body$;
    GRANT USAGE ON SCHEMA public TO hsro;
    ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO hsro;
    GRANT SELECT ON ALL TABLES IN SCHEMA public TO hsro;
    GRANT USAGE ON SCHEMA quartz TO hsro;
    ALTER DEFAULT PRIVILEGES IN SCHEMA quartz GRANT SELECT ON TABLES TO hsro;
    GRANT SELECT ON ALL TABLES IN SCHEMA quartz TO hsro;

  4. [可选] 配置衡石向量数据库 创建 pg_vector 向量数据库账号以及授予权限. 参考下面用户名为 vector 的示例。

    sql
    DO $body$ BEGIN IF NOT EXISTS (SELECT * FROM pg_catalog.pg_user WHERE usename = 'vector') THEN CREATE ROLE vector LOGIN PASSWORD 'vector20242024'; END IF; END $body$;
    CREATE DATABASE vector owner=vector;
    GRANT ALL PRIVILEGES ON DATABASE vector to vector;

  5. [必须] 配置衡石业务库权限 使用超级管理员账号对用户进行授权操作 Hengshi-sense 版本>=4.4,要求云服务 PostgreSQL 数据库 hengshi 用户需要具备 hengshi、hengshi_sense_internal_storage 这两个数据库的 pg_catalog(schema)的 CREATE/USAGE 权限,或者 hengshi 用户拥有超级管理员权限

    • 查询 hengshi 用户是否具备超级管理员权限
    sql
    select usename from pg_catalog.pg_user where usesuper = 't' and usename = 'hengshi';
    # 查询结果不为空即表示 hengshi 用户具有超级管理员权限

提示

如果 hengshi 用户具有超级管理员权限忽略下述步骤

* 依次连接 hengshi、hengshi_sense_internal_storage 数据库,进行授权操作

sql

\c hengshi
GRANT ALL ON SCHEMA pg_catalog TO hengshi;
\c hengshi_sense_internal_storage
GRANT ALL ON SCHEMA pg_catalog TO hengshi;

* 依次连接 hengshi、hengshi_sense_internal_storage 数据库,查询授权操作是否成功

sql

\c hengshi
select nspname,pri_t,rolname from (SELECT nspname, (aclexplode(COALESCE(nspacl, acldefault('n', nspowner)))).grantee        AS grantee, (aclexplode(COALESCE(nspacl, acldefault('n', nspowner)))).privilege_type AS pri_t FROM pg_namespace WHERE nspname = 'pg_catalog') a left join pg_roles b on a.grantee=b.oid where rolname = 'HS_PG_USR';
\c hengshi_sense_internal_storage
select nspname,pri_t,rolname from (SELECT nspname, (aclexplode(COALESCE(nspacl, acldefault('n', nspowner)))).grantee        AS grantee, (aclexplode(COALESCE(nspacl, acldefault('n', nspowner)))).privilege_type AS pri_t FROM pg_namespace WHERE nspname = 'pg_catalog') a left join pg_roles b on a.grantee=b.oid where rolname = 'HS_PG_USR';

* 授权成功查询结果如下,说明 hengshi 用户已拥有 USAGE、CREATE 权限
nspnamepri_trolname
pg_catalogUSAGEHS_PG_USR
pg_catalogCREATEHS_PG_USR
  • 使用 hengshi 用户依次连接 hengshi、hengshi_sense_internal_storage 数据库,使用下列 sql 验证用户权限,执行未出现错误信息即完成授权操作sql
    CREATE OR REPLACE FUNCTION pg_catalog.myTestCreate(text)RETURNS numericIMMUTABLE STRICT AS$$BEGINRETURN $1::numeric;EXCEPTIONWHEN OTHERS THENRETURN NULL;END$$ LANGUAGE plpgsql;select myTestCreate('123');DROP FUNCTION pg_catalog.myTestCreate(text);

修改数据库相关配置​

在文件conf/hengshi-sense-env.sh中修改如下配置项,然后重新启动 HENGSHI SENSE。重启后,衡石 metadb 替换成功。

shell

HS_PG_HOST=xxx         #衡石业务数据库 host
HS_PG_PORT=5432        #衡石业务数据库 port
HS_PG_DB="hengshi"     #衡石业务数据库 dbname
HS_PG_USR=hengshi      #衡石业务数据库 user
HS_PG_PWD="hengshi"    #衡石业务数据库 passwordexport INTERNAL_STORAGE_DB_NAME="hengshi_sense_internal_storage"  #衡石内部存储数据库HS_SYSLOG_HOST=xxxx    #衡石日志数据库 host (一般与业务数据库一致)
HS_SYSLOG_PORT=5432    #衡石日志数据库 port (一般与业务数据库一致)
HS_SYSLOG_DB=syslog    #衡石日志数据库 dbname
HS_SYSLOG_USR=syslog   #衡石日志数据库 user
HS_SYSLOG_PWD=syslog   #衡石日志数据库 passwordHS_VECTOR_HOST=xxx      # 衡石向量数据库 host
HS_VECTOR_PORT=5432     # 衡石向量数据库 port
HS_VECTOR_DB=vector     # 衡石向量数据库 dbname
HS_VECTOR_USER=vector   # 衡石向量数据库 user
HS_VECTOR_PASSWORD=vector20242024   # 衡石向量数据库 password

相关文章:

衡石分析平台使用手册--替换衡石 metadb

替换衡石 metadb​ 在使用 HENGSHI SENSE 服务过程中,可以根据业务需要替换 HENGSHI 自带的 metadb。本文讲述使用云服务 PostgreSQL 替代衡石 metadb 的过程。 准备工作​ 在进行配置前,请在云服务 PostgreSQL 上完成如下准备工作。 [必须] 配置衡石…...

【Unity学习心得】如何制作俯视角射击游戏

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、导入素材二、制作流程 1.制作地图2.实现人物动画和移动脚本3.制作单例模式和对象池4.制作手枪pistol和子弹bullet和子弹壳bulletShell5.制作散弹枪shotgun总…...

【资料分析】常见的坑

in 比较或计数类问题 差别大的基期比较,可以直接用现期进行比较 注意单位可能不同! 注意顺序是从小到大还是从大到小 以及老问题,名字本身就叫XX增量,XX增加值,而非还要另外去算的东东 给出的图表可能是不完整的 2…...

GitLab权限及设置

之前很少关注这些,项目的权限,一般由专门的管理人员设置。 但自己创建的项目自己可以设置权限。下面是一些笔记。 GitLab中用户权限_gitlab 权限-CSDN博客 开发中遇到要将自己这块的代码上传到Git,由其他组的同事拉取后继续开发。上传代码后…...

算法练习题24——查找杨辉三角中的组合数

题目描述 杨辉三角中的每个元素是一个组合数。第 ( i ) 行的第 ( j ) 个元素表示组合数 ( C(i, j) ) ,即从 ( i ) 个元素中选 ( j ) 个元素的组合方式。已知一个正整数 ( N ),要求在杨辉三角中找到这个数,并输出它在杨辉三角中的具体位置。位…...

string类的模拟实现

实现string的模拟实现分为三个文件&#xff0c;分别为&#xff1a;string.h、sting.cpp、test.cpp string.h 其中包含一些短小常用的函数的实现&#xff0c;头文件&#xff0c;函数的声明 #include<iostream> #include<string> #include<assert.h>using n…...

如何训练机器学习力场

机器学习力场&#xff08;MLFF&#xff09;的训练主要依赖于通过量子力学计算生成的高质量训练数据集&#xff0c;并利用不同的机器学习算法来拟合分子系统中的势能面&#xff08;Potential Energy Surface, PES&#xff09;和原子间作用力。这种训练过程包括数据准备、特征提取…...

AI创作新手册:精通Prompt提示词的提问策略

文章目录 &#x1f34a;AI创作核心&#xff1a;提示词 Prompt 的重要性1. 什么是提示词工程&#xff1f;1.1 提示词的作用原理1.2 提示词工程师的薪资与行业前景1.3 提示词工程的适用性 2. 提示词的编写技巧3. 常见的提示词框架3.1 CO-STAR 框架3.2 BORKE 框架 4. 提示词的实际…...

gingivitis

gingivitis 牙龈炎 1&#xff09;这个是啥不知道 2&#xff09;七叶莲片 3&#xff09;甲硝唑芬布芬胶囊 4&#xff09;盐酸左氧氟沙星胶囊 5&#xff09;纳珍 开始学习记录医生开的药。日常备药记录一下。【不要乱吃药哈】...

开源 AI 智能名片小程序:开启内容营销新境界

摘要&#xff1a;本文深入探讨了在当今数字化时代&#xff0c;内容营销的重要性以及如何实现让用户主动找你的最佳效果。通过引入开源 AI 智能名片小程序这一创新工具&#xff0c;阐述了其在明确目标用户群体、迎合用户需求痛点和打造风格特色方面的独特优势&#xff0c;为企业…...

p12docker 进入容器的命令和拷贝的命令

进入当前正在运行的容器 第一种方式是执行docker exec -it 8d57ffda7a29 /bin/bash这个时候可以根据docker容器的id进入到指定id的容器当中***(这个是比较常用的)*** 老师的笔记 第二种方式是docker attach 8d57ffda7a29 这里还是直接引用老师的笔记吧 从容器内部拷贝文…...

代码随想录Day 45|leetcode题目:115.不同的子序列、583. 两个字符串的删除操作、72. 编辑距离

提示&#xff1a;DDU&#xff0c;供自己复习使用。欢迎大家前来讨论~ 文章目录 题目题目一&#xff1a; 115.不同的子序列解题思路&#xff1a;1. 确定dp数组&#xff08;dp table&#xff09;以及下标的含义2. 确定递推公式3. dp数组如何初始化4. 确定遍历顺序5. 举例推导dp数…...

浮点数在内存中的存储详解(超详细)

目录 1. 浮点数存储规则 2. IEEE754规定&#xff1a; 3. 关于M的说明&#xff1a; 4. 关于E的说明&#xff1a; 5. 关于S的说明&#xff1a; 6.浮点数从内存中取出&#xff08;三种情况&#xff09; 情况1&#xff1a;E不全为0或不全为1 情况2&#xff1a;E全为0 情况3&a…...

Maven下载安装

下载 下载地址&#xff1a;Maven – Download Apache Maven 选择合适的版本进行下载 windows&Linux安装 1, 解压apache-maven-3.6.1.rar即安装完成 2&#xff0c; 配置环境变量MAVEN_HOME为安装路径&#xff0c;并将MAVEN_HOME的bin目录配置到PATH下 3&#xff0c;…...

Qt:Q_GLOBAL_STATIC实现单例(附带单例使用和内存管理)

前言 本文主要写Q_GLOBAL_STATIC实现单例以及单例的释放&#xff0c;网上很多教程只有单例的创建&#xff0c;但是并没有告诉我们单例的内存管理&#xff0c;这就很头疼。 正文 使用 Qt 的 Q_GLOBAL_STATIC // Singleton.h #ifndef SINGLETON_H #define SINGLETON_H#includ…...

URL.createObjectURL 与 FileReader:Web 文件处理两大法宝的对比

URL.createObjectURL 与 FileReader&#xff1a;Web 文件处理两大法宝的对比 在Web开发中&#xff0c;处理用户上传的文件是一项常见且重要的任务。URL.createObjectURL和FileReader是两种常用于此目的的Web API&#xff0c;它们各有特点&#xff0c;适用于不同的场景。本文将…...

零基础考过软考信息系统项目管理师经验分享

选择适合的课程&#xff1a;如果你是零基础&#xff0c;建议找一些专门针对新手的课程&#xff0c;讲解通俗易懂。 刷题至关重要&#xff1a;软考的题库很庞大&#xff0c;多做题是必须的。 做好笔记和复习&#xff1a;上课时要做好笔记&#xff0c;课后及时复习&#xff0c;…...

机器学习课程学习周报十二

机器学习课程学习周报十二 文章目录 机器学习课程学习周报十二摘要Abstract一、机器学习部分1.1 fGAN: General Framework of GAN1.2 CycleGAN1.3 Auto-Encoder1.4 概率论复习&#xff08;一&#xff09; 总结 摘要 本周的学习内容涵盖了fGAN框架、CycleGAN、自编码器以及概率…...

python多线程程序设计 之二

python多线程程序设计 之二 线程同步机制lock对象acquirereleaselocked RLock对象条件变量条件变量应用实列实列代码 线程同步机制 lock对象 原语锁是一种同步原语&#xff0c;锁定时不属于特定线程。在Python中&#xff0c;它是目前可用的最低级别的同步原语&#xff0c;由_…...

k8s用StatefulSet部署redis

redis-config.yaml &#xff08;配置文件&#xff09; apiVersion: v1 kind: ConfigMap metadata:name: redis-config data:redis.conf: |# Redis general configuration​ bind 0.0.0.0 ​ protected-mode no ​ port 6379 ​ dir /data ​ appendonly yesse…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成&#xff0c;核心是利用 HTTP 协议的 Range 请求头指定下载范围&#xff1a; 实现原理 Range 请求头&#xff1a;向服务器请求文件的特定字节范围&#xff08;如 Range: bytes1024-&#xff09; 本地文件记录&#xff1a;保存已…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式&#xff0c;然后找到相应的网卡&#xff08;可以查看自己本机的网络连接&#xff09; windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置&#xff0c;选择刚才配置的桥接模式 静态ip设置&#xff1a; 我用的ubuntu24桌…...