-
购买华为云GaussDB实例是企业级数据库服务的关键步骤,需结合业务场景(如OLTP、OLAP、HTAP)选择合适的引擎类型,并配置实例参数。以下是详细购买流程与关键配置指南,覆盖新手需关注的核心环节。一、前置条件:准备华为云账号购买前需注册并实名认证华为云账号(个人/企业均可),且账号需完成企业实名认证(部分企业级服务需此条件)。注册地址:华为云官网实名认证:登录后进入账号中心,按指引完成认证。二、购买入口:找到GaussDB服务登录华为云控制台,点击顶部导航栏的“服务列表”,搜索并进入“关系型数据库”服务(或直接访问GaussDB控制台)。在服务首页,选择目标引擎(如GaussDB(for openGauss)或GaussDB(for MySQL)),点击“立即购买”。三、核心配置步骤:按需选择参数购买流程需依次完成地域/可用区、引擎版本、实例规格、网络配置、存储与备份、安全设置等关键步骤。以下是各环节的详细说明:1. 地域与可用区选择地域:选择离业务用户最近的地域(如“华北-北京四”),降低网络延迟。可用区(AZ):单可用区:适合测试或对容灾要求低的场景(成本低)。多可用区(推荐生产环境):主备节点分布在不同可用区,提升高可用性(需额外支付跨AZ网络费用)。注:GaussDB分布式版本(如HTAP场景)需至少3个可用区部署。2. 引擎版本与类型选择根据业务需求选择引擎类型(华为云提供多种GaussDB变种):引擎类型 适用场景 兼容性GaussDB(for openGauss) 高并发OLTP、HTAP混合负载 兼容openGauss/PostgreSQLGaussDB(for MySQL) 传统MySQL业务迁移,需高度兼容MySQL语法 兼容MySQL 5.7/8.0GaussDB(for Cassandra) 高吞吐、低延迟的NoSQL场景(宽表存储) 兼容Cassandra协议新手推荐优先选择GaussDB(for openGauss)(功能全面,支持分布式)或GaussDB(for MySQL)(迁移成本低)。3. 实例规格配置(关键性能参数)实例规格决定了计算、存储能力,需根据业务负载(QPS、数据量、并发连接数)选择。节点数:单节点:测试或小型业务(≤1000 QPS)。多节点(3/5节点):生产环境推荐,通过分布式架构提升读写性能与容灾能力。CPU与内存:OLTP(事务型):优先选择高CPU(如16核)、中等内存(64GB),满足高并发连接需求。OLAP(分析型):优先选择大内存(128GB+)、多核CPU,加速复杂查询的向量化计算。存储容量:按需选择(如100GB~10TB),支持弹性扩容(存储不足时可在线升级,无需停机)。存储类型:默认SSD(高性能),适合高IO场景;若成本敏感可选择高效云盘(性能略低)。示例:10万级日活的电商订单系统,建议选择3节点(8核CPU/256GB内存/2TB SSD)。4. 网络配置VPC(虚拟私有云):选择业务所在的VPC(若未创建需先新建),确保数据库与应用在同一VPC内(或通过VPN/专线互通)。子网:选择VPC下的子网(需与应用的子网在同一区域,且路由可达)。安全组:默认安全组会开放数据库端口(如GaussDB(for openGauss)默认5432端口),但生产环境建议自定义安全组,仅允许应用服务器IP访问(限制公网暴露风险)。示例规则:允许源IP为192.168.1.0/24的TCP 5432端口访问。5. 存储与备份策略备份保留期:默认7天(可延长至30天),生产环境建议开启自动备份(每日全量备份+实时日志备份)。日志备份:开启后支持时间点恢复(PITR),可在误操作后恢复至任意时间点(如最近30分钟内的状态)。6. 安全设置管理员密码:设置强密码(包含字母、数字、符号,长度≥8位),避免使用弱密码。加密功能:传输加密:默认启用SSL加密(连接时需指定sslmode=require)。存储加密:可选开启(基于KMS密钥管理服务),保护静态数据安全。7. 计费方式选择包年包月:长期使用更划算(折扣力度大),适合业务稳定的生产环境。按需付费:灵活试用或短期项目,按实际使用时长计费(单价高于包年包月)。 注:部分引擎支持“预留实例券”(长期合约优惠)或“资源包”(批量购买折扣),可降低长期成本。四、确认订单与支付配置完成后,系统会显示预估费用(可点击“费用详情”查看明细)。确认无误后提交订单,选择支付方式(华为云余额、信用卡、企业账户等)完成支付。五、购买后验证:连接与测试支付成功后,实例进入创建中状态(约5~10分钟,取决于规格)。创建完成后,需验证实例可用性:查看实例状态:在GaussDB控制台的“实例列表”中,确认状态为“运行中”。连接测试:使用psql(命令行)或DataGrip(图形化工具)连接,验证是否能正常登录。示例psql连接命令:psql -h <实例公网IP> -p 5432 -U <管理员用户名> -d postgres若连接失败,检查安全组规则、网络连通性(可通过telnet <IP> 5432测试端口是否开放)。基础操作验证:创建数据库、建表、插入/查询数据,确认功能正常。六、注意事项与最佳实践高可用配置:生产环境建议选择多可用区部署(主备节点跨AZ),避免单AZ故障导致业务中断。资源监控:通过GaussDB控制台的“监控”功能(或集成华为云CES监控),实时关注CPU、内存、连接数、QPS等指标,及时扩容。备份与恢复:定期测试备份恢复流程(如模拟误删表后通过备份恢复),确保数据安全。成本优化:非高峰时段可调整实例规格(如夜间降低CPU核数),利用华为云的“弹性伸缩”功能。对冷数据归档(如迁移至OBS对象存储),降低存储成本。总结购买GaussDB实例的核心是根据业务需求(负载类型、并发量、数据量)选择引擎、规格和配置,并通过合理的网络与安全设置保障稳定性。新手建议从测试环境起步(单节点、小规格),逐步熟悉后再扩展至生产环境。
-
GaussDB SQL调优深度指南:从执行计划到参数优化一、Query执行流程解析执行流程全景图mermaidgraph TDA[客户端发起请求] --> B(语法解析)B --> C(逻辑优化)C --> D(物理优化)D --> E(执行计划生成)E --> F(事务管理)F --> G(存储引擎操作)G --> H[结果返回]二、核心调优阶段详解解析与绑定优化问题定位:sql-- 启用详细解析日志 SET log_statement = 'all'; SET client_min_messages = 'debug1'; -- 查看解析树 EXPLAIN (VERBOSE, ANALYZE) SELECT * FROM orders WHERE create_time > '2023-01-01'; 优化策略:参数化改造:sql-- 原始动态SQL EXECUTE 'SELECT * FROM orders WHERE create_time > ''' || date_str || ''''; -- 优化后参数化 EXECUTE 'SELECT * FROM orders WHERE create_time > $1' USING date_val; 语法简化:sql-- 低效写法 SELECT * FROM (SELECT * FROM orders) AS subquery WHERE status = 'A'; -- 优化写法 SELECT * FROM orders WHERE status = 'A'; 逻辑优化策略典型问题诊断:sql-- 查看逻辑执行计划 EXPLAIN (ANALYZE, BUFFERS) SELECT a.id, b.name FROM table_a a JOIN table_b b ON a.fk = b.id WHERE a.create_time > NOW() - INTERVAL '7 days'; 物理优化关键点执行计划优化对比:sql-- 原始执行计划 QUERY PLAN: Seq Scan on orders (cost=0.00..10000.00 rows=1 width=128) -- 优化后执行计划 QUERY PLAN: Index Scan using idx_create_time on orders (cost=0.42..8.44 rows=1 width=128) 优化手段:索引策略:sql-- 复合索引创建 CREATE INDEX idx_order_filter ON orders (create_time DESC, status) INCLUDE (customer_id); -- 部分索引 CREATE INDEX idx_active_orders ON orders (id) WHERE status = 'ACTIVE'; 并行执行配置:sql-- 设置并行度 SET max_parallel_workers_per_gather = 4; -- 查看并行计划 EXPLAIN (ANALYZE, VERBOSE) SELECT /*+ parallel(4) */ SUM(amount) FROM sales; 三、内存与I/O调优内存参数调优公式textshared_buffers = 物理内存 × 25% work_mem = (总内存 - shared_buffers) / 并发连接数 × 0.8 maintenance_work_mem = 物理内存 × 5%I/O性能优化存储参数配置:sql-- 启用自动清理 ALTER TABLE orders SET ( autovacuum_enabled = true, toast.autovacuum_enabled = true, autovacuum_vacuum_scale_factor = 0.05 ); -- 设置填充因子 ALTER TABLE orders SET (fillfactor = 70); 四、典型场景优化实战场景1:大事务优化问题现象:sql-- 长事务检测 SELECT pid, age(clock_timestamp(), query_start), usename, query FROM pg_stat_activity WHERE state = 'active' AND now() - query_start > interval '5 minutes'; 优化方案:sql-- 分批次提交改造 DO $$ DECLARE batch_size INT := 10000; total_rows INT; BEGIN SELECT COUNT(*) INTO total_rows FROM large_table; FOR i IN 1..CEIL(total_rows/batch_size) LOOP UPDATE large_table SET status = 'processed' WHERE ctid BETWEEN ((i-1)*batch_size+1) AND (i*batch_size); COMMIT; PERFORM pg_sleep(0.1); END LOOP; END $$; 场景2:实时分析加速优化组合拳:sql-- 创建列存储表 CREATE TABLE iot_metrics ( time_bucket TIMESTAMP, device_id INT, value DOUBLE PRECISION ) WITH ( orientation = column, compression = medium, max_partition = 1024 ); -- 创建物化视图 CREATE MATERIALIZED VIEW mv_iot_summary REFRESH FAST ON DEMAND AS SELECT time_bucket, AVG(value) AS avg_value, MAX(value) AS max_value FROM iot_metrics GROUP BY time_bucket; -- 设置自动刷新策略 ALTER MATERIALIZED VIEW mv_iot_summary SET ( autovacuum_enabled = true, refresh_interval = '5m' ); 五、监控与验证体系性能指标监控模板sql-- 实时性能视图 SELECT pid, now() - query_start AS duration, state, wait_event_type, query FROM pg_stat_activity WHERE state != 'idle' ORDER BY duration DESC LIMIT 5; 六、最佳实践指南开发规范SQL编写准则:所有过滤条件必须使用索引字段避免在WHERE子句中使用函数结果集限制必须使用LIMIT索引设计原则:text选择性 < 5% → 不建立索引更新频繁字段 → 考虑部分索引高频查询字段 → 组合索引运维规范定期维护任务:bash# 每日凌晨执行 0 3 * * * psql -U postgres -c "VACUUM FULL ANALYZE;" # 每周日凌晨 0 2 * * 0 psql -U postgres -c "REINDEX DATABASE;" 通过系统化的调优实践,某电商平台实现了:秒杀场景QPS从12k提升至68k报表生成时间从分钟级降至秒级数据库连接池利用率稳定在92%建议建立完整的性能基线监控体系,结合AWR报告和EXPLAIN ANALYZE输出,形成持续优化的闭环机制。
-
GaussDB回调机制深度实践:从事件驱动到系统集成核心实现技术栈触发器回调开发sql-- 创建审计触发器回调 CREATE OR REPLACE FUNCTION audit_trigger() RETURNS TRIGGER AS $$ BEGIN INSERT INTO audit_log ( operation, table_name, user_name, exec_time ) VALUES ( TG_OP, TG_TABLE_NAME, current_user, current_timestamp ); RETURN NULL; END; $$ LANGUAGE plpgsql; CREATE TRIGGER audit_dml_trigger AFTER INSERT OR UPDATE OR DELETE ON orders FOR EACH ROW EXECUTE FUNCTION audit_trigger(); 事件通知回调sql-- 使用LISTEN/NOTIFY实现异步回调 LISTEN order_created; -- 发送通知 NOTIFY order_created, json_build_object( 'order_id', NEW.id, 'amount', NEW.amount )::text; 外部程序回调python# Python回调处理器示例 import psycopg2 import requests def db_callback(event): if event['type'] == 'order_created': payload = { 'order_id': event['data']['order_id'], 'callback_url': 'https://api.example.com/order' } response = requests.post( payload['callback_url'], json=payload, timeout=5 ) return response.json() def listen_for_events(): conn = psycopg2.connect(...) conn.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT) cur = conn.cursor() cur.execute("LISTEN order_created;") while True: conn.poll() while conn.notifies: notify = conn.notifies.pop(0) result = db_callback(json.loads(notify.payload)) print(f"Callback result: {result}") 高级应用场景实现双向回调系统集成mermaidsequenceDiagram participant App participant GaussDB participant ExternalService App->>GaussDB: 订阅order_created事件 GaussDB-->>App: 返回订阅确认 loop 事件发生 GaussDB->>App: 发送NOTIFY消息 App->>ExternalService: 调用REST API ExternalService-->>App: 返回处理结果 App->>GaussDB: 更新处理状态 end动态回调路由配置sql-- 创建回调路由表 CREATE TABLE callback_router ( event_type TEXT PRIMARY KEY, handler_function TEXT, retry_policy JSONB ); -- 动态调用处理器 DO $$ DECLARE router RECORD; BEGIN SELECT * INTO router FROM callback_router WHERE event_type = TG_EVENT; EXECUTE format('SELECT %I(%L)', router.handler_function, row_to_json(NEW)); END; $$ LANGUAGE plpgsql; 性能优化关键技术异步回调队列管理sql-- 使用内存队列提升吞吐量 CREATE EXTENSION pg_cron; -- 批量处理回调任务 CREATE OR REPLACE FUNCTION process_callbacks() RETURNS VOID AS $$ BEGIN PERFORM dblink_exec( 'dbname=gaussdb user=admin', 'COPY (SELECT * FROM callback_queue) TO PROGRAM ''curl -X POST ...''' ); DELETE FROM callback_queue WHERE processed_at IS NOT NULL; END; $$ LANGUAGE plpgsql; -- 设置定时任务 SELECT cron.schedule('*/1 * * * *', $$SELECT process_callbacks()$$); 回调限流策略sql-- 使用令牌桶算法控制速率 CREATE TABLE callback_limits ( bucket_id TEXT PRIMARY KEY, tokens INTEGER DEFAULT 100, last_refill TIMESTAMP ); -- 限流装饰器 CREATE OR REPLACE FUNCTION rate_limited_callback() RETURNS TRIGGER AS $$ BEGIN PERFORM refill_tokens(); IF (SELECT tokens FROM callback_limits WHERE bucket_id = 'default') > 0 THEN UPDATE callback_limits SET tokens = tokens - 1; RETURN NEW; ELSE RAISE NOTICE 'Rate limit exceeded'; RETURN NULL; END IF; END; $$ LANGUAGE plpgsql; 安全防护体系回调验证机制sql-- 数字签名验证 CREATE OR REPLACE FUNCTION verify_signature( payload JSONB, signature TEXT ) RETURNS BOOLEAN AS $$ DECLARE secret_key TEXT := 'your-secret-key'; BEGIN RETURN pgcrypto.verify_hmac( signature, payload::TEXT, secret_key::BYTEA ); END; $$ LANGUAGE plpgsql; -- 回调处理器增强 DO $$ BEGIN IF verify_signature(event_data, event_signature) THEN PERFORM process_callback(event_data); ELSE RAISE EXCEPTION 'Invalid signature'; END IF; END; $$; 权限隔离模型sql-- 最小权限回调账户 CREATE ROLE callback_executor NOLOGIN; GRANT EXECUTE ON FUNCTION handle_callback() TO callback_executor; GRANT USAGE ON SCHEMA callbacks TO callback_executor; -- 使用SECURITY DEFINER函数 CREATE OR REPLACE FUNCTION handle_callback() RETURNS VOID AS $$ $$ LANGUAGE plpgsql SECURITY DEFINER; 监控诊断方案回调追踪模板sql-- 启用详细日志记录 ALTER SYSTEM SET log_statement = 'all'; ALTER SYSTEM SET log_min_duration_statement = 100; -- 记录>100ms回调 -- 回调性能视图 CREATE VIEW callback_metrics AS SELECT event_type, count(*) AS total_calls, avg(execution_time) AS avg_time, max(execution_time) AS max_time, (SELECT COUNT(*) FROM callback_errors) AS errors FROM callback_logs GROUP BY event_type; 异常处理流程mermaidgraph TD A[回调执行] --> B{成功?} B -->|是| C[更新状态为COMPLETED] B -->|否| D[记录错误日志] D --> E{重试次数<3?} E -->|是| F[延迟重试] E -->|否| G[发送告警通知] 典型案例:电商订单系统改造背景:某电商平台需要实现订单状态变更自动通知供应链系统回调方案:sql-- 创建订单状态变更触发器 CREATE TRIGGER order_status_trigger AFTER UPDATE OF status ON orders FOR EACH ROW WHEN (NEW.status = 'SHIPPED') EXECUTE FUNCTION notify_supply_chain(); -- 回调处理器实现 CREATE OR REPLACE FUNCTION notify_supply_chain() RETURNS TRIGGER AS $$ DECLARE payload JSONB; BEGIN payload := json_build_object( 'order_id', NEW.id, 'sku_list', array_agg(DISTINCT item_sku), 'total_weight', SUM(item_weight) ); PERFORM pg_notify( 'supply_chain_channel', encode(payload::BYTEA, 'escape') ); RETURN NULL; END; $$ LANGUAGE plpgsql; 实施效果:供应链响应时间从分钟级降至秒级减少人工干预操作85%异常订单处理自动化率达到92%最佳实践指南设计原则:单回调处理时间<200ms重试次数不超过3次保持幂等性设计监控基线:text| 指标 | 正常阈值 | 告警阈值 | |---------------------|---------------|---------------| | 回调成功率 | >99.5% | <99% | | 平均响应时间 | <150ms | >500ms | | 队列积压量 | <1000 | >5000 | 版本兼容策略:使用语义化版本控制保留至少两个历史版本提供回滚机制通过合理应用GaussDB的回调机制,某金融机构实现了:实时风险监控响应速度提升6倍自动化交易对账覆盖率98%系统间集成成本降低70%建议重点关注异步处理和安全验证机制,在保证系统稳定性的前提下实现高效回调交互。作者:兮酱的探春
-
GaussDB数据库压缩不应只是压缩率在企业核心业务支撑的数据库系统使用场景中,开发人员必须全方位监控数据库的运行状况。对于存储资源利用率的挑战,一个直观的解决方案是提升存储系统压缩率,以实现存储空间的节省,或在有限的资源下存储更多的业务数据。然而,数据的压缩和解压过程可能会导致访问延迟、内存膨胀或磁盘占用率的剧烈波动,从而增加系统运行的风险。压缩和解压操作会消耗CPU资源,进而对系统性能产生影响。而数据在压缩前后硬盘和内存中的大小差异,也可能给数据库内存管理带来风险。因此,从业务系统和数据库的整体角度出发,如何平衡压缩率和系统性能,成为应对业务快速增长带来的存储问题的关键难点之一。在面对需要分布式改造的超大单表,或需要频繁扩容的分布式系统中的重量级数据库表时,不仅需要关注上述性能指标和系统稳定性,还需要考虑提高资源利用率的方案是否会带来额外的业务改造成本。此外,考虑到数据的生命周期,业务系统中提高资源利用率的方案不应因数据的新旧而产生交叉影响。由于不同库表的生命周期特点各异,压缩策略也应相应地采取差异化的处理。
-
特性简介GaussDB数据脱敏是行之有效的数据库隐私保护方案之一,可以在一定程度上限制非授权用户对隐私数据的窥探。动态数据脱敏机制是一种通过定制化制定脱敏策略从而实现对隐私数据保护的一种技术,可以有效地在保留原始数据的前提下解决非授权用户对敏感信息的访问问题。当管理员指定待脱敏对象和定制数据脱敏策略后,用户所查询的数据库资源如果关联到对应的脱敏策略时,则会根据用户身份和脱敏策略进行数据脱敏,从而限制非授权用户对隐私数据的访问。客户价值GaussDB数据隐私保护是数据库安全所需要具备的安全能力之一,可以在一定程度上限制非授权用户对隐私数据的访问,保证隐私数据安全。动态数据脱敏机制可以通过配置脱敏策略实现对指定数据库资源信息的隐私保护,另一方面,脱敏策略的配置也具有一定的灵活性,可以仅针对特定用户场景实现有针对性的隐私保护能力。特性描述动态数据脱敏机制基于资源标签进行脱敏策略的定制化,可根据实际场景选择特定的脱敏方式,也可以针对某些特定用户制定脱敏策略。一个完整的脱敏策略创建的SQL语法如下所示:CREATE RESOURCE LABEL label_for_creditcard ADD COLUMN(user1.table1.creditcard); CREATE RESOURCE LABEL label_for_name ADD COLUMN(user1.table1.name); CREATE MASKING POLICY msk_creditcard creditcardmasking ON LABEL(label_for_creditcard); CREATE MASKING POLICY msk_name randommasking ON LABEL(label_for_name) FILTER ON IP(local), ROLES(dev); 其中,label_for_creditcard和msk_name为本轮计划脱敏的资源标签,分别包含了两个列对象;creditcardmasking、randommasking为预置的脱敏函数;msk_creditcard定义了所有用户对label_for_creditcard标签所包含的资源访问时做creditcardmasking的脱敏策略,不区分访问源;msk_name定义了本地用户dev对label_for_name标签所包含的资源访问时做randommasking的脱敏策略;当不指定FILTER对象时则表示对所有用户生效,否则仅对标识场景的用户生效。当前,预置的脱敏函数包括:脱敏函数名示例creditcardmasking'4880-9898-4545-2525' 将会被脱敏为 'xxxx-xxxx-xxxx-2525',该函数仅对后4位之前的数字进行脱敏basicemailmasking'abcd@gmail.com' 将会被脱敏为'xxxx@gmail.com', 对出现第一个'@'之前的文本进行脱敏fullemailmasking'abcd@gmail.com' 将会被脱敏为 'xxxx@xxxxx.com',对出现最后一个'.'之前的文本(除'@'符外)进行脱敏alldigitsmasking'alex123alex' 将会被脱敏为 'alex000alex', 仅对文本中的数字进行脱敏shufflemasking'hello word' 将会被随机打乱顺序脱敏为 'hlwoeor dl', 该函数通过字符乱序排列的方式实现,属于弱脱敏函数,语义较强的字符串不建议使用该函数脱敏。randommasking'hello word' 将会被脱敏为 'ad5f5ghdf5',将文本按字符随机脱敏regexpmasking需要用户顺序输入四个参数,reg为被替换的字符串,replace_text为替换后的字符串,pos为目标字符串开始替换的初始位置,为整数类型,reg_len为替换长度,为整数类型。reg、replace_text可以用正则表达,pos如果不指定则默认为0,reg_len如果不指定则默认为-1,即pos后所有字符串。如果用户输入参数与参数类型不一致,则会使用maskall方式脱敏。CREATE MASKING POLICY msk_creditcard regexpmasking('[\d+]', 'x', 5, 9 ) ON LABEL(label_for_creditcard);'4880-9898-4545-2525' 将会被脱敏为 '4880-xxxx-xxxx-2525'maskall'4880-9898-4545-2525' 将会被脱敏为 'xxxxxxxxxxxxxxxxxxx'每个脱敏函数规格如下:脱敏函数名支持的数据类型creditcardmaskingBPCHAR, VARCHAR, NVARCHAR, TEXT(注:仅针对信用卡格式的文本类数据)basicemailmaskingBPCHAR, VARCHAR, NVARCHAR, TEXT(注:仅针对email格式的文本类型数据)fullemailmaskingBPCHAR, VARCHAR, NVARCHAR, TEXT(注:仅针对email格式的文本类型数据)alldigitsmaskingBPCHAR, VARCHAR, NVARCHAR, TEXT(注:仅针对包含数字的文本类型数据)shufflemaskingBPCHAR, VARCHAR, NVARCHAR, TEXT(注:仅针对文本类型数据)randommaskingBPCHAR, VARCHAR, NVARCHAR, TEXT(注:仅针对文本类型数据)maskallBOOL, RELTIME, TIME, TIMETZ, INTERVAL, TIMESTAMP, TIMESTAMPTZ, SMALLDATETIME, ABSTIME,TEXT, BPCHAR, VARCHAR, NVARCHAR2, NAME, INT8, INT4, INT2, INT1, NUMRIC, FLOAT4, FLOAT8, CASH对于不支持的数据类型,默认使用maskall函数进行数据脱敏,若数据类型不属于maskall支持的数据类型则全部使用数字0进行脱敏,如果脱敏列涉及隐式转换,则结果以隐式转换后的数据类型为基础进行脱敏。另外需要说明的是,如果脱敏策略应用到数据列并生效,此时对该列数据的操作将以脱敏后的结果为基础而进行。动态数据脱敏适用于和实际业务紧密相关的场景,根据业务需要为用户提供合理的脱敏查询接口,以避免通过撞库而获取原始数据。特性增强无。特性约束动态数据脱敏策略需要由具备POLADMIN或SYSADMIN属性的用户或初始用户创建,普通用户没有访问安全策略系统表和系统视图的权限。动态数据脱敏只在配置了脱敏策略的数据表上生效,而审计日志不在脱敏策略的生效范围内。在一个脱敏策略中,对于同一个资源标签仅可指定一种脱敏方式,不可重复指定。不允许多个脱敏策略对同一个资源标签进行脱敏,除以下脱敏场景外:使用FILTER指定策略生效的用户场景,包含相同资源标签的脱敏策略间FILTER生效场景无交集,此时可以根据用户场景明确辨别资源标签被哪种策略脱敏。Filter中的APP项建议仅在同一信任域内使用,由于客户端不可避免的可能出现伪造名称的情况,该选项使用时需要与客户端联合形成一套安全机制,减少误用风险。一般情况下不建议使用,使用时需要注意客户端仿冒的风险。对于带有query子句的INSERT或MERGE INTO操作,如果源表中包含脱敏列,则上述两种操作中插入或更新的结果为脱敏后的值,且不可还原。在内置安全策略开关开启的情况下,执行ALTER TABLE EXCHANGE PARTITION操作的源表若在脱敏列则执行失败。对于设置了动态数据脱敏策略的表,需要谨慎授予其他用户对该表的trigger权限,以免其他用户利用触发器绕过脱敏策略。最多支持创建98个动态数据脱敏策略。仅支持使用上述七种预置脱敏策略。仅支持对只包含COLUMN属性的资源标签做脱敏。仅支持对基本表的列进行数据脱敏。仅支持对SELECT查询到的数据进行脱敏。FILTER中的IP地址以ipv4为例支持如下格式。ip地址格式示例单ip127.0.0.1掩码表示ip127.0.0.1|255.255.255.0cidr表示ip127.0.0.1/24ip区间127.0.0.1-127.0.0.5依赖关系无。
-
GaussDB- OCK加速数据传输特性简介使用RDMA进行节点间的数据和消息传输,提高备机一致性读的性能。客户价值随着数据规模和数据节点的增加,节点之间的网络数据传输需要消耗很多的时间,影响到客户端到端的数据库体验,利用RDMA特性,可显著降低网络时延,大幅度提升备机一致性读的性能。特性描述OCK加速数据传输是OCK基于高性能RDMA网络实现的轻量级RPC框架, 用于替代原有的TCP/IP消息传输模块,负责在节点之间传送数据和各类消息,构建us级的竞争力,显著降低CPU资源开销,降低网络时延,提升备机一致性读的性能。特性增强无。特性约束数据库服务器必须使用CX5网卡。依赖关系资源池化特性。
-
【话题交流】大家现在的项目都转高斯数据库了吗?随着国产xinchuang的推进,大多数国企进行国产化替代,你们的数据库都改为国产的了吗,用的高斯还是人大金仓还是达梦?
-
本月围绕数据库Mysql与 Redis与MongDB应用和理论,撰写了 多篇技术博客,内容涵盖原理讲解、部署实操、架构对比及高阶用法,适合有一定开发经验的同学系统性提升。具体内容如下:MongoDB Schema设计进阶https://bbs.huaweicloud.com/forum/thread-0242186151481963009-1-1.htmlRedis缓存三大经典问题:穿透、击穿、雪崩的防御体系与实践方案https://bbs.huaweicloud.com/forum/thread-0270186151287006008-1-1.htmlMySQL Online DDL演进https://bbs.huaweicloud.com/forum/thread-0270186149379800007-1-1.htmlMongoDB分片集群设计精要https://bbs.huaweicloud.com/forum/thread-0245186146589994004-1-1.htmlRedis Pipeline与事务https://bbs.huaweicloud.com/forum/thread-0270186139908337005-1-1.htmlGaussDB全局事务管理https://bbs.huaweicloud.com/forum/thread-0265186139485857004-1-1.htmlMySQL主从复制延迟:深度剖析与全方位优化指南https://bbs.huaweicloud.com/forum/thread-0270186139258938004-1-1.htmlMongoDB聚合框架https://bbs.huaweicloud.com/forum/thread-02111186137859433003-1-1.htmlRedis内存淘汰策略深度解析https://bbs.huaweicloud.com/forum/thread-0270186135899969003-1-1.html📌 本月技术内容聚焦 Redis、Mysql、MongDB,既有底层原理的讲解,也有实战落地的操作方案,欢迎阅读、收藏、转发,如有问题欢迎留言交流,下月见!🚀
-
【技术干货】6月13日直播回顾丨HCCDA-GaussDB认证考试辅导 本次直播为HCCDA-GaussDB认证考试提供全面辅导,旨在帮助学员深入了解数据库技术原理与应用实践。我们将详细解析考试大纲,分享高效备考策略,并讲解关键知识点。 GaussDB入门级开发者认证分为理论考试和实验考试两部分,60分为通过。理论考试时间为60分钟,试题分为判断:单选:多选,比例为3:4:3(考试题量50);实验考试共120分钟,以GaussDB实例部署、数据导入、数据库连接配置、在Java代码程序中调用SQL语句实验为重点考点。直播链接:cid:link_0 Q:GaussDB默认的事务隔离级别是什么?A: GaussDB默认的事务隔离级别Read Committed(已提交读)。 Q:开启了三权分立后,系统管理员的权限被进行限制,具体是哪些权限被限制?A: ①系统管理员将不再具有CREATEROLE权限②系统管理员将不再具有AUDITADMIN权限③系统管理员只有对自己作为所有者的对象有权限 Q : copy工具适用的场景是什么?A: ①小数据量表以文本数据作为来源导入②小数量表的导出③查询结果集导出 Q:可以自己下载安装包么? A:可以自己下载JDBC驱动包。 Q:请问实验考试前是要自己配置环境吗? A:不需要,沙箱会预置gsql和ECS。 Q:哪个数据模型以树形结构来描述数据,并且数据结构简单清晰?A: 层次模型使用树形结构简单清晰。 Q:GaussDB支持的三权分立权限访问控制模型中的角色是?A:系统管理员、安全管理员、审计管理员。 Q:怎么获取考试券呢?A:可以关注开发者学堂官网,定期在官网上线活动。
-
最近系统经常出现事务超时等待,但是显示的锁全表语句不知道是如何产生的。
-
在Gaussdb的参数配置中,random_page_cost参数是设置随机扫描一个数据页的代价。这个代价的值应该参考了很久之前postgresql的参数值。这个值设置为4,而对应的顺序扫描页面的值seq_page_cost值是1。刚开始random_page_cost这个值设置为4的原因大概是基于HHD盘,随机扫描代价比较大的考虑。但是如今数据库应该很少用HHD盘的了。所以这个参数的初始值,是不是得进行修改。基于实际磁盘随机读和物理读的代价,修改得稍微比seq_page_cost的值大一点。1.1,1.2左右?这样可以让优化器正确的计算出实际上代价最小的路径。避免多余的消耗。
-
如下图,安装完TPOPS之后,检查安装包上传进度,结果任务中心啥也没有。安装包是上传成功了。添加主机的时候任务中心也没有数据,主机能初始化成功。请问我该怎么排查?
-
华为HDC2025大会发布的信息,你都有哪些感受
-
复杂一点的范围比较cid:link_5Analyze 使用功能cid:link_0统计信息分类cid:link_1采样方法cid:link_2自动收集场景cid:link_6LLVM 技术解析cid:link_7如何使用 LLVMcid:link_3LLVM 适用场景cid:link_8Shared nothing的分布式架构cid:link_9Stream 算子相关的节点cid:link_10向量化执行引擎详解cid:link_11执行框架cid:link_4向量化执行引擎的性能cid:link_12向量化的演进cid:link_13索引解析https://bbs.huaweicloud.com/forum/thread-0241186375247007007-1-1.html
-
索引能干什么呢?一言以蔽之:查询加速。常见的索引有下面几种:索引类型 描述 B-tree 行存默认使用的索引,综合性索引,特别适用于点查、主键Psort 列存默认使用的索引,存储空间小,导入性能影响小,查询提升效果比较中庸Gin基于 B-tree 树结构的倒排索引,存储被索引字段的 VALUE 或 VALUE 的元素,主要适用于数组过滤、全文检索的场景Gist 一个通用的索引接口,不同的类型支持不同的检索方式,主要适用于位置搜索Hash存储的是被索引字段 VALUE 的哈希值,只支持等值查询,特别适用于字段VALUE 非常长的场景特殊类型 表达式索引、部分索引、唯一索引B-tree 是平衡树,有序存储索引 KEY 值和 TID;对于索引上的过滤条件,通过 KEY 快速找到对应的叶子节点,然后再通过 TID找到实际记录;索引中的数据以非递减的顺序存储(页之间以及页内都是这种顺序),同级的数据页由双向链表连接;支持单列索引和复合(多列)索引,多列复合索引适用于多列组合查询,B-tree索引对于查询条件的顺序有要求;B-tree 索引可以处理等值和范围查询;索引页面不存储事务信息。Psort 索引本身是个列存表,包含索引列和 tid,在索引列上局部排序,利用MIN/MAX 块过滤加速 TID 获取;Psort 索引本身有可见性,但删除、更新数据不会作用到 Psort 索引;Psort 索引更适合做范围过滤,点查询速度较差;批量导入场景下有效,对于单条导入无效。如对于查询“select * from test1 where lower(col1) = ‘value’;”可以建立在Lower 表达式之上的索引“create index on test1(lower(col1));”,后续对于类似在lower(col1)表达式上的过滤条件,就可以直接使用这个索引加速,对于其他表达式该索引不会对查询生效。但需要注意的是:索引表达式的维护代价较为昂贵,因为在每一个行被插入或更新时都得为它重新计算相应的表达式。
上滑加载中
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
回顾中
热门标签