神通MPP数据库的跨库查询

news2024/11/27 18:40:46

神通MPP数据库的跨库查询

    • 一. 简介
    • 二. 系统表
    • 三. 跨库查询语法
      • 1. 创建外部数据存储服务器
      • 2. 删除外部数据存储服务器
      • 3. 授予普通用户访问外部数据存储服务器权限
      • 4. 回收普通用户访问外部数据存储服务器权限
      • 5. 加密函数
      • 6. 访问外部数据存储服务器 ★
    • 四. 跨库查询:统一用户访问流程
      • 1. 【远端】数据存储
        • (1)【远端】准备一张表
        • (2)在【远端】创建用户作为桥梁用户
        • (3) 授予桥梁用户 dba 权限
      • 2. 【本地库】
        • (1)对桥梁用户(远端用户)加密
        • (2)将桥梁用户(远端用户)信息配置到 MASTER 节点的 conf 文件 ★
        • (3)创建外部数据存储服务器 ★
        • (4)授予普通用户访问外部数据存储服务器的权限
        • (5)切换普通用户访问远端数据 ★
    • 五. 跨库查询:非统一用户访问流程
      • 1. 【远端】数据存储
        • (1)【远端】数据存储
      • 2. 【本地库】
        • (1)配置 MASTER 节点 conf 文件
        • (2)创建外部数据存储服务器 ★
        • (3)授予普通用户访问外部数
        • (4)切换普通用户访问远端数据 ★

一. 简介

跨库查询,指无需将远端外部数据存储的数据导入到本地数据库,即可通过本地数据库查询远端外部数据存储的数据,满足本地与本地、本地与远端、远端与远端的表的联合查询能力。

神通 MPP5.0 目前支持的远端外部数据存储的类型有两种,神通 MPP5.0 即 STMPP-5.0、神通 KSTORE4.5 即 KSTORE-4.5。

二. 系统表

神通 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:外部数据存储服务器的数据库名字;

注释
跨库联查访问有两种方式,① 统一用户访问,② 非统一用户访问
通过设置配置文件参数 ENABLE_EXTS_CURRENT_USER 来控制开启或关闭统一访问功能

统一用户访问是指,用户(MPP5.0)通过 MPP5.0 访问外部存储服务器的权限 和外部存储服务器的用户(与MPP5.0 用户名相同)权限一致;
使用统一用户访问功能时,需配置使用一个公共的高权限用户(DBA 权限)作为“桥梁用户”访问所有外部存储服务器。
当使用统一用户访问时不能指定 username 和 password,使用非统一用户访问时必须指定 username 和 password。

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,'); --得到加密后密码 'AAAAAA7778797A7B7C72'
(2)将桥梁用户(远端用户)信息配置到 MASTER 节点的 conf 文件 ★
ENABLE_EXTS_CURRENT_USER=TRUE
EXTERNAL_SERVER_USER=ddd
EXTERNAL_SERVER_PASSWORD='AAAAAA7778797A7B7C72'
(3)创建外部数据存储服务器 ★

配置文件设置好并启动之后,需要为远端数据存储创建服务器,以便于在本地即可访问远端的数据。

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 t1@@stmpp_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=FALSE
(2)创建外部数据存储服务器 ★

配置文件设置好并启动之后,需要为远端数据存储创建服务器,以便于在本地即可访问远端的数据。

CREATE EXTERNAL SERVER STMPP_SVR TYPE 'STMPP-5.0' CONNECT TO DDD IDENTIFIED BY 'ddd123456' USING '192.168.101.73' PORT 2220 DATABASE 'MASTER';
(3)授予普通用户访问外部数
CREATE USER abc WITH PASSWORD 'abc123456,';
GRANT SELECT ON EXTSERVER stmpp_svr TO abc;
(4)切换普通用户访问远端数据 ★
CONNECT abc/abc123456,; --切换到普通用户 abc
SELECT * FROM t1@@stmpp_svr; --t1 为远端表 ★ ★ ★

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1207615.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL中修改注释+报错1067错误时的解决方法

修改某字段的注释内容的mysql语句 ALTER TABLE consumption_table MODIFY COLUMN risk_level tinyint(1) NOT NULL DEFAULT 0 COMMENT 0-低 1-中 2-高;修改某字段的注释内容的mysql语句时报错1067的解决方法 首先执行MySQL语句&#xff1a;SET sql_mode ‘ALLOW_INVALID_DAT…

毫米波雷达的自适应波束成形技术:提升感知精度的前沿探索

毫米波雷达的自适应波束成形技术是当前雷达领域备受关注的研究方向之一。本文深入探讨了自适应波束成形技术的原理、关键技术和在各个应用领域中的前景&#xff0c;以及它如何提升毫米波雷达系统在复杂环境中的感知精度。 随着科技的不断进步&#xff0c;毫米波雷达系统在无线通…

嵌入式行业算青春饭吗?

今日话题&#xff0c;嵌入式行业算青春饭吗&#xff1f;嵌入式行业的技术要求确实非常广泛&#xff0c;需要深厚的知识广度和深度。这意味着入行门槛较高&#xff0c;我们需要了解不仅是软件和硬件&#xff0c;还要熟悉底层接口和硬件信号的处理方式&#xff0c;了解数据在计算…

什么是 IT 资产管理(ITAM),以及它如何简化业务

IT 资产管理对任何企业来说都是一项艰巨的任务&#xff0c;但使用适当的工具可以简化这项任务&#xff0c;例如&#xff0c;IT 资产管理软件可以为简化软件和硬件的管理提供巨大的优势。 什么是 IT 资产管理 IT 资产管理&#xff08;ITAM&#xff09;是一组业务实践&#xff…

【Python基础篇】字面量

博主&#xff1a;&#x1f44d;不许代码码上红 欢迎&#xff1a;&#x1f40b;点赞、收藏、关注、评论。 格言&#xff1a; 大鹏一日同风起&#xff0c;扶摇直上九万里。 文章目录 一 Python中字面量的定义二 常见的字面量类型1 数字(Number)2 字符串(String)3 列表(List)4 元…

通过key在数仓里查询dt的时候报错

现象 Query failed (#20231114_080638_00103_iaf4c) in hive: line 3:11: Column tyc_web_company_workright cannot be resolved 原因 key应该被单引号括起来&#xff0c;字段名称才应该被双引号括起来 修改 把单引号换成双引号就好了

春秋云境靶场CVE-2022-32991漏洞复现(sql手工注入)

文章目录 前言一、CVE-2022-32991靶场简述二、找注入点三、CVE-2022-32991漏洞复现1、判断注入点2、爆显位个数3、爆显位位置4 、爆数据库名5、爆数据库表名7、爆数据库数据 总结 前言 此文章只用于学习和反思巩固sql注入知识&#xff0c;禁止用于做非法攻击。注意靶场是可以练…

龙讯旷腾PWmat:新的催化反应机理——瞬态相变,对多相电催化剂的设计和多相电催化机理的研究具有重要意义

研究背景 众所周知&#xff0c;材料的性质&#xff0c;包括催化活性都是相敏感的。而材料的相与外界条件有关&#xff0c;电催化反应过程中的外部条件与反应前后的外部条件不同&#xff0c;这自然导致了一个问题&#xff1a;在反应过程中电催化剂的相是否可以与反应前后的相不…

使用VSCode进行Python模块调试

使用VSCode进行Python模块调试 创建测试文件 创建文件test/a/b.py&#xff0c;且当前工作路径为test/ b.py文件内容&#xff1a; def cal(numa, numb):print(int(numa) int(numb))if __name__ "__main__":import sys# 判断系统参数长度是否为4且判断第2个参数是…

httrOAuth库代码示例

r # 导入httr和httrOAuth库 library(httr) library(httrOAuth) # 设置服务器&#xff0c;主机为 proxy_host <- proxy_port <- proxy_url <- " # 设置httrOAuth的客户端ID和客户端密钥 consumer_key <- "your_consumer_key" consumer_secret &l…

Linux下向Github仓库推送

文章目录 Git 与 Github安装git在github下创建项目下载项目到本地Git三板斧第一板斧 git add第二板斧 git commit第三板斧 git push Git 与 Github Git是目前从开发人员到设计人员的版本控制技术。gitee是国内社交代码托管平台。这是一个你可以玩和实验的地方。在这里你可以找…

【MySQL系列】 第三章 · 函数

写在前面 Hello大家好&#xff0c; 我是【麟-小白】&#xff0c;一位软件工程专业的学生&#xff0c;喜好计算机知识。希望大家能够一起学习进步呀&#xff01;本人是一名在读大学生&#xff0c;专业水平有限&#xff0c;如发现错误或不足之处&#xff0c;请多多指正&#xff0…

【java学习—十四】反射机制概述(1)

文章目录 1. 理解反射机制2. Java Reflection 1. 理解反射机制 &#xff08;1&#xff09;人的反射原理 &#xff08;2&#xff09;java反射原理 2. Java Reflection Reflection&#xff08;反射&#xff09;是被视为动态语言的关键&#xff0c;反射机制允许程序在执行期借助…

负载均衡原理

负载均衡原理是什么&#xff1f; 负载均衡Load Balance&#xff09;是高可用网络基础架构的关键组件&#xff0c;通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。负载均衡&#xff0c;其核心就是网络流量分发&#xff0c;分很多维度。 …

python数据结构与算法-04_队列

队列和栈 前面讲了线性和链式结构&#xff0c;如果你顺利掌握了&#xff0c;下边的队列和栈就小菜一碟了。因为我们会用前两章讲到的东西来实现队列和栈。 之所以放到一起讲是因为这两个东西很类似&#xff0c;队列是先进先出结构(FIFO, first in first out)&#xff0c; 栈是…

fastDFS文件存储获取tracker连接报空指针异常

一、问题 异常报错&#xff1a; 2023-11-14 15:12:58.530 ERROR 13888 --- [nio-9008-exec-2] com.changgou.file.util.FastDFSClient : Exception when uploadind the file:1.jpg java.lang.NullPointerException: null at org.csource.fastdfs.TrackerClient.getC…

Ansible 企业实战详解

一、ansible简介1. ansible是什么2.ansible的特点ansible的架构图 二、ansible 任务执行1、ansible 任务执行模式2、ansible 执行流程3、ansible 命令执行过程 二 .Ansible安装部署1.yum安装2.ansible 程序结构3、ansible配置文件查找顺序4、ansible配置文件5.ansible自动化配置…

原神助手 一款支持祈愿分析、查看便签状态和获取游戏详细数据的开源工具。

原神助手 「原神助手」支持祈愿分析、查看便签状态和获取游戏详细数据等。 如何获取祈愿链接 如果你是在 Windows 平台上游玩原神并且当前使用的电脑上安装了原神&#xff0c;那么你可以&#xff1a; 打开原神&#xff0c;进入祈愿页面&#xff0c;点击历史记录&#xff0c;…

软件测试自学指南,十年阿里测试工程师的建议

通过技能提升&#xff0c;入行IT可以的&#xff0c;但得先积累足够的经验&#xff0c;才能拿高薪&#xff0c;有个成长的过程。 软件测试岗介绍 软件测试岗位主要负责系统的测试工作&#xff0c;属于IT项目中的质量管理&#xff08;QA&#xff09;模块。 这个岗位分为两种类…