greenplum external table

简介: greenplum 外部表 第一次听到外部表,后来查了一下,oracle也有外部表(孤陋寡闻) greenplum 外部表:一张表的数据指向数据库之外的数据文件 外部表需要指定gpfdist的ip和端口,还有详细的目录地址,其中文件名支持通配符。
greenplum 外部表

第一次听到外部表,后来查了一下,oracle也有外部表(孤陋寡闻)

greenplum 外部表:一张表的数据指向数据库之外的数据文件
外部表需要指定gpfdist的ip和端口,还有详细的目录地址,其中文件名支持通配符。可以编写多个gpfdist的地址,但是不能超过总的segment数


tutorial=> \h create external
Command:     CREATE EXTERNAL TABLE
Description: define a new external table
Syntax:
CREATE [READABLE] EXTERNAL TABLE table_name
     ( column_name data_type [, ...] | LIKE other_table )
      LOCATION ('file://seghost[:port]/path/file' [, ...])
        | ('gpfdist://filehost[:port]/file_pattern[#transform]'
        | ('gpfdists://filehost[:port]/file_pattern[#transform]'
            [, ...])
        | ('gphdfs://hdfs_host[:port]/path/file')
      FORMAT 'TEXT'
            [( [HEADER]
               [DELIMITER [AS] 'delimiter' | 'OFF']
               [NULL [AS] 'null string']
               [ESCAPE [AS] 'escape' | 'OFF']
               [NEWLINE [ AS ] 'LF' | 'CR' | 'CRLF']
               [FILL MISSING FIELDS] )]
           | 'CSV'
            [( [HEADER]
               [QUOTE [AS] 'quote']
               [DELIMITER [AS] 'delimiter']
               [NULL [AS] 'null string']
               [FORCE NOT NULL column [, ...]]
               [ESCAPE [AS] 'escape']
               [NEWLINE [ AS ] 'LF' | 'CR' | 'CRLF']
               [FILL MISSING FIELDS] )]
           | 'CUSTOM' (Formatter=<formatter specifications>)
     [ ENCODING 'encoding' ]
     [ [LOG ERRORS INTO error_table] SEGMENT REJECT LIMIT count
       [ROWS | PERCENT] ]
CREATE [READABLE] EXTERNAL WEB TABLE table_name
     ( column_name data_type [, ...] | LIKE other_table )
      LOCATION ('http://webhost[:port]/path/file' [, ...])
    | EXECUTE 'command' [ON ALL
                          | MASTER
                          | number_of_segments
                          | HOST ['segment_hostname']
                          | SEGMENT segment_id ]
      FORMAT 'TEXT'
            [( [HEADER]
               [DELIMITER [AS] 'delimiter' | 'OFF']
               [NULL [AS] 'null string']
               [ESCAPE [AS] 'escape' | 'OFF']
               [NEWLINE [ AS ] 'LF' | 'CR' | 'CRLF']
               [FILL MISSING FIELDS] )]
           | 'CSV'
            [( [HEADER]
               [QUOTE [AS] 'quote']
               [DELIMITER [AS] 'delimiter']
               [NULL [AS] 'null string']
               [FORCE NOT NULL column [, ...]]
               [ESCAPE [AS] 'escape']
               [NEWLINE [ AS ] 'LF' | 'CR' | 'CRLF']
               [FILL MISSING FIELDS] )]
           | 'CUSTOM' (Formatter=<formatter specifications>)
     [ ENCODING 'encoding' ]
     [ [LOG ERRORS INTO error_table] SEGMENT REJECT LIMIT count
       [ROWS | PERCENT] ]
CREATE WRITABLE EXTERNAL TABLE table_name
    ( column_name data_type [, ...] | LIKE other_table )
     LOCATION('gpfdist://outputhost[:port]/filename[#transform]'
      | ('gpfdists://outputhost[:port]/file_pattern[#transform]'
          [, ...])
      | ('gphdfs://hdfs_host[:port]/path')
      FORMAT 'TEXT'
               [( [DELIMITER [AS] 'delimiter']
               [NULL [AS] 'null string']
               [ESCAPE [AS] 'escape' | 'OFF'] )]
          | 'CSV'
               [([QUOTE [AS] 'quote']
               [DELIMITER [AS] 'delimiter']
               [NULL [AS] 'null string']
               [FORCE QUOTE column [, ...]] ]
               [ESCAPE [AS] 'escape'] )]
           | 'CUSTOM' (Formatter=<formatter specifications>)
    [ ENCODING 'write_encoding' ]
    [ DISTRIBUTED BY (column, [ ... ] ) | DISTRIBUTED RANDOMLY ]
CREATE WRITABLE EXTERNAL WEB TABLE table_name
    ( column_name data_type [, ...] | LIKE other_table )
    EXECUTE 'command' [ON ALL]
    FORMAT 'TEXT'
               [( [DELIMITER [AS] 'delimiter']
               [NULL [AS] 'null string']
               [ESCAPE [AS] 'escape' | 'OFF'] )]
          | 'CSV'
               [([QUOTE [AS] 'quote']
               [DELIMITER [AS] 'delimiter']
               [NULL [AS] 'null string']
               [FORCE QUOTE column [, ...]] ]
               [ESCAPE [AS] 'escape'] )]
           | 'CUSTOM' (Formatter=<formatter specifications>)
    [ ENCODING 'write_encoding' ]
    [ DISTRIBUTED BY (column, [ ... ] ) | DISTRIBUTED RANDOMLY ]

tutorial=>


创建外部表流程

1.文件服务器中启动gpfdist服务

[gpadmin@master admin]$ nohup /usr/local/greenplum-db/bin/gpfdist -d /home/admin/ -p 8888> /tmp/gpfdist.log  &
[1] 9928
[gpadmin@master admin]$ cat /tmp/gpfdist.log
Serving HTTP on port 8888, directory /home/admin/


文件服务器路径已经要准确,否则,之前创建的外部表就会出错


2.创建语句

CREATE EXTERNAL TABLE public.test001_ext
(
 id int,
name varchar(100)
)
LOCATION (
    'gpfdist://192.168.1.80:8888/gpextdata/d.txt'
)
FORMAT 'text' (delimiter ',' null '' escape 'OFF')
ENCODING 'GB18030'; 



tutorial=> CREATE EXTERNAL TABLE public.test001_ext                                               
(  id int, name varchar(100)  )
LOCATION (  'gpfdist://192.168.1.80:8888/gpextdata/d.txt'  )  
 FORMAT 'text' (delimiter ',' null '' escape 'OFF') 
 ENCODING 'GB18030';
CREATE EXTERNAL TABLE
tutorial=> select * from test001_ext;
ERROR:  http response code 404 from gpfdist (gpfdist://192.168.1.80:8888/gpextdata/d.txt): HTTP/1.0404 file not found (url.c:326)  (seg0 slice1 slave1:40000 pid=1847) (cdbdisp.c:1477)

文件路径有问题

tutorial=> CREATE EXTERNAL TABLE public.test001_ext                                               
(                                                                                                   id int,                                                                                           name varchar(100)                                                                                  )                                                                                                  LOCATION (                                                                                             'gpfdist://192.168.1.80:8888/gpextdata/d.txt'                                                            )                                                                                                  FORMAT 'text' (delimiter ',' null '' escape 'OFF')                                                 ENCODING 'GB18030';CREATE EXTERNAL TABLE
tutorial=> select * from test001_ext;
id | name
----+------
  1 | 2
  3 | 4
(2 rows)



CREATE EXTERNAL TABLE public.test001_ext
(
 id int,
name varchar(100)
)
LOCATION (
    'gpfdist://192.168.1.80:8888/gpextdata/d.txt'
)
FORMAT 'text' (delimiter ',' null '' escape 'OFF')
ENCODING 'GB18030';

tutorial=> select * from test001_ext;
id | name
----+------
  1 | 2
  3 | 4
(2 rows)


可以编写多个gpfdist的地址,但是不能超过总的segment数
tutorial=> CREATE EXTERNAL TABLE public.test002_ext
tutorial-> ( id int ,name varchar(100))
tutorial-> LOCATION (
tutorial(>     'gpfdist://192.168.1.80:8888/gpextdata/d.txt',
tutorial(> 'gpfdist://192.168.1.80:8888/gpextdata/b.txt',
tutorial(> 'gpfdist://192.168.1.80:8888/gpextdata/c.txt')
tutorial-> FORMAT 'text' (delimiter ',' null '' escape 'OFF')
tutorial-> ENCODING 'GB18030';
CREATE EXTERNAL TABLE
tutorial=> select * from test002_ext;
ERROR:  There are more external files (URLs) than primary segments that can read them. Found 3 URLs
and 2 primary segments
目录
相关文章
|
3天前
|
人工智能 自然语言处理 安全
阿里云AI数智鉴密:AI 生成内容如何拿到一张"防篡改的身份证"
隐形水印 + C2PA签名:让AI生成内容“持证上岗”。
1102 0
|
12天前
|
人工智能 自然语言处理 安全
阿里云千问办公、Qoder Teams、Qoder CN区别与选择指南:模型能力、适用场景与最新活动参考
本文聚焦阿里云2026年推出的三款自研AI办公产品,清晰拆解千问办公、Qoder Teams、Qoder CN的差异化定位与能力边界:千问办公主打职场全场景提效,支持自然语言指令一键完成PPT生成、数据分析等高频办公任务;Qoder Teams面向程序员团队,深度整合AI代码生成、团队协同与企业知识库能力;Qoder CN则专为金融、政务等强合规场景打造,实现数据不出境与VPC私有化部署。文章同步给出分场景选型指南与最新活动定价,帮助不同类型的企业按需组合产品,实现业务岗、研发岗与强合规场景的AI能力全覆盖。
3687 3
阿里云千问办公、Qoder Teams、Qoder CN区别与选择指南:模型能力、适用场景与最新活动参考
|
24天前
|
人工智能 缓存 前端开发
DeepSeek Harness 首发实测 + 入门教程,夯爆了!梁神我错了
DeepSeek Harness + DeepSeek V4 Pro 项目实战保姆级教程!手把手带你从零安装开源 AI 编程工具,开发架构图、知识讲解网站、3D 网页游戏、全栈 AI 应用 4 个项目,覆盖运行模式选择、插件安装与开发,看看能不能对标 Claude。
13476 93
DeepSeek Harness 首发实测 + 入门教程,夯爆了!梁神我错了
|
17天前
|
Web App开发 人工智能 API
16 个超火的 DeepSeek Harness 插件,大肥鱼已经落后 N 个版本了。。。
DeepSeek Harness 精选插件推荐合集,从图片识别、浏览器操控、多 Agent 协作到手机远程控制,一口气带你看完 DSH 社区热门的十几个插件,覆盖技能扩展、UI 界面增强、整活玩法三大类,让你的鲸鱼变得更强。
1956 5
|
3天前
|
人工智能 运维 BI
阿里云千问办公QwenWork深度解析:基于Qwen3.8,六大核心能力重构企业全自动化工作流与计费选型指南
传统AI办公工具大多停留在对话问答、文档摘要、简单文案生成层面,只能完成单点碎片化任务,无法自主拆解复杂业务流程,很难串联多工具、多文档、外部业务系统完成端到端完整工作交付。很多企业在落地AI办公的时候,需要组合多款不同工具,来回切换界面,手动复制粘贴中间结果,智能化改造落地门槛居高不下。千问办公QwenWork是整合多款智能体产品能力打造的一体化企业办公智能体平台,底层基座依托Qwen3.8大模型,打通桌面端Agent、云端Agent、企业协同Agent三种运行形态,不再局限简单问答,接收业务目标之后自主拆解任务步骤,调用各类工具,处理文档、表格、浏览器自动化、数据查询,直接输出可交付的办公
872 0
|
12天前
|
人工智能 Linux iOS开发
Ollama使用教程:Ollama官网下载、Ollama本地部署大模型(2026最新)
Ollama 是一款免费开源的本地大模型运行工具,支持在 Windows/macOS/Linux 上离线运行 Qwen、DeepSeek、Llama 等主流开源模型,数据不出本机、隐私安全。提供 OpenAI 兼容 API,命令行一键拉取/运行/管理模型,无需联网,无调用限制,是开发者与 AI 爱好者部署本地 AI 助手的理想选择。(239 字)
|
9天前
|
人工智能 并行计算 数据可视化
秋叶ComfyUI-AKI最新整合包|完整部署教程+核心指令手册
秋叶ComfyUI-AKI一键整合包,国内适配最优、稳定性最强的商用/学习级版本:全封装虚拟环境、预装90%常用节点、内置绘世启动器与成熟工作流,免配置、零依赖、解压即用,完美兼顾新手入门与专业批量生产需求。(239字)
|
9天前
|
人工智能 监控 测试技术
Qwen3.8-Flash 来了,100万上下文、Agent、Coding 都加强了
8月26日,通义千问发布Qwen3.8-Flash-Next:125B参数、每Token仅激活6B,原生支持26万Token、可扩展至100万上下文;Coding、Agent与工具调用能力显著增强,面向真实软件工程任务,推动大模型从“回答问题”迈向“完成工作”。

热门文章

最新文章