返回首页

gbase数据、南大通用产品文档:GBase8sifx_int8cmp() 函数

更新日期:2024年09月11日

ifx_int8cmp() 函数比较两个 int8 类型数值。
语法
mint ifx_int8cmp(n1, n2)
ifx_int8_t *n1;
ifx_int8_t *n2;
n1
指向包含要比较的第一个数值的 int8 结构的指针。
n2
指向包含要比较的第二个数值的 int8 结构的指针。

返回代码
-1
第一个值小于第二个值。
0
两个值相同。

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 717 -

1
第一个值大于第二个值。
INT8UNKNOWN
有的值为空。

示例
demo 目录中的文件 int8cmp.ec 包含下列示例程序。
/*
* ifx_int8cmp.ec *
The following program compares INT8t types and displays
the results.
*/

#include

EXEC SQL include "int8.h";

char string1[] = "-999,888,777,666";
char string2[] = "-12,345,678,956,546";
char string3[] = "123,456,780,555,224,456";
char string4[] = "123,456,780,555,224,456";
char string5[] = "";

main()
{
mint x;
ifx_int8_t num1, num2, num3, num4, num5;

printf("IFX_INT8CMP Sample ESQL Program running.\n\n");

if (x = ifx_int8cvasc(string1, strlen(string1), &num1))
{

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 718 -

printf("Error %d in converting string1 to int8\n", x);
exit(1);
}
if (x = ifx_int8cvasc(string2, strlen(string2), &num2))
{
printf("Error %d in converting string2 to int8\n", x);
exit(1);
}
if (x = ifx_int8cvasc(string3, strlen(string3), &num3))
{
printf("Error %d in converting string3 to int8\n", x);
exit(1);
}
if (x = ifx_int8cvasc(string4, strlen(string4), &num4))
{
printf("Error %d in converting string4 to int8\n", x);
exit(1);
}
if (x = ifx_int8cvasc(string5, strlen(string5), &num5))
{
printf("Error %d in converting string5 to int8\n", x);
exit(1);
}
printf("num1 = %s\nnum2 = %s\n", string1, string2);
printf("num3 = %s\nnum4 = %s\n", string3, string4);
printf("num5 = %s\n", "NULL");
printf("\nExecuting: ifx_int8cmp(&num1, &num2)\n");
printf(" Result = %d\n", ifx_int8cmp(&num1, &num2));
printf("Executing: ifx_int8cmp(&num2, &num3)\n");
printf(" Result = %d\n", ifx_int8cmp(&num2, &num3));
printf("Executing: ifx_int8cmp(&num1, &num3)\n");
printf(" Result = %d\n", ifx_int8cmp(&num1, &num3));
printf("Executing: ifx_int8cmp(&num3, &num4)\n");

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 719 -

printf(" Result = %d\n", ifx_int8cmp(&num3, &num4));
printf("Executing: ifx_int8cmp(&num1, &num5)\n");
x = ifx_int8cmp(&num1, &num5);
if(x == INT8UNKNOWN)
printf("RESULT is INT8UNKNOWN. One of the INT8 values in null.\n");
else
printf(" Result = %d\n", x);
printf("\nIFX_INT8CMP Sample Program over.\n\n");
exit(0);
}
输出
IFX_INT8CMP Sample ESQL Program running.

Number 1 = -999,888,777,666
Number 2 = -12,345,678,956,546
Number 3 = 123,456,780,555,224,456
Number 4 = 123,456,780,555,224,456
Number 5 =

Executing: ifx_int8cmp(&num1, &num2)
Result = 1
Executing: ifx_int8cmp(&num2, &num3)
Result = -1
Executing: ifx_int8cmp(&num1, &num3)
Result = -1
Executing: ifx_int8cmp(&num3, &num4)
Result = 0
Executing: ifx_int8cmp(&num1, &num5)
RESULT is INT8UNKNOWN. One of the INT8 values in null.
IFX_INT8CMP Sample Program over.

GBase Migration Toolkit(MTK)迁移工具是GBase 提供的一款可以实现异
构数据库数据迁移的工具,可将目标数据库中的对象、数据等迁移至GBase 8s
数据库中。迁移工具具有简单易操作的图形化界面,根据数据迁移需求创建相
应的任务,并且可以对迁移任务进行相应的设置,实现多线程进行并发数据迁
移。

对象迁移:表结构、索引、约束、视图、序列、同义词、触发器等。

GBase 8s V8.8 技术白皮书
第46页
南大通用数据技术股份有限公司

数据迁移:业务表中的数据。

应用迁移:存储过程、函数等。
图9- 3
GBase 8s 迁移工具

机架要求
在实际项目中,安装操作系统和 GBase UP 产品前,先进行硬件设备的物理部署,
一般包括,机柜,电源,主机,硬盘,网卡,交换机等物理设备,另外,物理设备
之间的通讯,需要依靠网络的部署。规划机架时需要遵循以下原则:

电源的高可用:两个机柜的电源是独立的,互不影响的,这样遵循了主机供电

GBase UP 产品手册 3 软件安装

文档版本04(2021-04-21) 南大通用数据技术股份有限公司 31
高可用的原则;

交换机高可用:
每个机柜上配置了一台交换机,
两个机柜上共包含2 台交换机,

并且这两台交换机之间是互备的关系,当其中一台交换机发生故障,另一台交
换机立即提供服务,遵循了交换机高可用的原则;

节点机器的高可用性:图中的20 台主机,用于部署GBase UP 产品及Hadoop
生态。Hadoop 生态服务主机应遵循高可用部署原则(小规模集群部署HA 及
机架感知,大规模集群部署联邦+HA 及机架感知)
部署示例
在以下图中,
包含两个机柜
(机柜的电源要保证各自独立供电)

机柜中摆放GBase
UP 产品的节点主机、
Hadoop 生态的节点主机和应用服务器,
他们之间的网络通过
交换机进行通讯,为了保证网络的高效运行,实际项目中的业务网络也需要连接到
这两个互备的交换机上。

节点硬件要求
GBase UP 建议使用如下表配置的机器:
表 3-1 硬件配置表
硬件
最低配置
推荐配置

GBase UP 产品手册 3 软件安装

文档版本04(2021-04-21) 南大通用数据技术股份有限公司 32
硬件
最低配置
推荐配置
处理器
2×4 核 2.0GHz
2×16 核 2.0GHz 或更多
内存
4GB
128GB 或更多
硬盘
SATA 7200 rpm, 100GB
SAS 10k rpm,1TB
光驱
CD-ROM
CD-ROM
配置磁盘RAID

将本地磁盘配置为RAID,操作系统会将多块物理磁盘视之为一个大硬盘,并
具有容错及冗余的功能;

磁盘RAID 还可以支持容量扩展,
只需要加入新的硬盘并执行一些简单的命令,
系统便可以实时利用这新加的容量;

GBase UP 推荐将主机的本地磁盘设置为RAID5(RAID5 设置参考附录配置磁
盘RAID)。RAID5 工作模式,至少需要3 块完全相同的物理磁盘。