首页 文章 精选 留言 我的

精选列表

搜索[第四期热点征文-C],共10016篇文章
优秀的个人博客,低调大师

【征文】我把一次锁排查的踩坑交给 WorkBuddy

# 我把一次锁排查的踩坑交给 WorkBuddy,它给我写下了三个"视图陷阱" > 《WorkBuddy 行业应用指南》投稿 · 完整案例 > 行业与岗位:数据库运维(DBA) / 知识沉淀与团队交接 > 工具:WorkBuddy(产出物为自建 Skill `dm-lock-forensics`) --- ![达梦DM9封面设计 (5).jpg](https://developer.qcloudimg.com/http-save/yehe-11546919/8d9914cb2a5dc69ae4a8af0b591d7acd.jpg) ## 〇、自报家门 我是干数据库运维的,圈内人叫我"数据库界华少"。 干了几年 DBA 我发现一个很现实的问题:**锁排查这件事,会的人和不 会的人,效率差十倍。** 会的人看一眼 `sys_locks` 心里有数,不会的人在十个视图里反复横跳,最后靠猜。 更扎心的是:**会的那个人一旦休假,整个团队就卡住。** 锁排查的经验,长期装在少数人的脑子里,散不掉。 这一篇要讲的,就是我如何把**一次锁排查的实战经验,交给 WorkBuddy 固化成了一个团队可复用的操作手册(Skill)**——不是让它替我查锁,而是让它**替我把经验沉淀下来**。 --- ## 一、起因:那次排查,我踩了三个坑 2026-09-24,我在达梦 DM9 上排查一个"会话卡住不返回"的问题。折腾了一圈,事后复盘,我踩了三个坑,而且**三个坑都不是 SQL 语法错,是"你查错地方了"**: **坑一:按 `TABLE_ID` 找行锁,根本找不出来。** 演示表的 `OBJECT_ID` 是 `150994945`,我顺手 `where table_id = 150994945` 去查,返回 3 行——**全是 `OBJECT` 型意向锁(IS / IX),一行行锁都没有**。后来才知道,行锁是以 `LTYPE = 'TID'` 存在的,它的 `TABLE_ID` 记的是**另一个值**(实测是 `1013`),`ROW_IDX` 和 `TID` 两列才是"哪一行"。我盯着对象 ID 翻来翻去,方向从第一步就错了。 **坑二:满屏32 行锁,真正有用的只有 1 行。** 把 `V$LOCK` 全量拉出来 32 行,逐行看才发现构成是这样的: | 锁形态 | 模式 | BLOCKED | 行数 | |---|---|---|---| | OBJECT(意向锁) | IS / IX | 0 | 29 | | TID(行锁) | X | 0 | 2 | | **TID(行锁)** | **X** | **1** | **1** | **29 行是事务在系统对象上登记的"我要碰这个对象",属正常。** 只有那 1 行 `BLOCKED = 1` 立着,才是线索。新手对着这 32 行做数据分析,做到天亮也找不出根因。 **坑三:会话 `STATE = ACTIVE`,不代表它没在等锁。** 挂在锁上的那个会话,`V$SESSIONS.STATE` 依然显示 `ACTIVE`。判断"到底有没有等锁",**要看 `V$TRXWAIT`,不能看 `STATE`**。更隐蔽的是:`SQL_TEXT` 存的是会话"当前正在执行"的语句——如果你把锁链查询跑在那个持锁的会话里,`阻塞方SQL` 那一格会显示成**你这条查询自己**。现场就"失真"了。 **这三个坑的共同点:文档上查不到,全靠踩。** 达梦的官方手册不会告诉你"按 TABLE_ID 找行锁会漏",只会告诉你字段名。 --- ## 二、输入材料:给 WorkBuddy 喂什么 这次喂的不是日志,是**我自己的踩坑记录 + 实测输出**: | 输入材料 | 内容 | 用在哪 | |---|---|---| | **原始报错与困惑** | 按 `TABLE_ID` 查不到行锁的疑问、`sessid()` 函数报错 `[-2207]` | 让它复核我的判断对不对 | | **实测输出样本** | 锁链查询的真实一行输出、`V$LOCK` 的 32 行构成 | 让它基于真实数据归纳规律 | | **参数实测读数** | `V$DM_INI` 里 52 个锁相关参数逐条筛、`V$DYNAMIC_TABLES` 捞出的 24 个锁相关视图 | 让它自己确认"到底有没有行锁等待超时这个参数" | | **探字典习惯** | 我常用的两条"不背名字、让库自报清单"的查询 | 作为方法论骨架 | **为什么要喂这些?** 因为这三个坑的本质是"**知识不在文档里,在现场**"。如果我只丢一句"帮我整理下达梦锁排查方法",它会给我一篇教科书——字段列表、语法说明,看起来很全,但**一个坑都不会提**。 **喂实测输出,它才能归纳出陷阱。** --- ## 三、WorkBuddy 配置:让沉淀有章法 我把这次沉淀当成一个**有验收标准的工程任务**来配,而不是随口聊: | 能力层级 | 用法 | 目的 | |---|---|---| | **专家** | 数据库优化专家 | 定分析框架与知识组织方式 | | **角色设定** | 资深 DBA,知识沉淀负责人 | 视角从"解一道题"转成"让别人也能解" | | **硬性约束** | 只写实测过的、**报错就标注不确定**、给 SQL 必须能照抄 | 防止它编造版本差异 | | **产出形态** | 结构化 Skill(四视图分工 → 陷阱 → SQL → 实测数字 → 纪律) | 团队可检索、可复用 | | **可照抄要求** | 关联键、join 条件、函数名一律标注"实测确认,别猜" | 新人复制就能跑 | **关键的一条约束是"报错就换一个,不要背"。** 我让它写"取会话 ID"的函数时明确要求:版本不同函数名可能不同,**报错就标注不确定**。结果它把三种写法和我实测的成功/失败都列了出来: ``` 取当前会话 ID 的写法(实测): select sessid(); ✅ 能跑 select sf_get_session_id(); ❌ [-2207] select sf_get_autocommit(); ❌ [-2207] → 这类函数在不同版本里名字可能不一样,报错就换一个,不要背。 ``` **这种"把自己踩过的错也如实标出来"的做法,是沉淀材料里最值钱的部分**——比一串永远正确的文档更可信。 --- ## 四、操作步骤:四步,把经验变成 Skill ### 第 1 步|先投喂,再让它复述 我把上面的实测输出、参数读数、三个困惑一次性喂进去,第一句话不是"帮我写文档",而是: ``` 你是资深 DBA。下面是我在达梦 DM9 上实测的锁排查过程和踩到的困惑。 请先复述:你认为我踩了哪几个坑,每个坑的判断依据是什么。 先别急着给方案,先确认我们看到的是不是同一件事。 ``` **为什么要让它先复述?** 因为判断错误的根源往往不是它不懂,是**它以为我懂了**。让它先用自己的话把三个坑说出来,我一眼就能看出它有没有真的读懂。 ### 第 2 步|把"经验"强制成"可执行" 复述无误后,第二句要求变了: ``` 把上面的内容整理成一个可复用的 Skill,结构固定为: ① 四视图分工表(管什么 + 关键字段)② 核心可照抄 SQL(含实测关联键) ③ 视图陷阱(每条写清"错在哪 + 正确姿势")④ 实测数字表 ⑤ 安全造锁手法 ⑥ 探字典习惯 ⑦ 读数纪律。 凡是你没有实测过的,一律标注"未核实",不许推测。 ``` **"不许推测"这条约束是灵魂。** DBA 最怕的不是踩坑,是**被一篇写得漂亮但字段名是编的文档坑**。 ### 第 3 步|造锁验证:安全地做一次并发实验 光有输出还不够,怎么证明这套方法在新会话里真能跑?让它给一个**不改数据的造锁实验**方案。它给的思路很关键: **首选 `select ... for update`,不要用 `update`。** 理由很实在:只加行锁、不改任何一行、一直不提交也不产生脏数据,`rollback` 一把就净。而 `update` 改了还得改回来,副作用带出去了。 并附了三条铁律,其中一条是新手必踩的: > **必须两个独立连接。** 同一会话自己拿自己的锁,**永远不会阻塞**。 > 实测反例:三条语句贴进同一窗口,`for update` **0.687 毫秒**就返回,执行号 69216–69220 **连号** → 锁在,但没人等。 > **图形客户端的多个"查询页"常共用一条连接**——看着两个页签,其实是同一个会话。 它还提醒:**验证两个窗口真是两个会话**,两边各跑一次 `select sessid();`,数字不一样才算。 **为什么这条值得写进去?** 因为"造锁造了半天发现没造出来",是每个 DBA 都干过的蠢事——而且**当时你是不会怀疑的**,因为语句确实返回了。 ### 第 4 步|立一条"读数纪律" 最后我要求补一节读数纪律,它自己加了一条我原文没写的: > **引用旧笔记里的统计数字前,必须逐行重数一遍。** > 实测教训:笔记里写"32 行中 30 行属同一事务",逐行核对实为 **27 行(7285)+ 5 行(7289)**。类别计数是高风险数字,默认会错。 **这一条让我服气。** 我笔记里那个"30 行"是当初顺手写的,它不仅没顺着抄,还把错纠正了。这就是我前面反复说的那句:**AI 交活,我签字。但它确实能替我复核。** --- ## 五、产出物:一个团队可复用的 Skill 产出物是一个结构化 Skill `dm-lock-forensics`,**5 大块,全部实测可直接引用**: ### 1. 四视图分工表(少一个都拼不出完整现场) | 视图 | 管什么 | 关键字段 | |---|---|---| | `V$LOCKED_OBJECT` | 会话 → 被锁**对象**(对象粒度) | `SESSION_ID` / `OBJECT_ID` / `LOCKED_MODE` | | `V$LOCK` | **锁本身** | `ADDR` / `TRX_ID` / `LTYPE` / `BLOCKED` / `ROW_IDX` | | `V$TRXWAIT` | **等待关系**(谁等谁、等多久) | `ID` / `WAIT_FOR_ID` / `WAIT_TIME` / `WAIT_FOR_LOCK` | | `V$SESSIONS` | **人头**(事务 → 会话 → SQL → IP) | `SESS_ID` / `TRX_ID` / `STATE` / `SQL_TEXT` | | `V$DEADLOCK_HISTORY` | 死锁案卷 | `TRX_ID` / `HAPPEN_TIME` / **`DEADLOCK_CYCLE`** | ### 2. 核心交付物:锁链查询(关联键已实测,照抄能跑) ```sql select w.ID as 等待事务, ws.SESS_ID as 等待会话, ws.CLNT_IP as 等待来源, ws.SQL_TEXT as 等待的SQL, w.WAIT_FOR_ID as 阻塞事务, bs.SQL_TEXT as 阻塞方SQL, w.WAIT_TIME as 已等待, l.LTYPE as 被等锁类型, l.LMODE as 被等锁模式, l.BLOCKED as 阻塞标记 from v$trxwait w left join v$sessions ws on ws.TRX_ID = w.ID left join v$sessions bs on bs.TRX_ID = w.WAIT_FOR_ID left join v$lock l on l.ADDR = w.WAIT_FOR_LOCK; ``` > ★ **关联键(实测确认,别猜)**:`v$trxwait.LOCK` / `WAIT_FOR_LOCK` = `v$lock.ADDR`;`v$trxwait.ID` / `WAIT_FOR_ID` = `v$sessions.TRX_ID`。 实测输出示例(一行): ``` 等待事务 7289 / 阻塞事务 7285 / 已等待 448347 被等锁类型 TID / 被等锁模式 X / 阻塞标记 0 ``` ### 3. 实测数字表(可直接写进报告,每条都有出处) | 事实 | 实测值 | |---|---| | **锁等待默认无超时** | 挂满 **9 分 34 秒**(已用时间 `00:09:34.766` = 574.766 秒),零报错、零告警 | | **`WAIT_TIME` 单位** | **毫秒**。两点采样 476079 → 503265,差 27186,对应墙上约 27 秒 | | **死锁检测耗时** | `[-6403]:死锁.` 已用时间 **566.928 毫秒** | | **死锁检测参数** | `DEADLOCK_CHECK_INTERVAL = 1000`(毫秒)→ **周期扫描,不是即时判决** | | **52 个锁相关参数里** | **没有"行锁等待超时"这一项** | | 死锁环读法 | `DEADLOCK_CYCLE` = `self -> (7291, 会话ID) -> self`,**一行字符串就是死锁环的全部结构** | ### 4. 探字典习惯(排查第一步,先让库自报清单) ```sql -- 不背视图名,让库自报清单 select name from v$dynamic_tables where name like '%LOCK%' or name like '%TRX%' or name like '%WAIT%' or name like '%DEADLOCK%' order by name; -- 实测 24 行 -- 不背参数名 select para_name, para_value, para_type from v$dm_ini where para_name like '%LOCK%' or para_name like '%TRX%' or para_name like '%WAIT%' order by para_name; -- 实测 52 行 ``` ### 5. 安全造锁手法(不改数据、可回滚、跨环境通用) `select … for update` 优于 `update`;靶子用新建 3 行小表,不要在千万行大表上做;两个独立连接 + `select sessid();` 验证;`set autocommit off;` 关自动提交。 --- ## 六、成果:经验从"个人"变成"团队" 这件事的价值,不在于我又学会了一个技巧,而在于: | 沉淀前 | 沉淀后 | |---|---| | 三个陷阱只在我脑子里 | 任何人接手排锁,**先看陷阱表**,少走三条弯路 | | 锁链 SQL 每次现写,现写现错 | **关联键已实测,照抄能跑** | | 参数是"听说",不确定 | 实测数字表,**每条带出处和单位** | | 新人靠人带 | Skill 可检索、可复用,**可交接** | **我个人的原则是:可以让 AI 干体力活,但知识资产必须带出处。** 所以这份 Skill 里,每一条结论都标注了是"实测"还是"未核实",每一条参数都写了单位和口径。这不是洁癖——**知识资产一旦混入编造的内容,信任就没了,比没有文档更糟。** 顺带一个对照:这套"采集与诊断分离、现场先于结论、数字必须标口径"的打法,和我处理数据库事故的底层习惯是一致的——**先还原现场,再下判断;先给数字,再给结论。** --- ## 七、这套方法能复用到哪 **沉淀方法论,比沉淀某条命令更值钱。** 这套"投喂实测 → 让它复述 → 强制可执行 → 造实验验证 → 立读数纪律"的五步法,我后来复用到: - **达梦并行查询(PARALLEL_POLICY)实测核实**——同样用"不背参数名、让库自报清单"起手,逐条核实"参数改了为什么没生效"; - **国产数据库锁与死锁排查**——把新库当新战场,先跑一遍"探字典 + 造锁 + 读数字",10 分钟就知道它的脾气; - **团队的交接文档**——把"我只说过一遍但没人记住"的东西,变成能检索、能照做的操作手册。 **一句话总结:AI 让我一个人的经验,变成整个团队的工具。**

优秀的个人博客,低调大师

【AWS征文】如何利用 AWS CloudFront 给您的站点全站安全加速

如何给你的站点加速,如何做到静态资源动态资源同时加速,本文将详细为你介绍 AWS CloudFront,并且如何利用 CloudFront 为您的站点加速,以及使用 CloudFront 的注意事项。 CloudFront 是什么 现在越来越多的产品开始走出国内,迈向全球。现在移动互联网越来越火热,大家都是通过官方网站去浏览产品的特性,那么我们就需要为产品建立一个全球化的网站,把产品介绍推送给全球用户。那么如何才可以让全球的用户以最快的速度打开站点呢?我们知道,全球的网络传输依托于光纤,而光的速度是不变的,距离服务器越远的用户延迟注定会越高,经过的路由也会越多多,速度也会越慢。 如何克服困难,给用户一个好的体验,AWS 云服务中哪个产品可以帮助我们实现?我们需要了解一下 AWS CloudFront,CloudFront 是什么,拥有什么功能,相比于其他的 CDN 服务,又有什么优势呢,我们后面一一解答。 CloudFront 是 AWS 推出的 CDN 服务,可以对网站资源进行缓存加速。我们通常理解的 CDN 就是对静态资源加速,静态资源会分发到 AWS 全球的边缘节点,用户就近访问所需要的资源。那么针对动态资源怎么办?这个我们也不用担心,AWS 拥有非常庞大的基础设施,利用这些基础设施,CloudFront 同样可以对动态资源加速,比如我们的 PHP、ASP 等动态资源。这里的加速并不是把这些资源分发的全球,而是让用户的流量最快进入 AWS 的骨干网。骨干网依托于 AWS 的基础设施,骨干网由 AWS 自己维护,拥有高速带宽,智能路由,AWS 会制定最优的路由策略,让用户的请求最快稳定的到达源站。 那么废话不多说,我们下面看看如何设定,让我们的站点推向全球吧。 准备站点 我这次以一个 wordpress 站点做演示,我们不需要破坏站点的任何结构,就可以实现全站加速,静态资源缓存到全球边缘节点,请求动态资源通过 AWS 骨干网动态路由到源站。 CloudFront 虽然说可以加速第三方站点,但是为了最好的效果,非常推荐把站点放在 AWS 的服务中,这次我们把站点放置在 EC2 上面进行测试。 我 EC2 的系统是 Amazon Linux 2,环境是用 LNMP 一键安装包创建的,关于 LNMP 的使用方式我这里不再介绍,一台 EC2 可以部署多个虚拟主机网站,默认我们的 EC2 只提供 HTTP 的服务,如果需要 HTTPS 的话,那我们把证书挂载 ALB 或者 CloudFront。 我们从最开始指导大家如何一步步操作,最终配置完成 CloudFront 实现全站加速。 查看默认站点 默认域名是直接解析到 EC2 的,使用的是 HTTP 请求访问,我们查看一下效果。 配置 ALB 启用 HTTPS 虽然说 CloudFront 可以直接为网站加速,但是那需要我们准备两个域名,一个加速域名,一个源站域名,弄起来比较复杂,我们借助 ALB 中间这个工具,只负责一个域名就可以了,管理起来非常简单,关于 ALB 的配置,我这里也不再介绍,大家看我配置好的效果吧。 当我们使用 HTTPS 访问的时候,发现很多连接都被浏览器 blocked 掉了,那么这是为什么呢? 我们首先就是要解决这个 HTTPS 的问题,不然使用 CloudFront 会有同样的问题,我们首先了解一下目前的架构情况。 虽然用户使用的 HTTPS 发起请求,但是在经过 ALB 之后,转换成 HTTP 请求源站的 wordpress,wordpress 其实并不知道用户使用的 HTTPS 请求的,发现过来的请求是 HTTP,于是 wordpress 构建的 document 里面嵌入的是 HTTP 的资源链接,返回给浏览器之后,浏览器因为一些安全的设定,会 blocked 这些 HTTP 的资源请求,这也就导致了我们的站点不能正常展示,顺便说一下,我使用的是 Chrome 浏览器,其他浏览器是否会 blocked 大家可以去试一下。 那么如何解决这个问题呢?打个不恰当的比如,我们要“欺骗” wordpress,让它认为我们是用 HTTPS 请求的,其实也就是给 wordpress 做个设置,不管用户使用什么协议请求,都给客户端返回 HTTPS,那么我们需要给 wordpress 的配置文件wp-config.php增加下面一段内容。 if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) $_SERVER['HTTPS']='on'; 然后我们再次请求,看到 HTTPS 已经可以正常访问。 配置 CloudFront 创建 Distribution 打开 CloudFront 控制台,创建一个 WEB Distribution,因为很多小伙伴并不清楚站点的结构,不知道哪些目录是静态资源,哪些目录是动态资源,如果默认直接都缓存的话,那会产生很多问题,比如无法登陆,无法提交信息等。所以我们换个思路去操作,那就是我们先全站动态加速,不进行任何缓存,然后再去检查哪些目录是静态文件,在设置规则,对这些目录的文件进行缓存,初次创建,那大家就按照我下面的参数设置吧。 注意:表格里面没有写的,选择默认即可。 Parameter Value Origin Domain Name AuroraMigrationTask Origin Protocol Policy HTTP Only Allowed HTTP Methods GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE Cache Based on Selected Request Headers All Forward Cookies All Query String Forwarding and Caching Forward all, cache based on all Alternate Domain Names wp.wzlinux.com SSL Certificate Custom SSL Certificate,域名证书在 us-east-1 区域申请 查看效果 然后我们创建分发,在修改域名解析之前,我们测试一下站点现在全球的延时情况,目前网站所在区域为爱尔兰。 可以看到除了欧洲区域,其他地域延迟都比较高,现在我们修改域名解析指向 CloudFront Domain Name,然后再测试一下延迟情况。 使用 CDN 之后,我们可以看到海外的延迟明显降了下来,因为大陆防火墙的原因,下降没有那么明显,不过也比之前好多了。 我们继续浏览器访问一下,又发现了很多链接没有返回 https,所以被 blocked 了,这是为什么,我们继续分析一下现在的架构图。 前面用户访问 ALB 使用的 HTTPS,用户的请求协议其实透过请求头通过 ALB 传递到了后端服务器,现在访问 ALB 变成了 HTTP,虽然用户访问 CDN 使用的 HTTPS,CloudFront 没有把请求头没有传到后端,所以后端一直以为是用 HTTP 访问的,导致返回的链接被浏览器 blocked。那这种情况该怎么办呢?既然请求协议没有传递到后端,那我们可以在 CloudFront 上面添加请求头X-Forwarded-Proto。 打开我们创建好的 distribute,选择 Origins and Origin Groups,编辑添加 Origin Custom Headers。 等待生效,本以为这样就可以了,但是还是不行,后来了解到 ALB 会更换请求头X-Forwarded-Proto,因为 ALB 看到 CloudFront 使用的 HTTP 请求的,所以即便我们在 CloudFront 上面添加请求头,也是会被 ALB 重置,那么我们只有从 wordpress 上面去下手解决问题了。 应该还记得我们前面对 wordpress 添加的一个配置,里面有一个 if 判断条件,我们可以去掉这个条件,让 wordpress 不管用户使用什么请求,都返回给用户 HTTPS 的链接。那我们就这样做,把之前的配置修改如下: $_SERVER['HTTPS']='on'; 因为我们是全站动态加速,所以看到缓存结果没有命中,这是正常的,那下面我们来针对站点进行缓存优化,毕竟不进行缓存,那 CDN 和咸鱼又有什么区别呢? 优化缓存 我们打开开发者模式,多访问几个页面,查看一下静态资源都在什么路径下面,比如我找到的几个静态资源URL 地址如下: https://wp.wzlinux.com/wp-content/uploads/2020/07/mp53182456_1452216795463_2.jpeg https://wp.wzlinux.com/wp-includes/css/dist/block-library/style.min.css?ver=5.4.2 https://wp.wzlinux.com/wp-includes/js/wp-embed.min.js?ver=5.4.2 https://wp.wzlinux.com/wp-content/themes/twentytwenty/style.css?ver=1.2 https://wp.wzlinux.com/wp-content/themes/twentytwenty/assets/js/index.js?ver=1.2 你们找到的 URL 可能比我多,不同的主题 URL 会有些不同,我们就拿着几个为例子进行设置一下,可以大胆一点,我们对整个目录进行缓存,我们整理的路径有如下几个。 wp-content/uploads/* wp-includes/css/* wp-includes/js/* wp-content/themes/twentytwenty/* 如果有什么问题,我们可以再针对具体情况调整,那下面我们就开始优化缓存吧。 打开 Distribution,选择创建 Behaviors,把上面的路径填写在 Path Pattern 里面,因为我们后端服务是虚拟主机,需要我们把 Host 这个 Request Header 传递过去,加入白名单中,其他选择默认即可: 按照这样的模式,我们把其他几个路径也填写好。 然后我们再去请求站点,查看我们进行缓存的一些文件是否缓存命中。 目前看来一切正常了,大家可以慢慢完善需要缓存的内容。还等什么,给你的站点去做全站加速吧! 注意:因为我们开启了 HTTPS 访问,所以遇到了一些问题,本文一一解释了问题的原因以及如何解决办法,如果你不需要 HTTPS,那整个过程会更加简单。 欢迎大家扫码关注,获取更多信息

优秀的个人博客,低调大师

邀您参与阿里云MaxCompute2.0最佳实践征文活动

DT时代,越来越多的企业应用数据步入云端。与传统Hadoop相比,阿里云大数据计算服务MaxCompute(原名ODPS)向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决用户海量数据计算问题,有效降低企业成本,并保障数据安全。 最新推出的MaxCompute 2.0,在高性能方面主要依托于全新的SQL 2.0计算引擎。同时,基于MaxCompute2.0新一代的SQL引擎,MaxCompute显著提升了SQL语言编译过程的易用性与语言的表达能力。在新功能方面提供了非结构化的处理能力,在云上开始使用OSS(开放的对象存储)、OTS(开放的表格存储),MaxCompute对其进一步分析和计算提供了连接性。安全方面,提供了Label字段级别数据访问控制及数据脱敏。用量控制方面,推出了禁止全表扫描FullScan

优秀的个人博客,低调大师

政府安全资讯精选 2017年第四期:聚焦美国网络安全新动态

【安全事件】 Uber被指控侵犯用户数据 美政府要求接受20年隐私系统审核点击查看全文 概要:美国联邦贸易委员会(下称FTC)经调查称,Uber失实报告了对雇员提取乘客和司机个人信息的监测程度,且未采取适当措施保护用户数据。FTC称,Uber甚至未采取低成本的防止入侵措施,例如要求工程师使用区分的密钥,或要求多重因素认证。此外,Uber还把地理位置等敏感用户信息,在数据库存为普通可读文本。Uber和FTC达成协议,将在在180天内取得独立第三方的隐私审核,今后每两年进行一次审核,持续20年。 点评:许多快速发展的初创企业都面临此类风险。初创企业专注于业务的发展,通常会在保障用户数据安全和隐私方面缺少投入。相关监管部门可以引导并支持初创企业增加安全投入,在公司整体架构之初就把安全当作重点,培养员工的安全意识,通过制度和技术保障数据的安全

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册