当前位置: 首页 > news >正文

人大金仓分析型数据库外部表(二)

外部表错误数据

默认情况下,如果外部表数据中包含有一个错误,命令就会失败并且不会有数据被载入到目标数据库表中。gpfdist 文件服务器使用 HTTP 协议。使用 LIMIT的外部表查询会在检索到所需的
行后结束连接,导致一个HTTP 套接字错误。 如果用户对使用 gpfdist:// http:// 协议的外部表使用带 LIMIT 的查询,请忽略这些错误 - 数据已经被按照预期返回给数据库。

 创建外部Web表 

        外部Web表允许数据库像处理常规数据表一样处理动态数据源。由于Web表数据可以在查询运行时更改,因此数据无法重新扫描。CREATE EXTERNAL WEB TABLE建立一个外部表的定义。你可以定义基于命令或基于URL的外部Web表。定义形式是不同的: 不能将基于命令的和基于URL的定义混在一起。

基于命令外部Web

        一个shell命令或者脚本的输出可定义基于命令的Web表数据。将命令放在CREATE EXTERNAL WEB TABLEEXECUTE子句里。数据是命令运行时的最新数据。语句EXECUTE在指定的master实例节点上运行shell命令或脚本。命令和脚本必须存在于EXECUTE子句中定义的host上。命令默认会在当活跃节点上有输出的行要处理时。 例如,如果每个宿主机器上运行4个有输出行待处理的节点实例, 命令会在每个宿主机器上运行4次。 可以限制运行web表命令的节点实例数量。 所有在web表定义ON子句中的节点会并行运行命令。

        指定在外部表定义中的命令会从数据库运行,但不会从.bashrc或.profile 中加载环境变量。 在EXECUTE子句中设置环境变量。例如:

=# CREATE EXTERNAL WEB TABLE output (output text)
EXECUTE 'PATH=/home/gpadmin/programs; export PATH; myprogram.sh'
FORMAT 'TEXT';

        脚本必须对于用户是可执行的,并且在master实例节点上路径相同。下面命令定义了一个运行脚本的web表。 脚本运行在有数据需要处理的节点上。

=# CREATE EXTERNAL WEB TABLE log_output
(linenum int, message text)
EXECUTE '/var/load_scripts/get_log_data.sh' ON HOST
FORMAT 'TEXT' (DELIMITER '|');

基于URL外部Web表

        基于URL的web表从HTTP协议的服务器访问数据。 Web表数据是动态的,不可重新扫描的。在LOCATION里定义基于http://协议的web服务文件路径。 web数据文件必须存在于节点可访问的web服务器上。 指定的URL数量与并行访问web表的节点实例数量相关。 例如,如果为一个有8个节点的MPP数据库指定两个外部文件, 8个节点中的两个会在查询运行时并行访问web表。下面的例子定义了一个从多个URL获取数据的web表。

=# CREATE EXTERNAL WEB TABLE ext_expenses (name text,
date date, amount float4, category text, description text)
LOCATION (
'http://intranet.company.com/expenses/sales/file.csv',
'http://intranet.company.com/expenses/exec/file.csv',
'http://intranet.company.com/expenses/finance/file.csv',
'http://intranet.company.com/expenses/ops/file.csv',
'http://intranet.company.com/expenses/marketing/file.csv',
'http://intranet.company.com/expenses/eng/file.csv'
)
FORMAT 'CSV' ( HEADER );
http://www.lryc.cn/news/176840.html

相关文章:

  • rtp流广播吸顶喇叭网络有源吸顶喇叭
  • Spring学习笔记12 面向切面编程AOP
  • 【0225】源码分析postgres磁盘块(disk block)定义
  • 第九章 动态规划 part11 123. 买卖股票的最佳时机III 188. 买卖股票的最佳时机IV
  • 阿里云服务器共享型和企业级独享有什么区别?
  • Vue.js基本语法上
  • 【1333. 餐厅过滤器】
  • wifi7有关的210个提案
  • 200行C++代码写一个Qt俄罗斯方块小游戏
  • 蓝桥杯每日一题20223.9.26
  • 查看基站后台信息
  • 关于坐标的旋转变换和坐标系的旋转变换
  • 2023.9.19 关于 数据链路层 和 DNS 协议 基本知识
  • 如何保证接口幂等性
  • 搭建智能桥梁,Amazon CodeWhisperer助您轻松编程
  • 数组和指针笔试题解析之【指针】
  • 【Linux】之Centos7卸载KVM虚拟化服务
  • 智能电力运维系统:数字化转型在电力行业的关键应用
  • eslint报错:no-empty-source
  • 图论17(Leetcode864.获取所有钥匙的最短路径)
  • vue 脚手架 入门 记录
  • 汽车租赁系统演示租车小程序H5开发
  • 【MySQL】 MySQL 更新数据机制
  • 批次管理在MES管理系统中有哪些应用
  • python命名规范
  • Redis学习笔记--002
  • Visual Stdio 2019 win10 64bit下 无法找到 资源编译器DLL,请确认路径是否正确,和无法下载 win10SDK_10.0
  • 设计模式:中介者模式(C++实现)
  • Python常用函数
  • 进程与线程的记忆方法