本节继续前篇数据操作的内容进一步学习相关运维工作。 图片.png 目录: 定义数据库对象 管理数据 ---- 基本概念: 视图 在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。 视图中的字段就是来自一个或多个数据库中的真实的表中的字段。我们可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,我们也可以提交数据,就像这些来自于某个单一的表。 ---- 1.定义数据库对象: (一)对大型表分区 Greenplum数据库支持: 范围分区:基于一个数字型范围划分数据,例如按照日期或价格划分。 RENAME TO old_table; CREATE INDEX myixcolumn_ix ON old_table; VACUUM ANALYZE old_table; 索引类型 Greenplum数据库数据库支持 ,删除所有索引、载入数据然后重建索引会更快。
本节主要从gp数据备份和恢复角度深入学习gp数据库。定期执行备份能确保在数据损坏或者系统失效发生时能恢复数据或者重建Greenplum数据库系统。 用户还可以使用备份从一个Greenplum数据库系统迁移数据到另一个。 全量备份 gpcrondump工具 Master的备份文件包含用于创建数据库模式的SQL命令。Segment的数据转储文件包含将数据装载到表中的SQL语句。 /gpdb/backups/archive/20120714 -e dbname -e 忽略已经被创建的数据库 不同系统配置数据库的恢复 确保数据库已经有完整的备份 包括Master的转储文件(gp_dump 、触发器、主键约束等数据库对象 $ psql database_name -f /gpdb/backups/gp_dump_0_5_20160714_post_data 更新数据库序列 gunzip -
代金券、腾讯视频VIP、QQ音乐VIP、QB、公仔等奖励等你来拿!
---- 1.配置客户端认证 (一)配置概览 Master实例的pg_hba.conf文件控制对Greenplum数据库系统的客户端访问及认证。 必须通过设置ssl配置参数在服务器启动时启用SSL hostnossl 匹配在不使用SSL的TCP/IP上建立的连接尝试。 database 指定这一记录匹配的数据库名。值all指定它匹配所有数据库。 可以提供多个数据库名,用逗号分隔它们。在文件名前面放一个@,可以指定一个含有数据库名的单独的文件。 role 指定这一记录匹配的数据库角色名。值all指定它匹配所有角色。 限制并发连接 Greenplum数据库以每个连接为基础分配资源。 Greenplum数据库版本 Kerberos服务器和Greenplum数据库的Master主机上的系统时间必须同步(在两种服务器上安装Linux的ntp包) Kerberos服务器和Greenplum
本节主要从数据库中数据操作和管理的角度学习gp数据库。 图片.png 目录: 定义数据库对象 管理数据 装载和卸载数据 ---- 基本概念: 表空间 一个表空间是一个存储位置,其中底层的基础数据库的对象可以保留。 它在物理和逻辑数据之间提供了一个抽象层并用于所有DBMS管理的段分配储存。 创建后,可以在创建数据库段时按名称引用表空间。表空间仅指定数据库的储存位置,不指定数据库结构或数据库架构。 cascade 删除操作时,自动删除依赖对象 ---- 1.定义数据库对象 (一)创建和管理数据库 模版数据库 不要在template1中创建任何对象,除非用户想要在每一个用户创建的数据库中都有那些对象 用户可以使用template0来创建一个只包含Greenplum数据库在初始化时预定义的标准对象且完全干净的数据库 创建一个数据库 => CREATE DATABASE new_dbname; 客户端创建
说明 本文描述问题及解决方法同样适用于 腾讯云Snova云数仓。 背景 Greenplum(以下简称GP)是基于PostgreSQL的MPP数据库。 基本概念 数据库(Database)和模式(Schema) MySQL : MySQL中模式是数据库的别名,这二者没什么区别,创建一个模式就是创建一个数据库。 GP : 在GP中模式属于数据库内的一个概念,用于在数据库中组织对象,起到类似于命名空间的作用,这样用户可以在一个数据库下创建多个模式,这些不同的模式可以有不同的访问权限,并且不同模式下的表名是可以重复 说明:如果要进行类比的话,GP中的模式更像MySQL中的数据库,在MySQL中用户可以访问同一个实例中的不同数据库,但是在GP中一个连接只能访问一个数据库,但是可以同时访问多个模式,比如join多个模式中的表 基本操作 操作 MySQL GP 切换数据库 USE {dbname} \c {dbname} 查看所有数据库 SHOW DATABASE \l 切换Schema 无 SET search_path={
-- 1.配置greenplum Greenplum数据的配置文件postgresql.conf位于数据库实例的数据目录之下。 gpstop -r 不需要重启的参数: gpstop -u 在数据库级别设置参数 每一个连接到该数据库的会话都使用该参数设置。 数据库级别的设置覆盖系统级别的设置。 角色级别的设置覆盖数据库级别的设置。 ftsprobe会监控Greenplum数据库阵列,它连接并且扫描所有的Segment,并且数据库会按照配置的间隔进行这种处理。 图片.png gprecoverseg恢复工具。
本节提供了Greenplum数据库的一个高层次的系统要求和功能概述。 重要的是要注意-没有商业数据库系统,是完全符合SQL标准。 Greenplum数据库是几乎完全符合SQL1992标准,大部分SQL1999功能。 Core SQL Conformance 在建立并行,无共享数据库系统和查询优化器的过程中,一些常见的SQL结构目前尚未在Greenplum数据库上实现。下面的SQL不支持: 1. 触发器不支持由于他们可以使用VOLATILE函数 11. Gp数据库不强制外键,用户可以定义外键,他们会保持在系统表中 12. 序列操作函数CURRVAL 和LASTVAL 13. ROW 数据类型 5. gp数据库的序列语法是非标准的,比如gp中使用nextval(‘seq’)替代标准的NEXT VALUE FOR SEQ 6.
,数据节点之间不需要做免密。 7月 18 19:46 gpdatap2 [gpdata2] drwxrwxr-x 2 gpadmin gpadmin 4096 7月 18 19:46 gpmaster => exit 四.初始化数据库 若初始化失败,需要删除/home/gpadmin/gpdata下的数据资源目录重新初始化; 五、创建数据库 初始化完成后,我们可以创建数据库,并创建用户进行登录使用了。 1)新建数据库 createdb -h localhost -p 5432 mygpdata 2)登录到mygpdata数据库中创建新用户,并给该用户赋权 psql mygpdata --登录数据库 CREATE :远程host,本地local 参数2:数据库名称 参数3:用户名 参数4:授权IP地址 参数5:加密方式 4)重启数据库 Gpstop(停止) -M fast(后面参数强制停止) gpstart(启动
本节主要从数据迁移和GP集群监控的角度进一步深入snova运维业务工作。 ---- 1.gptransfer迁移数据 基本流程 在源数据库中创建一个可写外部表 在目标数据库中创建一个可读外部表 创建命名管道以及源集群中Segment主机上的gpfdist进程 在源数据库中执行一个 SELECT INTO语句把源数据插入到可写外部表 在目标数据库中执行一个SELECT INTO语句把数据从可读外部表插入到目标表 通过比较源和目标中行的行数或者MD5哈希来有选择地验证数据 清除外部表 后备Master不同步情况 Master主机人为关闭或者其他软件问题(在特定失效场景中,Greenplum数据库无法发送告警或者通知) 配置snmp监控: [root@gp-master ~]# yum | /dev/vda1 | 44602148 1 | gp-node2 | /dev/vda1 | 44558804 (2 rows) 检查数据库磁盘空间 komablog
GP与供应商传输的是X12标准报文,业务类型包括856(发货通知)、940(仓库装运订单)、944(仓库库存转移收据)、945(仓库装运通知)、846(库存查询/建议)、214(运输承运人装运状态)。 AS2电子数据交换标准提供安全的多用途互联网邮件扩展,并使用HTTP或更安全的HTTPS在互联网上实现实时数据传输。其中加密和数字签名可以确保信息传递的安全性、完整性和隐私性。 通过简单的界面配置,用户就可以使用AS2 Connector和交易伙伴建立AS2连接,实现安全可靠的数据传输。 由于HTTP报错信息难以直接定位原因,尝试使用抓包工具RawCap抓取IP数据包来分析原因。 首先,在本地安装好RawCap,可选取以下三种方式来抓取数据包: 1. p1.png 如上图所示,查看数据包信息得到:“Service Not Found.
图片.png 目录: 启停数据库 访问数据库 ---- 基本概念: JDBC Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口 ODBC ODBC(Open Database Connectivity,开放数据库互连)提供了一种标准的API(应用程序编程接口)方法来访问数据库管理系统(DBMS)。 启动Greenplum数据库 gpstart工具来启动一个已经由gpinitsystem工具初始化好但已经被gpstop工具停止的Greenplum数据库系统 [gpadmin@gp-master ~] 数据库用户名 支持的客户端应用 命令行接口 psql 标准数据库应用程序接口 JDBC+ODBC 使用ODBC和JDBC等标准数据库接口的客户端工具 gp自带客户端应用 图片.png psql连接 数据库连接池是一种数据库连接的缓存,在大量连接情况下, 一般会在数据库和应用程序之间配置 pgbouncer,pgbouncer 可以配置在数据库主机上,也可以配置在 单独一台服务器上。
数据导入介绍 Greenplum(以下简称GP)支持多种数据导入方法,比如GP自带的gpfdist,通过gpfdist+外部表的形式将远端服务器上的数据并行导入到GP中,再比如GP自带的COPY命令,能够将本地的数据按照一定格式导入到 数据准备 Mysql创建表 在mysql的数据库db1中创建test1表。 2.1 username与password分别表示连接数据库是的用户名和密码。 条件过滤 结构过滤 通常情况下,源端数据源的表结构与目标数据源的表结构,如例子中的mysql与GP中数据迁移前后的表列数与类型完全一致,但是在某些情况下,迁移前后的结构是不一致的,通常表现后目标数据库中的表中只保留源端数据库表中的某几列 数据过滤 例子中的配置,在每次作业时,会将源端数据库表中的数据全量导入到目标数据库表中,DataX支持对reader进行where条件配置,对源端数据库表的数据进行过滤,例如: "reader": {
Greenplum是一款MPP型数据库,对于数据集市而言比较合适。 个人觉得GP目前比较尴尬。性能比Presto稍差点,唯品会已经把GP改用Presto替换看了。 另外数仓/数据集市方面还有性能强悍的HAWQ ,支持更大数据规模Hadoop。 MPP数据库扩展时,一般情况下是计算节点和数据节点一起增加的,在增加节点后,需要对数据做重分布才能保证数据与节点的紧耦合(重新hash数据),进而保证系统的性能;Hadoop在增加存储层节点后,虽然也需要 因此,作为一个非大数据的DBA,我这里只是对GP的大致了解下,没有过多深入。 GP的结构 ? ? ? GP的安装部署 CentOS下建议使用XFS文件系统。 greenplum-db 下面,开始创建数据库数据目录: su - gpadmin MASTER、Standby目录: mkdir /home/gpadmin/gpdata/gpmaster -pv
数据导入介绍 Greenplum(以下简称GP)支持多种数据导入方法,比如GP自带的gpfdist,通过gpfdist+外部表的形式将远端服务器上的数据并行导入到GP中,再比如GP自带的COPY命令,能够将本地的数据按照一定格式导入到 Mysql创建表 在mysql的数据库db1中创建test1表。 条件过滤 结构过滤 通常情况下,源端数据源的表结构与目标数据源的表结构,如例子中的mysql与GP中数据迁移前后的表列数与类型完全一致,但是在某些情况下,迁移前后的结构是不一致的,通常表现后目标数据库中的表中只保留源端数据库表中的某几列 数据过滤 例子中的配置,在每次作业时,会将源端数据库表中的数据全量导入到目标数据库表中,DataX支持对reader进行where条件配置,对源端数据库表的数据进行过滤,例如: "reader": { GP的方法,但是将数据导入到GP时,所有数据需要经过master根据分布键计算后再次进行分发,master的会成为数据导入过程中的性能瓶颈,后续会介绍其他不经过master的更高性能的导入方法。
日志查询相关的信息 5、资源队列相关查询信息 6、查看磁盘上(database,schema,table,indexs,view)等的占用大小的相关信息 7、用户使用的工作空间大小信息 8、查看用户创建的信息(数据库 ,schema,表,索引,函数,视图)等信息 9、系统中维护的ID信息 10、系统查用的查询信息 11、系统中常用查询的函数 gp_toolkit 说明 Greenplum数据库提供了一个名为gp_tooikit select * from gp_toolkit.gp_size_of_database; -- 该视图显示当前数据库中schema在数据中的大小 select * from gp_toolkit.gp_size_of_schema_disk select * from gp_toolkit.gp_workfile_usage_per_segment; 8、查看用户创建的信息(数据库,schema,表,索引,函数,视图)等信息 -- gp __gp_user_data_tables"; -- GP用户数据表可读 select * from gp_toolkit."
Snova简介 Snova是腾讯云上的一款数仓产品,兼容Greenplum 开源数据仓库,是一种基于 MPP(大规模并行处理)架构的数仓服务。 Snova相对自建GP的优势 快速搭建,只需控制台点击购买即可,无需关心GP搭建的过程,以及参数优化的细节。 免运维,您无需关心因机器故障等导致的复杂运维工作,只需要关注核心业务,让数据产生价值。 所以需要在数据库中提前创建好对应的role。 Schema 首先需要手动在Snova创建目标数据库,语句如下: CREATE DATABASE {databasename} 然后导出原数据库Schema,建议使用pg_dump工具,逐个数据库迁移, 语句如下: pg_dump --gp-syntax --schema-only -h {host} -p {port} -U {username} -f {filename} 最后在Snova数据库执行
查看日志 常见日志有两种: gpinitsystem 和 数据库日志 gpinitsystem 的日志文件。 Dec 19 16:51 gpstart_20191219.log -rw-rw-r-- 1 gpadmin gpadmin 5370 Dec 19 17:29 gpstop_20191219.log 数据库的日志文件 00:00 gpdb-2019-12-20_000000.csv -rw------- 1 gpadmin gpadmin 2444 Dec 19 16:42 startup.log 初始化master数据库失败 [DATADIR] //指定字符集 数据目录 编码 最大连接 共享内存 $ initdb -E UNICODE -D /data/master/gpseg-1 - master -b 1-C -1-z 0 -m 启动segment出错:使用工具pg_ctl 通过手动启动segment来定位错误 pg_ctl用于初始化PostgreSQL数据库集群
在临床试验中,我们经常会对合并用药进行编码,通过编码对药物归类,出频数表等,编码的字典和查询的方式很多,最近呀,小编想获取某智网站ATC编码库,但是呀,小编技术不够,所以就获取了某工网站的ATC编码相关的数据 原理就是将这些,写入到SAS数据集中,在查看需要提取的字符串出现的规律是怎么样的,然后基于规律写程序就可以了~这个主要就是看是否能发现数据的规律~不细说了,下面来上代码! /*****************************SAS 爬取 化工ATC数据库*******************************/ *1获取首页网站ATC编码; options ,看网页的代码,其实很容易发现大层级跳转到子层级的规律,这个时候就可以基于规律生成一个URL,然后在通过循环一层一层的获取... *2基于第一步获取的ATC首页信息以及内容后 进行逐条循环获取各类下的数据 ,基于数据在进过merge等操作的整合,便能生成一个线下的编码词典库。
所以对于GP集群迁移方案,难点在于服务节点多,存在全局性依赖,如果迁移完成后存在网络问题或者系统问题会导致集群全部失效,无法启动;而且集群环境涉及数据仓库,数据集市和ETL服务器,需要区别对待,制定合理的迁移方案 首先的难点不是迁移,而是技术储备,GP技术方向相对来说小众,没有MySQL的风风火火,也没有大数据方向纯粹的分布式方案(GP是MPP分布式方案),抛开这些,会的人少,愿意学的人也少。 ,PG的元数据有一个MySQL库在存放,还有一个web应用opencron在运行,还有一个Django自建项目在运行,整个的过程会比开始的时候规划的要复杂很多,比如相关的opencron的agent都需要重启和配置 8.数据的备份 这部分的备份,只能取到最小的结果集,对于GP集群而言,最起码的DDL配置是要备份的,对于PG而言,属于数据集市,结果集不大,所以可以考虑同步数据到其他的集群或者节点上。 整个迁移的过程和迁移后的一些小结: 1.对于停止GP集群,我们采用了如下的方式: 停止GP集群 重启GP集群 停止GP集群 这样确保集群没有任何明显的问题,迁移后是一个相对纯粹的环境
本节主要从集群扩容的角度,进一步了解gp集群的日常运维工作。 准备增加新节点 初始化新的segment 重分布表 ---- 基本概念: 图片.png ---- 1.集群扩容的一般性原则 弹性伸缩容量和性能 扩容期间服务不中断 扩容前后事务的一致性 容错机制不受干扰 数据复制和灾备恢复不受影响 bisection bandwidth test gp-node1 -> gp-node2 = 18.870000 gp-node2 -> gp-node1 = 69.070000 Summary: /gp10:14:10:m:63011 运行gpexpand初始化新的segment $ gpexpand -i input_file -D database1 // -i 输入文件 -D 指定哪个数据库创建扩展 扩展命令运行完毕后,系统会被重启 回滚一个失败的扩展 gpstart -m //进入master-only模式 重启数据库 gpexpand --rollback -D database_name
云数据库 Redis,数据库缓存,数据库存储,云数据库 云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。 云数据库Redis是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
扫码关注云+社区
领取腾讯云代金券