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

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

bVcWx8K.png


外部表是一个数据存储在数据库外部的OushuDB数据库表,允许OushuDB对存储在数据库之外的数据源中的数据进行访问,就像数据存储在常规数据库表中一样。外部表分可读和可写,数据可以从外部表读取或写入。它和常规数据库表的用法一样, 可以执行INSERT、SELECT、JOIN等操作。外部表通常用于快速并行加载和卸载数据库数据。

外部web表允许OushuDB数据库处理动态数据源,它可以在查询运行时进行更改,因此数据不可重新记录。且外部web表提供对HTTP服务器或操作系统进程提供的数据的访问。

接下来将通过以下目录章节详细介绍外部表:


外部表定义


创建可读外部表或创建可读外部WEB表是在OushuDB中创建一个新的可读外部表定义。可读外部表通常用于快速并行数据加载。一旦定义了外部表,就可以使用SQL命令直接(并行)查询其数据。例如,可以对外部表数据进行查询、关联或排序。也可以为外部表创建视图。不允许对可读外部表执行DML操作(UPDATE、INSERT、DELETE或TRUNCATE)。

创建可写外部表或创建可写外部WEB表是在OushuDB中创建一个新的可写外部表定义。可写外部表通常用于将数据从数据库卸载到一组文件或命名管道中。可写外部web表也可用于将数据输出到可执行程序。一旦定义了可写外部表,就可以从数据库表中选择数据并将其插入可写外部表中。可写外部表允许INSERT–不允许SELECT、UPDATE、DELETE。目前只有hdfs协议和hive协议支持TRUNCATE。

在OushuDB中,Web外部表可通过两种方式访问动态数据源:可以在Web服务器上通过http://protocol访问文件表,也可以通过执行操作系统命令或脚本访问数据表。

定义外部表时,需使用location子句指定外部数据的位置,使用format子句指定外部表文件格式。

LOCATION子句指定外部数据的位置。location字符串以协议字符串开头,该字符串指定用于访问数据的存储类型和协议。你可以使用以下协议访问外部表数据源,但不能在一个CREATEA EXTERNAL TABLE命令中混合使用多个协议。

● gpfdist://protocol指定由一个或多个OushuDB文件服务器gpfdist实例提供服务的数据文件。

● 「http:/」- http://www.oushu.com/ /protocol指定一个或多个http url,并与web表一起使用。

● hdfs://protocol指定由hadoop hdfs文件系统提供服务的数据文件。

● hive://protocol指定由Hive数据库提供服务的数据文件。


Note:


不推荐使用file://。相反,请使用gpfdist://、gpfdists://、hive://、hdfs://或COPY命令。

FORMAT子句指定如何格式化外部数据,对于gpfdist协议,有效的平面文件格式(包括HDFS中的文件)是分隔文本(TEXT)格式和逗号分隔值(CSV)格式。 版本3.0增加了对hdfs协议中orc格式的支持。如果文件中的数据不使用默认列分隔符、转义符、空字符串等,则必须指定其他格式选项,以便OushuDB正确读取外部文件中的数据。


Note


OushuDB目前只有hdfs协议和hive协议支持ORC格式。

以下内容是外部表定义的SQL命令,包含创建、修改和删除外部表:


目录
相关文章
|
7月前
|
缓存 NoSQL Java
基于SpringBoot的Redis开发实战教程
Redis在Spring Boot中的应用非常广泛,其高性能和灵活性使其成为构建高效分布式系统的理想选择。通过深入理解本文的内容,您可以更好地利用Redis的特性,为应用程序提供高效的缓存和消息处理能力。
588 79
|
5月前
|
数据采集 人工智能 自然语言处理
|
7月前
|
关系型数据库 Shell 网络安全
定期备份数据库:基于 Shell 脚本的自动化方案
本篇文章分享一个简单的 Shell 脚本,用于定期备份 MySQL 数据库,并自动将备份传输到远程服务器,帮助防止数据丢失。
|
11月前
|
JavaScript 计算机视觉
FLUX.1 Tools 全家桶开源!文末附一键ComfyUI启动链接
Black Forest Labs 发布了 FLUX.1 Tools,一套增强 FLUX.1 文本转图像模型的工具集,包括 FLUX.1 Fill、FLUX.1 Depth、FLUX.1 Canny 和 FLUX.1 Redux,分别用于图像修复、深度引导、边缘检测和图像重组。提供详细的安装指南和模型下载链接,支持用户快速上手并优化图像处理流程。
3921 4
FLUX.1 Tools 全家桶开源!文末附一键ComfyUI启动链接
|
存储 C语言
C语言中a 和&a 有什么区别
在C语言中,"a" 是一个变量的名字,代表存储在内存中的某个值。而"&a" 则是获取该变量的内存地址,即变量a在计算机内存中的具体位置。这两者的主要区别在于:"a" 操作的是变量中的值,"&a" 操作的是变量的内存地址。
1626 23
|
机器学习/深度学习 并行计算 调度
CuPy:将 NumPy 数组调度到 GPU 上运行
CuPy:将 NumPy 数组调度到 GPU 上运行
457 1
|
算法
算法提高:计算几何基础 | 详解凸包问题
点集Q的凸包(convex hull)是指一个最小凸多边形,满足Q中的点或者在多边形边上,或者在其内
361 0
算法提高:计算几何基础 | 详解凸包问题
|
缓存 Kubernetes Linux
CentOS 7上的GitLab Runner,让你的项目加速奔跑
CentOS 7上的GitLab Runner,让你的项目加速奔跑
641 1
|
存储 弹性计算 运维
自动对磁盘分区、格式化、挂载
【4月更文挑战第29天】
224 1
|
Go
域名重定向工具 —— SwitchHosts 实用教程
域名重定向工具 —— SwitchHosts 实用教程
1454 0