首页 文章 精选 留言 我的

精选列表

搜索[database],共6067篇文章
优秀的个人博客,低调大师

Mysql报错5002 - cannot modify reserved database

从报错上来看是因为没有选择数据库导致的,但实际上我在navicat里面选择了mysql库;百度没有这个报错的解释与客服沟通后发现该问题是因为没有业务库导致的;在ECS的自建库里面,直接use mysql,然后进行操作都是OK的但是RDS数据库里面自带的mysql库被默认为不能采取这个操作,必须额外建库!!在新建库上进行操作不再有此报错。

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

Netflix Media Database - 架构设计和实现

前言 前面一文主要讲了NMDB的起源、业务场景以及Media Document数据模型,而本节主要讲述NMDB的系统架构、核心模块以及底层技术。在深入了解其架构之前,我们先要明确NMDB的定位和功能设计目标,先看下Netflix内部视频处理的整个流程: 算法处理:Netflix内部有一个Archer平台,在其上运行各种算法来提取视频数据中的元数据,例如提取视频帧中文字信息,提取的元数据为一个Media Document。 将Media Document写入NMDB,对其进行持久化和索引。 业务方通过NMDB提供的API对Media Document数据进行查询和分析,通常是一些带特定领域特征的时间和空间维度查询。 查询结果处理后展示给终端用户。 NMDB主要负责2,3步骤,也就是说不负责算法的执行,但负责对Media Document的存储和

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

快速开始 PieCloudDB Database:管控平台权限系统

1. 前言 在《快速开始PieCloudDB》中,我们了解了如何在 PieCloudDB 创建账号,进行数据上传、查询和邀请用户。本文承接《快速开始PieCloudDB》,将对管控平台如权限管理、外部接入等进阶操作通过实例进行介绍和演示。 2. 账户实体 PieCloudDB 以账户实体的形式是账户在数仓实例中具象体现,每一个 PieCloudDB 账户都拥有四类账户实体,如下图所示。 其中: 用户实体代表该账户下所有附属用户。用户可以创建并成为数据库对象的所有人,并通过权限系统和角色将数据库对象权限下放给特定角色下的其他用户。 角色实体可以实现系统和数据库权限的分配,PieCloudDB 系统中共有四个预设角色,我们会在后续进行介绍。 虚拟数仓实体代表计算资源。有相关权限的用户,可在账户下创建提供计算支持的虚拟数仓。 功能模块实体为 PieCloudDB 数据功能的集合,包括数据洞察、数据集成等。这些功能通过虚拟数仓的支持,完成查询、ETL 等与数据相关的操作。 对 PieCloudDB 账户实体整体情况了一个大致的认识后,接下来我们深入细节,进一步了解 PieCloudDB 权限系统的核心:角色功能。 3. 角色 PieCloudDB 权限管理系统是以角色为管理单位的权限管理工具。 角色是用户权限概念的具象化,代表了权限的集合。权限以角色的方式下放给各个用户。一个角色可对应一个用户,也可对应一类用户。用户与角色并非一对一关系,一个用户可被授予多个角色,而一个角色可被授予给多个用户。每个用户都会被赋予至少一种角色,每一种角色都有其对应的权限。 PieCloudDB 角色权限分为数据库对象权限和系统权限两部分。数据库对象权限对应账户内各角色的数据权限,且只有数据库对象所有者可管理相应权限。而系统权限对应各角色管控平台的功能权限,其中包括计算资源的管理权限。 4. 赋予与继承 继承是权限以角色的形式传递给另一个角色的动作。继承的角色在层级上要高于被继承的角色,且继承角色的权限与被继承角色的权限保持一致,意味着即使收回继承角色所继承的权限,该权限状态会与被继承角色保持一致,并不会被收回。一个角色可以继承另一个角色的权限。继承的权限即使被改动,状态也会与被继承角色相对应的权限保持一致。继承关系使得各角色间呈现一个角色层次结构。 赋予是权限以角色的形式下放给用户的动作。拥有角色管理权的角色,可将角色及其权限赋予给用户。 5. 系统预设角色 PieCloudDB 中,每个账户都预设了四个角色: 普通使用者是 PieCloudDB 预设角色中最基础的角色。每一位新用户在创建后都会自动被授予普通使用者角色,拥有如访问数据库、进行数据洞察等一些基础功能的权限 用户管理员继承普通使用者权限,主要负责用户及角色的权限管理,可邀请、添加、审核新用户、删除已有用户,有权创建、删除角色,管理各角色对应的系统权限 数据管理员继承普通使用者,主要负责数据库对象权限、计算资源管理,有权使用数据集成功能。数据管理员可以创建、更改、删除和监控虚拟数仓,除账户管理员外,其他预设角色只有权查询、使用虚拟数仓 账户管理员是账户权限管理系统中等级最高的存在,继承数据库管理及用户管理员权限,也是账户的计费单位。账户管理员可以将权限以角色的方式下放给其他用户进行管理 预设角色系统权限详情及继承关系如下图所示: 这些预设角色不可被删除。在通常情况下,建议系统角色由不同用户承担,管理员类角色尽量使用 PieCloudDB 系统预设角色。 6. 赋权步骤 在这一部分,我们将从账户管理员起步,演示创立自定义角色的过程,具体步骤如下图所示。 假设账户管理员已将用户管理员及数据库管理员赋予了相应的用户,用户管理员可为新用户组建立自定义角色,并对该角色的系统权限进行设置。 在自定义角色设立后,数据库管理员创建该角色所对应的数据库对象,并将相应的数据库权限赋予该角色,通过数据库权限这种方式来约束相应数据的读写权。 系统权限和数据库权限设置完毕后,用户管理员再将该角色赋予用户组。角色权限管控下的用户组,可通过其对应的角色,在适当的权限条件下探索数据。 7. 权限分配实例 假设某公司需要对某几类线上产品的销售额进行存储和分析,销售额数据结构如图所示,这里的示例数据与《快速开始PieCloudDB》中示例的数据平行。 该公司的数据管理团队决定由 David 、 Betty 和 Charlie 三位负责管理这部分数据及其附属的权限,并支持业务部门的 Adam 进行销售数据分析工作。 首先, David 作为账户管理员,需要将用户管理员角色赋予 Betty 。被赋予用户管理员权限后, Betty 再将数据库管理员的角色赋予给 Charlie 。 各管理员角色就位后, Betty 为 Adam 创建其对应的角色。根据 Adam 的需求, Charlie 再为其角色创建对应的数据库对象,将这些数据库对象的权限分配给 Adam 的角色。角色权限设置完成后, Betty 最后将该角色赋予给 Adam 。 通过类似的步骤,我们可以根据每组用户如数据类型、功能需求等特性来创建对应的角色。 在本文的实例中,用户管理员 Betty 和数据库管理员 Charlie 可以通过同样的步骤为来自其他业务部门的 Ella 和Fiona 建立相应的角色,并按照她们的需求赋予系统、数据库对象权限。 Adam、Ella 和 Fiona 在「线上销售数据」数据库中的读取权限图示 在演示示例中,Adam、Ella 和 Fiona 都来自业务部门,所属团队的不同使得他们对数据权限及开发的需求各不相同。PieCloudDB 权限系统可以使得这些用户以角色的形式,在各管理员的监督下,根据各自角色的权限,安全读、写所需的数据,并进行对应的清理、分析与开发工作。 8. 管控平台实操 -- 为 Adam 建立自定义角色 在这一部分,我们将以用户 Adam 为例,演示如何创建、授予角色,并将相应的数据库对象权限授予给特定角色。 在《快速开始PieCloudDB》中,除账户管理员 David 之外,我们还另外创建了三个用户: Charlie 、 Betty 和 Adam 。 David 登录管控平台后,点击菜单栏「用户」功能,可以看到该账户下目前共有4个用户。点击用户名称可查看各用户详细信息,包括授予给用户的角色。这里除 David 外,当前所有用户都是Public角色。 点击用户名称可查看各用户详细信息,包括授予给用户的角色。这里除 David 外,当前所有用户都是 Public 角色。 8.1 账户管理员指定用户管理员 第一步,账户管理员 David 需要将用户管理员角色授予 Betty 。点击菜单栏「角色」功能,PieCloudDB 会以关系图和列表两种形式显示账户下所有角色。拥有相关权限的用户可在该界面管理系统权限及角色继承关系。 「角色」菜单栏关系图模式: 「角色」菜单栏列表模式: 在 David 的账户中,目前只有四个系统预设的角色。点击「usermanager」用户管理员角色,David 可查询当前该角色的系统权限及数据库对象权限,也可点击「角色继承」在该界面查询角色的继承关系。点击「用户授予」,可以看到目前暂无被授予的用户。 点击上图中的蓝色按钮「授予给用户」,在「将被授予角色的用户」一栏选择用户 Betty,再点击「授予」,将用户管理员授予 Betty。 除此之外,在角色已创建的情况下,David 也可通过用户界面,将用户管理员快捷授予给 Betty。 最后点击「授予」,即可快捷授予角色。 8.2 用户管理员指定数据库管理员 在被授予用户管理员后,Betty 即可以该身份登录管控平台,管理用户、角色及对应系统权限。登录后我们可以看到,用户管理员左侧的功能菜单栏多以「用户」、「角色」功能为主。 下一步,Betty 需要将数据库管理员授予 Charlie ,并为 Adam 创建自定义角色「顾客数据分析」。用户管理员角色使得 Betty 有权创建、管理、删除角色。菜单栏点击「角色」,和 David 的步骤类似,Betty 点击「dbmanager」数据库管理员角色,将该角色授予 Charlie 。 8.3 用户管理员创建新角色 点击右上角添加角色,输入角色名称等信息,Betty 即可创建自定义角色。 注意,所有自定义角色在不指认任何继承关系的情况下,默认继承 public 角色。 由于 Adam 有更改、上传客户信息的需求,我们需要对应角色的系统权限中增加数据导入菜单的权限。点击新建角色「顾客数据分析」,再点击「系统权限」界面的「管理权限」,在「授予的权限」下拉菜单中选择「数据导入」等五项权限,为 Adam 对应的角色增加使用导入菜单所需的系统权限。 这其中,新添角色若想有权使用数据导入功能,则首先需要「数据导入菜单」的父级权限「数据集成菜单」,再将「数据导入菜单」权限赋予该角色。在角色拥有相关菜单权限的基础上,给予角色「数据导入」功能权限,这样新添角色才可以使用「数据导入」功能进行数据上传。 除此之外,「导入任务详情」和「导入历史数据」权限可以赋予该角色查看导入历史及导入历史详情的权限。在管控平台中添加步骤如下图所示。 添加权限完毕后,点击右下角的「更新权限」完成权限更新。 在系统权限设置完毕后,Betty 即可将该角色赋予 Adam。 8.4 数据库管理员为新角色创建、管理数据库对象权限 作为数据库管理员 Charlie 需要为 Adam 创建所需的数据库对象,并将这些数据库对象的权限下放给 Adam 。除此之外,Charlie 还需为 Adam 创建计算所需的虚拟数仓。 Charlie 登录管控平台后,先进入「虚拟数仓」菜单,为 Adam 创建虚拟数仓。具体步骤详见《快速开始PieCloudDB》。 成功创建虚拟数仓后来到数据洞察界面,创建所需的数据库对象,步骤与《快速开始PieCloudDB》 中一致。 刷新数据库部分,可以看到新创建的数据库对象已更新。创建结束后,再到「数据集成」的「导入数据」界面,上传数据文件至对应的表中,这里的步骤与《快速开始PieCloudDB》 中一致。 在上述过程中,数据库管理员 Charlie 为虚拟销售数据创建了多个数据库对象。Charlie 可以使用「数据库」功能查询这些数据库对象的元数据,管理相关权限。在 「数据库」界面点击需要查询的数据库、schema、表或者视图,即可显示数据库对象的字段信息以及权限列表。数据库对象的所有者可使用界面右上角的「授权」按钮,将数据库对象权限下放给其他角色。 注意,在 Charlie 不作任何授权动作的情况下,同一个账户下的其他用户都无法访问这些数据库对象。这里以 Adam 为例,当 Adam 登录并进入「数据洞察」界面,尝试查询顾客信息时,界面显示报错并提示 Adam 并无相关权限。 数据库管理员 Charlie 可以使用「数据库」的「授权功能」,将数据库对象权限授权给特定角色,该角色下的用户才有权读或写这些数据库对象。对于 Adam 而言,他所需的数据如下图所示。 PieCloudDB 一共有三个层级的权限:数据库层、模式(schema)层及数据库对象层。 在权限设计中,Adam 拥有销售数据的只读权及用户数据的读写权。为了让 Adam 获得相对应的读写权,Charlie需: 第一步将数据库的 Connect 权限授予「顾客数据分析」角色 再将三个模式(schema)对应的权限授予该角色。 最后,根据实际所需的数据库对象,将相应数据库对象权限授予该角色 这一部分的详细操作,请参考 PieCloudDB 权限系统视频。这里以「服装产品数据表」为例,授权步骤如下图所示: 8.5 赋权完成 完成授权步骤后,David 账户下的四个用户通过角色功能,调整了权限结构。对比来看,David 拥有账户下所有系统权限,Betty 主要拥有角色、用户及管理系统权限的权利,Charlie 在管控平台可使用的功能主要围绕数据库和虚拟数仓,Adam 在普通使用者的系统权限之上增加了使用「数据导入」功能的权限。 权限设置完毕后,Adam 登录即可发现,菜单栏新增了「数据集成」功能。如 Adam 获得了一份包含新用户数据的文件,Adam 可以使用该功能,自行将新用户导入用户数据表中。 权限设置完毕后,Charlie 和 Adam 都可通过各自的角色来与销售数据进行交互。这里以 Adam 为例, 按照相应权限,Adam 可对顾客数据进行读、写等操作。 如下图所示,Adam 可根据自己的需求从顾客数据中读取数据,也可使用 insert 语句将新数据加入该表。 这里我们用顾客 ID 验证一下新增的数据是否在顾客数据表中存在。 与此同时,并未被赋予数据库对象权限的 David 和 Betty 则无法获取这些数据。这里以 David 为例,可以看到 David 无权读取顾客数据。 以上为 PieCloudDB 权限系统介绍的所有内容,感谢您的阅读。欢迎大家登录 PieCloudDB「云上云」版,开启属于自己的的数据探索之旅。

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

快速开始 PieCloudDB Database:PieProxy 外部接入工具演示

在《云上商业智能最佳实践》中,我们演示了如何使用 node-port 的外部连接方式接入 PieCloudDB。本文结合传统外部连接方式,聚焦全新的外部连接工具 PieProxy,通过外部接入场景结合管控平台相关信息,对接入步骤进行举例和演示(演示视频链接)。 1. 前言 目前, PieCloudDB 在各版本都提供了外部接入功能。同一账户下的用户可通过处于开启状态的虚拟数仓,使用 JDBC 、ODBC 或 Postgres 驱动从外部连接数据库来获取数据。 从2.5.1113版本起,PieCloudDB CoC 以及其他平行版本支持使用 PieProxy 进行外部连接。PieProxy 是基于PgBouncer、为 PieCloudDB 量身定制的外部连接工具。与传统 node-port 连接相比,PieProxy 更轻量,通过高并发、高可用性,有效减轻数据库在处理外部连接请求时的负担。综上,我们推荐使用 PieProxy 对 PieCloudDB 进行外部连接。注意,2.5.1113 之前旧版本的 PieCloudDB 只提供传统 node-port 的连接方式。 2. 汇总外部连接信息 PieCloudDB 外部连接总共需要三类信息: 用户连接信息 用户名 密码 虚拟数仓信息 虚拟数仓服务器地址 端口号 虚拟数仓ID 数据库信息 2.1 用户连接信息 这里我们以《快速开始PieCloudDB》 中的账户管理员 David 为例。登录管控平台后,各用户可通过管控平台右上角的用户信息栏点击外部接入,获得用户相关的外部接入信息。点击右上角菜单「外部接入」按钮,进入相关界面。 界面会对接入格式进行提示,注意,目前只有通过PieProxy进行外部连接的虚拟数仓需要额外对连接进行设置。 点击「重置接入 Token」获得接入用户名及密码。再次重置 Token 会将接入密码重新设置,先前的密码将不再有效。 2.2 虚拟数仓信息 记录好用户名和 Token,我们来到左侧菜单栏「虚拟数仓」菜单。进入界面后,确认目标虚拟数仓已开启外部接入。这里我们进行外部连接的虚拟数仓为「VW1」。 根据需要外部接入的虚拟数仓,点击右侧「查看详情」查看虚拟数仓详细信息,界面大致如下。 进入详情页面后,外部接入需要如上图所示该界面中的三条信息: 虚拟数仓ID 接入地址 服务端口号 2.3 数据库信息 本篇我们以 PieCloudDB 中的初始数据库「openpie」为例,进行外部连接。这里我们只需数据库名称即可。 2.4 总结 通过 JDBC、ODBC、PostgreSQL 等驱动,我们即可通过外部连接接入 PieCloudDB 。综合在「外部接入」界面获得的信息,我们通过以下信息进行外部连接。 接入IP地址:114.55.***.*** 端口号:5432 用户名:david 密码:01************3db 连接选项:PGOPTIONS='-c warehouse=cl01*******fgd' 数据库名称:openpie 3. PieProxy 连接实例 -- DBeaver 这里我们以 DBeaver 为例。进入 DBeaver 后,点击左上角新增一个连接。 进入添加界面后选择「PostgreSQL」。 进入下一步,调整服务器、数据库、用户名及密码。如前文所述,这里我们连接的是初始数据库「openpie」。 完成后进入驱动属性界面,找到「options」,按照管控平台提供的格式填入虚拟数仓 ID。 设置完毕后点击测试连接,可以看到我们已成功连接到相应数据库。 点击完成按钮,完成连接设置。 接下来,我们使用刚设置的连接来执行 SQL 任务。选择刚刚设置的连接,点击左上角 SQL 按钮新添一个 SQL 文件。 这里,我们在「openpie」数据库中新建一个表,插入新数据并验证新数据的存在。 create table test_1 (id int); insert into test_1 values (1),(2),(3); select * from test_1; 运行结果如下图所示。 我们也可使用 DBeaver 读写数据库中已存在的表。这里以「test_table」为例。「test_table」是一个先前被清空的表。我们在这张空表中插入两行新数据,并验证了新数据的存在。 insert into test_table values (4),(5); select * from test_table; 运行结果如下图所示。 4. 外部连接无法设置 PGOptions 在一些数据库管理及开发工具中,数据库连接无法设置选项。在这种情况下,我们可以通过数据库+‘#’+虚拟数仓ID 的方式进行连接,避免另外设置连接选项。 这里我们以 Navicat 为例,点击左上角新增一条连接,选择「PostgreSQL」。 进入界面后,输入从 PieCloudDB 获取的服务器、数据库及用户信息。在数据库名称处,加上‘#’及虚拟数仓 ID。 点击界面左下角测试连接,可以看到数据库连接成功。 最后点击保存按钮保存连接。 点击左上角新建一个SQL文件,通过刚刚创建的连接,即可对「openpie」数据库中的数据进行查询。 select * from test_table; 查询结果与先前一致。 以上为 PieCloudDB 外部连接的所有内容,感谢您的阅读。欢迎大家登录 PieCloudDB「云上云」版,开启属于自己的的数据探索之旅。

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

Android开发7——android.database.CursorIndexOutOfBoundsException:Index -1 ...

android中数据库处理使用cursor时,游标不是放在为0的下标,而是放在为-1的下标处开始的。 也就是说返回给cursor查询结果时,不能够马上从cursor中提取值。 下面的代码会返回错误 Useru=null; SQLiteDatabasedb=dbHelper.getReadableDatabase(); Cursorcursor=db.rawQuery("select*fromuserwhereid=?",newString[]{id.toString()}); Integeruid=cursor.getInt(cursor.getColumnIndex("id")); Stringuname=cursor.getString(cursor.getColumnIndex("name")); floatuamount=cursor.getFloat(cursor.getColumnIndex("amount")); u=newUser(uid,uname,uamount); 正确的用法 Useru=null; SQLiteDatabasedb=dbHelper.getReadableDatabase(); Cursorcursor=db.rawQuery("select*fromuserwhereid=?",newString[]{id.toString()}); if(cursor.moveToFirst()) { Integeruid=cursor.getInt(cursor.getColumnIndex("id")); Stringuname=cursor.getString(cursor.getColumnIndex("name")); floatuamount=cursor.getFloat(cursor.getColumnIndex("amount")); u=newUser(uid,uname,uamount); } 本文转自IT徐胖子的专栏博客51CTO博客,原文链接http://blog.51cto.com/woshixy/1079514如需转载请自行联系原作者 woshixuye111

资源下载

更多资源
腾讯云软件源

腾讯云软件源

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

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应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册