返回首页

gbase数据、南大通用产品文档:GBase8a跨引擎关联查询

更新日期:2024年09月11日

与数据清洗和历史数据管理相比,更加灵活的业务场景是:实时进行跨引擎的关联
查询。如最简单的:
代码示意:
Select * from t_8a inner join t_hive on t_8a.no = t_hive.no where …
其中t_8a 为8a mpp 数据引擎表,t_hive 为Hadoop hive 引擎表。
GBaseUP 构建了基于规则和成本的优化器,能够既充分利用各自引擎的特色运算,
又能保证在引擎间交互的数据最小化,同时利用高效的数据交换总线,从而实现自
动优化的引擎间实时关联分析。
DML 操作的事务管理依赖具体引擎,
如果每个引擎都支持标准的XA,
则GBase UP
整体支持事务,
当前GBase 8t 支持XA,
而GBase 8aMPP 和Hive 虽然都支持ACID,
但是都不支持XA,所以在单引擎操作时GBase 8a MPP 支持多语句长事务,Hive
支持单语句事务,混合引擎交互写操作时采用自动提交当前事务的模式。

TRUNCATE HIVE PARTITION
语法格式
TRUNCATE TABLE [database_name.]table_name PARTITION partition_spec;
参数说明

database_name:可选参数,表示表隶属的数据库名称。如果省略此参数,即为
USE 后的数据库名称。

table_name:是要执行的表的名称。

Partition_spec:是要删除的分区的名称。
功能
TRUNCATE TABLE 删除分区中的所有行,
但该分区保持不变。
适用于Hive 引擎的
分区表。
示例
示例1:

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 653
gbase> create table hp2(a int,b int) partitioned by (c int) engine=hive;
Query OK, 0 rows affected

gbase> insert into hp2 partition (c = 100) values (10,20);
Query OK, 1 row affected

gbase> select * from hp2;
+------+------+------+
| a | b | c |
+------+------+------+
| 10 | 20 | 100 |
+------+------+------+
1 row in set
gbase> show partitions from hp2;
+-----------+
| partition |
+-----------+
| c=100 |
+-----------+
1 row in set
gbase> create table hp2(a int,b int) partitioned by (c int) engine=hive;
Query OK, 0 rows affected
gbase> insert into hp2 partition (c = 100) values (10,20);
Query OK, 1 row affected

gbase> select * from hp2;
+------+------+------+
| a | b | c |
+------+------+------+
| 10 | 20 | 100 |
+------+------+------+
1 row in set

gbase> show partitions from hp2;
+-----------+
| partition |
+-----------+
| c=100 |
+-----------+
1 row in set

gbase> truncate table hp2 partition(c=100);
Query OK

gbase> show partitions from hp2;
+-----------+
| partition |
+-----------+
| c=100 |

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 654

注意
在GBase JDBC 中,不要执行“set names”来设置字符集,因为驱动不会发现字符
集已经改变,而是会继续使用在初始化连接设置时使用的字符集。
在GBase JDBC 中,
不要执行“use database”来试图改变当前Statement 使用的数据
库,因为驱动不会发现你已经切换了数据库,针对使用人员不能通过接口明确知道当
前使用的数据库,容易导致将目标sql 执行到非预期的数据库上。
正确做法是通过Connection.setCatalog()方式切换数据库,且只能在Statement 创建
之前改变数据库,一旦Statement 创建了就不能修改其使用的数据库。
示例
正确用例参考如下:

GBase UP 产品手册 6 应用开发指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 1131
conn.setCatalog("test1");
Statement stm1= conn.createStatement();
conn.setCatalog("test2");
Statement stm2= conn.createStatement();
这样stm1,stm2 分别使用test1,test2。



GBase UP 产品手册 6 应用开发指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 1132
基于ODBC 开发
ODBC 概述
ODBC 简介
概述
ODBC(开放数据库互连)为客户端程序提供了一种通用的接口来存取数据库。
ODBC 是标准化的API,
允许到SQL 数据库服务器的连接。
它根据SQL Access Group
的说明书开发,并定义了一系列的函数调用,错误代码和数据类型,这些可以用来
开发独立于数据库的应用程序。
ODBC 经常被用在当要求独立于数据库或同步访问
不同的数据源时。
ODBC 是应用程序广泛使用的数据库访问接口。它是基于对数据库APIs 的X/Open
和 ISO/IEC 标准的分级调用接口(CLI)规范,并且使用结构化查询语句(SQL)
作为它的数据库访问语言。
ODBC 支持的ODBC 函数综述在ODBC API 参考手册中给出。关于ODBC 一般和
更多信息,参考请参考微软公司网站的相关内容。
ODBC 驱动管理器
功能
ODBC 驱动管理器是管理ODBC 应用和驱动程序之间的通信的库。
它的主要功能包
括:

解析数据源名字(DSN)

装载和卸载驱动程序

处理ODBC 函数调用或传递它们到驱动程序
下面的驱动程序管理器经常被使用:

Microsoft Windows 的ODBC 驱动管理器(odbc32.dll)

unixODBC Unix 驱动管理器(libodbc.so)

iODBC Unix 驱动管理器(libiodbc.so)

GBase UP 产品手册 6 应用开发指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 1133
ODBC 驱动管理器安装
windows 操作系统下
windows 操作系统已经集成了ODBC 驱动管理器。通过“控制面板\管理工具\数据
源(ODBC)”可以打开。在64 位windows 操作系统中集成了64 位和32 位的ODBC
驱动管理器,64 位客户端应用程序需要调用64 位的ODBC 驱动管理器,它位于
“C:\Windows\ System32\odbcad32.exe”;32 位的客户端应用程序需要调用32 位的
ODBC 驱动管理器,它位于“C:\Windows \SysWOW64\odbcad32.exe”。
linux 操作系统下
linux 操作系统下需要安装unixODBC 或iODBC 来使用GBase UP ODBC 驱动。
推荐使用unixODBC 驱动管理器。
unixODBC 的安装包一般与GBase UP ODBC 的
安装一同提供。您可以到unixODBC 官方网站下载。
然后使用如下命令安装:
# rpm -ivh unixODBC-2.2.14-1.x86_64.rpm
# rpm -ivh unixODBC-devel-2.2.14-1.x86_64.rpm
安装成功后您可以通过如下命令查看unixODBC 的安装信息:
# odbcinst -j
unixODBC 2.2.14
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /home/gbase/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
GBase UP ODBC 综述
GBase UP ODBC 简介
GBase UP ODBC 是GBase 数据库的ODBC 驱动程序,通过GBase UP ODBC
驱动可以访问所有GBase 数据库。GBase UP ODBC 支持ODBC 3.5X 一级规范
(全部API + 2 级特性)。

GBase UP 产品手册 6 应用开发指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 1134
GBase UP ODBC 版本
表 6-1 版本及说明
GBase UP ODBC 版本号
说明