企业注册很多网站的好处,什么网站可以看女人唔易做,wordpress 时间轴主题,重庆金融公司网站建设神通MPP数据库的跨库查询 一. 简介二. 系统表三. 跨库查询语法1. 创建外部数据存储服务器2. 删除外部数据存储服务器3. 授予普通用户访问外部数据存储服务器权限4. 回收普通用户访问外部数据存储服务器权限5. 加密函数6. 访问外部数据存储服务器 ★ 四. 跨库查询#xff1a;统… 神通MPP数据库的跨库查询 一. 简介二. 系统表三. 跨库查询语法1. 创建外部数据存储服务器2. 删除外部数据存储服务器3. 授予普通用户访问外部数据存储服务器权限4. 回收普通用户访问外部数据存储服务器权限5. 加密函数6. 访问外部数据存储服务器 ★ 四. 跨库查询统一用户访问流程1. 【远端】数据存储2. 【本地库】 五. 跨库查询非统一用户访问流程1. 【远端】数据存储2. 【本地库】 一. 简介
跨库查询指无需将远端外部数据存储的数据导入到本地数据库即可通过本地数据库查询远端外部数据存储的数据满足本地与本地、本地与远端、远端与远端的表的联合查询能力。
神通 MPP5.0 目前支持的远端外部数据存储的类型有两种神通 MPP5.0 即 STMPP-5.0、神通 KSTORE4.5 即 KSTORE-4.5。
补充说明 跨库查询访问有两种方式① 统一用户访问② 非统一用户访问。 通过设置配置文件参数 ENABLE_EXTS_CURRENT_USER 来控制开启或关闭 统一访问功能。
统一用户访问是指用户MPP5.0通过 MPP5.0 访问外部存储服务器的权限 和外部存储服务器的用户与MPP5.0 用户名相同权限一致 使用统一用户访问功能时需配置使用一个公共的高权限用户DBA 权限作为“桥梁用户”访问所有外部存储服务器。 当使用统一用户访问时不能指定 username 和 password使用非统一用户访问时必须指定 username 和 password。
二. 系统表
神通 MPP5.0 将外部数据存储服务器的信息存储在系统表 SYS_EXTERNAL_SERVER 中; 并将外部数据存储服务器的类型的信息存储在系统表 SYS_EXTERNAL_STORE 中。
两表结构如下
三. 跨库查询语法
1. 创建外部数据存储服务器
用户通过执行此语句可以创建服务器类型为神通 MPP5.0、神通 KSTORE4.5 的同构数据存储服务器服务器信息包含服务器 IP 地址、端口号、数据库名等。
CREATE EXTERNAL SERVER servername TYPE servertype ext_connection;
ext_connection:: [CONNECT TO username IDENTIFIED BY password] USING hostname PORT portnum DATABASE databasename参数 CREATE EXTERNAL SERVER创建外部数据存储服务器创建成功后会在 SYS_EXTERNAL_SERVER系统表中显示创建的外部数据存储服务器的信息 servername创建的外部数据存储服务器的名字 servertype创建外部数据存储服务器的类型可以指定外部数据存储服务器的类型为神通 MPP5.0 即STMPP-5.0、神通 KSTORE4.5 即 KSTORE-4.5 ext_connection外部数据存储服务器的连接信息包括服务器 IP 地址、端口号、数据库名、使用的用户名和密码 username用来连接外部数据存储服务器的用户名 password用来连接外部数据存储服务器的密码 hostname外部数据存储服务器的 IP 地址 portnum外部数据存储服务器的端口号 databasename外部数据存储服务器的数据库名字
2. 删除外部数据存储服务器
DROP EXTERNAL SERVER servername;servername删除的外部数据存储服务器的名字。
3. 授予普通用户访问外部数据存储服务器权限
说明 超级用户通过执行此语句可以为普通用户授予访问外部数据存储的权限。
GRANT SELECT ON EXTSERVER servername TO username;servername外部数据存储服务器名称 username被授予权限的用户名称。
4. 回收普通用户访问外部数据存储服务器权限
超级用户通过执行此语句可以回收用户访问外部数据存储的权限。
REVOKE SELECT ON EXTSERVER servername FROM username;servername外部数据存储服务器名称 username被回收权限的用户名称。
5. 加密函数
本功能的提供一个函数接口用户通过执行此函数可以对用户的密码加密。此函数为统一用户访问功能所用。
SELECT EXTSENCRYPT(username, password);username统一用户访问的用户名。 password统一用户访问的密码。
注意用户名、密码大小写敏感。
6. 访问外部数据存储服务器 ★
通过 SELECT 语句查询外部数据存储服务器上的关系需要在访问的关系后加上 servername。
四. 跨库查询统一用户访问流程
1. 【远端】数据存储
1在【远端】准备一张表
CREATE USER abc WITH PASSWORD abc123456,;
CREATE TABLE abc.t1(A int);
INSERT INTO abc.t1 VALUES(1);2在【远端】创建用户作为 “桥梁用户”
CREATE USER DDD WITH PASSWORD ddd123456,;3授予桥梁用户 dba 权限
GRANT ROLE SYSDBA TO USER DDD;2. 【本地库】
【本地端库】需要通过已经创建好的 远端用户桥梁用户 和密码来访问远端的元数据因此需要将 远端用户桥梁用户 密码配置在【本地库】配置文件中
配置成功之后就可以创建外部数据存储服务器并访问远端数据了。 1对桥梁用户远端用户加密
SELECT EXTSENCRYPT(DDD,ddd123456,); --得到加密后密码 AAAAAA7778797A7B7C722将桥梁用户远端用户信息存到 MASTER 节点的 conf文件 ★
ENABLE_EXTS_CURRENT_USERTRUE
EXTERNAL_SERVER_USERDDD
EXTERNAL_SERVER_PASSWORDAAAAAA7778797A7B7C723创建外部数据存储服务器 ★ 配置文件设置好并启动之后需要为远端数据存储创建服务器以便于在本地即可访问远端的数据。此时不需要在此指定用户名密码
CREATE EXTERNAL SERVER STMPP_SVR TYPE STMPP-5.0 USING 192.168.101.73 PORT 2220 DATABASE MASTER;4授予普通用户访问外部数据存储服务器的权限
CREATE USER abc WITH PASSWORD abc123456,;
GRANT SELECT ON EXTSERVER stmpp_svr TO abc;5切换普通用户访问远端数据 ★ 注意本地只是将桥梁用户信息存到配置文件中访问远端数据时还是使用的普通用户
CONNECT abc/abc123456,; --切换到普通用户 abc
SELECT * FROM t1stmpp_svr; --t1 为远端表 ★ ★ ★五. 跨库查询非统一用户访问流程
1. 【远端】数据存储
1【远端】数据存储
CREATE USER DDD WITH PASSWORD ddd123456,;
CREATE TABLE ddd.t1(A int);
INSERT INTO ddd.t1 VALUES(1);2. 【本地库】
【本地端库】需要通过已经创建好的远端用户和密码来访问远端的元数据非统一用户访问需要修改参数 ENABLE_EXTS_CURRENT_USER配置在本地库配置文件中配置成功之后就可以创建外部数据存储服务器并访问远端数据了。 1配置 MASTER 节点 conf 文件 ENABLE_EXTS_CURRENT_USER 配置默认是开启的即默认支持统一用户
ENABLE_EXTS_CURRENT_USERFALSE设置成功后需要重启mpp服务 启动脚本位于Linux环境中/etc/init.d/stmpp_STMPPd 执行启动脚本
sh stmpp_STMPPd start master2创建外部数据存储服务器 ★ 配置文件设置好并启动之后需要为远端数据存储创建服务器以便于在本地即可访问远端的数据。此时要指定用户名密码
CREATE EXTERNAL SERVER STMPP_SVR TYPE STMPP-5.0 CONNECT TO DDD IDENTIFIED BY ddd123456 USING 192.168.101.73 PORT 2220 DATABASE MASTER;创建后可在 SYS_EXTERNAL_SERVER 表中看到添加的外部数据存储服务器
3授予普通用户访问外部数据存储服务器的权限
CREATE USER abc WITH PASSWORD abc123456,;
GRANT SELECT ON EXTSERVER stmpp_svr TO abc;4切换普通用户访问远端数据 ★
CONNECT abc/abc123456,; --切换到普通用户 abc
SELECT * FROM t1stmpp_svr; --t1 为远端表 ★ ★ ★