当前位置: 首页 > 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…...

Virtuoso ADE L仿真结果分析实战:用Calculator快速提取带宽、相位裕度和噪声

Virtuoso ADE L仿真结果深度解析&#xff1a;从波形到关键指标的实战技巧 面对仿真完成后满屏的波形曲线&#xff0c;许多工程师常陷入"数据丰富但信息匮乏"的困境。本文将聚焦两级运放案例&#xff0c;演示如何用Calculator函数精准提取GBW、相位裕度、噪声谱密度等…...

OpCore-Simplify:黑苹果智能配置工具如何化繁为简?

OpCore-Simplify&#xff1a;黑苹果智能配置工具如何化繁为简&#xff1f; 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 为什么黑苹果配置总是让人望…...

构建一个抗揍的 Go TCP 聊天服务:异常兜底与防御性编程实践

构建一个抗揍的 Go TCP 聊天服务&#xff1a;异常兜底与防御性编程实践 在用 Go 实现一个简单的 TCP 聊天室时&#xff0c;实现“上线、下线、广播、私聊”等功能并不难。但如果要把它放到公网&#xff0c;面对真实网络环境中的网络抖动、恶意攻击&#xff08;如超长消息洪水、…...

家庭物联网中枢:OpenClaw+Phi-3-vision实现智能家居视觉控制

家庭物联网中枢&#xff1a;OpenClawPhi-3-vision实现智能家居视觉控制 1. 为什么需要本地化的智能家居方案 去年装修新房时&#xff0c;我面临一个两难选择&#xff1a;要么使用成熟的云端智能家居平台&#xff0c;牺牲部分隐私&#xff1b;要么完全手动控制&#xff0c;失去…...

STM32标准库开发入门与GPIO控制实战

1. 从点灯开始&#xff1a;STM32标准库开发入门指南 作为一名嵌入式开发者&#xff0c;我始终记得第一次点亮LED时的兴奋感。那闪烁的小灯不仅标志着程序的成功运行&#xff0c;更代表着嵌入式世界的入门仪式。本文将带你从最基础的STM32标准库开发入手&#xff0c;逐步深入理解…...

计算机毕业设计:Python出行数据智能分析与预测平台 Django框架 可视化 数据分析 PyEcharts 交通 深度学习(建议收藏)✅

博主介绍&#xff1a;✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久&#xff0c;选择我们就是选择放心、选择安心毕业✌ > &#x1f345;想要获取完整文章或者源码&#xff0c;或者代做&#xff0c;拉到文章底部即可与…...

3大优势!Scarab模组管理工具使用技巧:从新手到高手的进阶指南

3大优势&#xff01;Scarab模组管理工具使用技巧&#xff1a;从新手到高手的进阶指南 【免费下载链接】Scarab An installer for Hollow Knight mods written in Avalonia. 项目地址: https://gitcode.com/gh_mirrors/sc/Scarab 你是否在安装空洞骑士模组时遇到过文件路…...

生态廊道构建实战指南(1)—Linkage Mapper与Circuitscape环境部署详解

1. 生态廊道构建工具入门指南 第一次接触生态廊道分析的朋友可能会被各种专业术语吓到&#xff0c;其实没那么复杂。简单来说&#xff0c;Linkage Mapper和Circuitscape就是帮我们在数字地图上找出动物迁徙"高速公路"的神器。想象一下&#xff0c;你是一位城市规划师…...

告别重复劳动,用快马ai为centos7生成自动化运维脚本提升工作效率

告别重复劳动&#xff0c;用快马AI为CentOS7生成自动化运维脚本提升工作效率 作为一名长期和CentOS7打交道的运维人员&#xff0c;我深刻体会到日常工作中那些重复性配置任务有多耗费时间。直到最近尝试用InsCode(快马)平台的AI生成功能&#xff0c;才发现原来这些繁琐操作都能…...

基于SpringBoot+Vue的Web在线考试系统管理系统设计与实现【Java+MySQL+MyBatis完整源码】

摘要 随着信息技术的快速发展&#xff0c;传统线下考试模式逐渐暴露出效率低下、管理成本高、易受人为干扰等问题。在线考试系统因其高效、灵活、可扩展的特性&#xff0c;成为教育信息化改革的重要方向。尤其在新冠疫情背景下&#xff0c;远程教育和无接触考试需求激增&#x…...