OushuDB 创建和管理外部表(中)

简介: OushuDB 创建和管理外部表(中)

bVcWx8k.png



创建外部表


创建一个外部表,使用CREATE EXTERNAL TABLE命令。在这个命令里,需声明新表名称,各列名称及其数据类型,基于命令的EXECUTE子句或基于URL的LOCATION子句的外部数据来源,数据格式。

当创建一个可读外部表时,location子句需指定使用一种协议指向外部数据源,format子句需指定TEXT、CSV、ORC或CUSTOM用户自定义文本格式。比如:使用gpfdist协议在gpfdist目录中找到(.txt)格式的所有文本文件,来创建一个名为ext_customer的可读外部表。这些文件的格式是以‘|’作为列分隔符,空白空间为空。还可以在单行错误隔离模式下访问外部表的SQL定义:

CREATE EXTERNAL TABLE ext_customer(id int, name text, sponsor text)LOCATION ( 'gpfdist://filehost:8081/*.txt' )FORMAT 'TEXT' ( DELIMITER '|' NULL ' ')LOG ERRORS INTO err_customer SEGMENT REJECT LIMIT 5;

或者创建与上面相同的可读外部表定义,但使用CSV格式文件的示例:

CREATE EXTERNAL TABLE ext_customer(id int, name text, sponsor text)LOCATION ( 'gpfdist://filehost:8081/*.csv' )FORMAT 'CSV' ( DELIMITER ',' );

当创建一个可读web外部表时,除location子句方式指定外部数据方式外,还可以使用execute子句运行指定脚本(脚本必须位于所有segment主机上的同一位置)来访问外部数据源。比如:在第五个虚拟节点执行指定脚本创建一个外部表的SQL定义:

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

当创建一个可写外部表时,location子句使用上述协议之一指向外部数据源,format子句指定TEXT、CSV、ORC或CUSTOM用户自定义文本格式。例如:以下SQL命令显示如何创建可写hdfs外部表以自由加载、卸载、查询和插入数据:

CREATE WRITABLE EXTERNAL TABLE tbexternal (a int,b decimal(10,2),t text,d date)LOCATION ('hdfs://host1:port1/tbexternaldir')FORMAT 'csv' (DELIMITER '|')LOG ERRORS INTO err_tbexternal SEGMENT REJECT LIMIT 5;

此表支持读取和写入,路径’/tbexternaldir’中的所有文件都可以读取以进行查询或加载,用户还可以通过将数据写入同一路径’/tbexternaldir’来卸载或将数据插入此表。操作此外部表的一些示例如下所示:

INSERT INTO tbexternal SELECT FROM tb;INSERT INTO tbexternal SELECT FROM tb WHERE t like 'test%';INSERT INTO tb SELECT FROM tbexternal;INSERT INTO tb SELECT FROM tbexternal WHERE t like 'test%';SELECT a,b FROM tbexternal WHERE b > 10;SELECT T1.a, T1.d FROM tbexternal T1, tbinternal T2 WHERE T1.t = T2.t;

以下命令显示如何以orc格式创建可写hdfs外部表:

CREATE WRITABLE EXTERNAL TABLE orcexternal (p text,q text)LOCATION ('hdfs://host1:port1/orcexternaldir')FORMAT 'ORC' (COMPRESSTYPE 'lz4');

以下命令显示如何以orc格式创建可写hive外部表:

CREATE WRITABLE EXTERNAL TABLE orcexternal (p text,q text)LOCATION ('hive://host1:port1/dbname/orctablename’)FORMAT 'ORC' (COMPRESSTYPE 'lz4');

当创建一个可写Web外部表时,使用location子句指定外部数据源或execute子句指定执行脚本,使用format子句指定TEXT、CSV、ORC或CUSTOM用户自己定义的文本格式。例如:创建一个可写的外部web表,该表将segment接收到的输出数据管道化到名为_adreport_etl.sh的可执行脚本:

CREATE WRITABLE EXTERNAL WEB TABLE campaign_out (LIKE campaign)EXECUTE '/var/unload_scripts/to_adreport_etl.sh'FORMAT 'TEXT' (DELIMITER '|');
目录
相关文章
|
5月前
|
数据可视化 API 数据库
低代码是什么?2025低代码技术详解:平台分类、用户群体与发展趋势分析
低代码(Low Code)是一种通过可视化工具和预构建组件,以少量或无代码快速开发应用的技术。2014年Forrester定义其为“用最少手工编码快速开发并部署应用的技术”,随后Gartner推广aPaaS/iPaaS概念推动其发展。
|
7月前
|
机器学习/深度学习 人工智能 搜索推荐
DeepSeek 速成指南:普通人也能秒懂的 AI 实战手册
DeepSeek 是一款强大的中文大语言模型,能处理长文本、多模态输入,适用于职场、学习、生活等场景。它擅长文案创作、数据分析与复杂任务拆解,相比 ChatGPT,在中文表达和网络热梗上更具优势。掌握精准提问、结果校验和效率工具三大技能,可大幅提升使用效果。同时,避免过度依赖、隐私泄露和伦理模糊的“三大天坑”,并通过角色扮演、思维链拆解等进阶技巧挖掘潜力。DeepSeek 不是替代品,而是助力你高效完成任务、拓展知识边界的超级大脑。未来属于善于与 AI 协作的人,立即行动,设计专属协作流程!
336 0
DeepSeek 速成指南:普通人也能秒懂的 AI 实战手册
|
7月前
|
机器学习/深度学习 设计模式 API
Python 高级编程与实战:构建 RESTful API
本文深入探讨了使用 Python 构建 RESTful API 的方法,涵盖 Flask、Django REST Framework 和 FastAPI 三个主流框架。通过实战项目示例,详细讲解了如何处理 GET、POST 请求,并返回相应数据。学习这些技术将帮助你掌握构建高效、可靠的 Web API。
|
数据采集 关系型数据库 MySQL
MySQL表约束的种类与应用
在设计数据库时,合理应用各种约束对于创建一个结构化良好且能够有效维护数据完整性的数据库至关重要。每种约束类型都有其特定的应用场景,理解并正确应用这些约束,可以大大提高数据库应用的稳定性和性能。
246 3
|
8月前
|
机器学习/深度学习 数据可视化 算法
YOLOv9改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
YOLOv9改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
656 5
YOLOv9改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
|
移动开发 编解码 监控
HTML5 Video(视频)作为背景的优化方案
使用 HTML5 `<video>` 标签作为网页背景视频可以提升视觉效果,但需优化以确保性能和用户体验。主要方法包括:选择合适的视频格式(MP4、WebM、Ogg)和分辨率(720p 或更低),压缩文件大小,确保视频静音和循环播放,使用 CSS 设置全屏样式,根据设备和网络条件加载视频或静态图像,使用 `playsinline` 属性和延迟加载技术提高性能,确保无障碍性,并监控页面加载时间。合理应用背景视频可增强网站视觉效果而不影响用户体验。
|
网络安全 开发工具 云计算
服务器看代码阿里云
随着云计算技术的发展,阿里云作为国内领先的云计算服务提供商,其服务器受到广大用户青睐。本文主要介绍如何在阿里云服务器上便捷地查看与管理代码,如使用SSH连接服务器并通过命令行工具打开文件,以及利用Git进行版本控制和协作开发,提高代码管理效率。无论个人开发者还是企业团队,都能借助阿里云服务器高效地部署与管理应用程序,提升工作效率及产品质量。
203 10
Vue3项目使用 wow.js 让页面滚动更有趣~
本文介绍了如何在Vue3项目中集成wow.js库,通过实现滚动动画效果来增强页面的动态性和趣味性,并提供了详细的使用示例和参数说明。
790 0
Vue3项目使用 wow.js 让页面滚动更有趣~
|
API vr&ar 开发工具
GoogleVRForUnity✨一款常用的谷歌VR插件教程
GoogleVRForUnity✨一款常用的谷歌VR插件教程
|
Android开发
Android自定义之高仿淘宝下拉刷新
Android自定义之高仿淘宝下拉刷新
182 0