• 沒有找到結果。

3.4 第 4 步:导入样例数据并查询

3.4.1 交通卡口通行车辆分析

本实践将演示交通卡口车辆通行分析,将加载8.9亿条交通卡口车辆通行模拟数据到数 据仓库单个数据库表中,并进行车辆精确查询和车辆模糊查询,展示GaussDB(DWS) 对于历史详单数据的高性能查询能力。

说明

● GaussDB(DWS) 已预先将样例数据上传到OBS桶的“traffic-data”文件夹中,并给所有华 为云用户赋予了该OBS桶的只读访问权限。

● GaussDB(DWS) 集群暂不支持跨区域访问OBS桶数据,当前已上传OBS桶数据的区域如支持 区域所示,非以下区域的集群暂不支持该实验。

本实践预计时长40分钟,基本流程如下:

1. 准备工作

2. 步骤一:创建集群

3. 步骤二:使用Data Studio连接集群

4. 步骤三:导入交通卡口样例数据

5. 步骤四:车辆分析

支持区域

当前已上传OBS数据的区域如表3-4所示。

3-4 区域和 OBS 桶名

区域 OBS桶名

华北-北京一 dws-demo

华北-北京二 dws-demo-cn-north-2 华北-北京四 dws-demo-cn-north-4 华北-乌兰察布一 dws-demo-cn-north-9 华东-上海一 dws-demo-cn-east-3 华东-上海二 dws-demo-cn-east-2 华南-广州 dws-demo-cn-south-1 中国-香港 dws-demo-ap-southeast-1 亚太-新加坡 dws-demo-ap-southeast-3 亚太-曼谷 dws-demo-ap-southeast-2 拉美-圣地亚哥 dws-demo-la-south-2

准备工作

● 已注册华为云帐号,且在使用GaussDB(DWS) 前检查帐号状态,帐号不能处于欠 费或冻结状态。

● 参见创建访问密钥(AK和SK)获取此帐号的“AK/SK”。

步骤一:创建集群

步骤1 登录华为云管理控制台。

步骤2 在“服务列表”中,选择“大数据 > 数据仓库服务”。

步骤3 左侧导航栏单击“集群管理”,进入页面后,单击右上角的“创建数据仓库集群”按 钮。

步骤4 参见表3-5进行参数配置。

3-5 软件配置

参数名称 配置方式

区域 选择“华北-北京四”。

说明本指导以“华北-北京四”为例进行介绍,如果您需要选择其他区域进行操作,

请确保所有操作均在同一区域进行。

可用区 可用区2 产品类型 标准数仓 CPU架构 X86

节点规格 dws2.m6.4xlarge.8(16 vCPU | 128GB | 2000GB SSD)

说明

如规格售罄,可选择其他可用区或规格。

节点数量 3

集群名称 dws-demo 管理员用户 dbadmin 管理员密码

-确认密码 -数据库端口 8000 虚拟私有云 vpc-default

子网 subnet-default(192.168.0.0/24) 安全组 自动创建安全组

公网访问 现在购买 宽带 1Mbit/s 高级配置 默认配置

步骤5 信息核对无误,单击“立即购买”,单击“提交”。

步骤6 等待约6分钟,待集群创建成功后,单击集群名称前面的 ,弹出集群信息,记录下

“公网访问地址”,例如dws-demov.dws.huaweicloud.com。

----结束

步骤二:使用 Data Studio 连接集群

步骤1 请确保客户端主机已安装JDK 1.8.0以上版本,并进入“此电脑 > 属性 > 高级系统设置

> 环境变量”设置JAVA_HOME(例如C:\Program Files\Java\jdk1.8.0_191),并在变 量path中添加“;%JAVA_HOME%\bin”。

步骤2 在GaussDB(DWS) 控制台的“连接管理”页面,下载Data Studio客户端。

步骤3 解压下载的Data Studio软件包,进入解压目录后,双击Data Studio.exe启动客户端。

步骤4 在Data Studio主菜单中选择“文件 > 新建连接”,并在弹出框中参照表3-6所示配 置。

3-6 Data Studio 软件配置 参数名称 配置方式 数据库类型 GaussDB(DWS) 名称 dws-demo

主机 dws-demov.dws.huaweicloud.com

与步骤一:创建集群查询到的“公网访问地址”一致。

端口 8000

数据库 gaussdb 用户名 dbadmin

密码

-启用SSL 不启用

步骤5 单击“确定”。

步骤三:导入交通卡口样例数据

使用SQL客户端工具连接到集群后,就可以在SQL客户端工具中,执行以下步骤导入交 通卡口车辆通行的样例数据并执行查询。

步骤1 执行以下语句,创建traffic数据库。

create database traffic encoding 'utf8' template template0;

步骤2 执行以下步骤切换为连接新建的数据库。

1. 在Data Studio客户端的“对象浏览器”窗口,右键单击数据库连接名称,在弹出 菜单中单击“刷新”,刷新后就可以看到新建的数据库。

2. 右键单击“traffic”数据库名称,在弹出菜单中单击“打开连接”。

3. 右键单击“traffic”数据库名称,在弹出菜单中单击“打开新的终端”,即可打开 连接到指定数据库的SQL命令窗口,后面的步骤,请全部在该命令窗口中执行。

步骤3 执行以下语句,创建用于存储卡口车辆信息的数据库表。

create schema traffic_data;

set current_schema= traffic_data;

drop table if exists GCJL;

CREATE TABLE GCJL ( kkbh VARCHAR(20), hphm VARCHAR(20), gcsj DATE ,

cplx VARCHAR(8), cllx VARCHAR(8), csys VARCHAR(8)

)with (orientation = column, COMPRESSION=MIDDLE) distribute by hash(hphm);

步骤4 创建外表。外表用于识别和关联OBS上的源数据。

须知

● 其中,<obs_bucket_name>代表OBS桶名,仅支持部分区域,当前支持的区域和对 应的OBS桶名请参见支持区域。GaussDB(DWS) 集群不支持跨区域访问OBS桶数 据。

● 本实践以“华北-北京四”地区为例,可填入dws-demo-cn-north-4,

<Access_Key_Id>和<Secret_Access_Key>替换为实际值,在准备工作获取。

create schema tpchobs;

set current_schema = 'tpchobs';

drop FOREIGN table if exists GCJL_OBS;

CREATE FOREIGN TABLE GCJL_OBS ( like traffic_data.GCJL )SERVER gsmpp_server OPTIONS (

encoding 'utf8',

location 'obs://<obs_bucket_name>/traffic-data/gcxx', format 'text',

delimiter ',',

access_key '<Access_Key_Id>',

secret_access_key '<Secret_Access_Key>', chunksize '64',

IGNORE_EXTRA_DATA 'on' );

步骤5 执行以下语句,将数据从外表导入到数据库表中。

insert into traffic_data.GCJL select * from tpchobs.GCJL_OBS;

导入数据需要一些时间,请耐心等待。

----结束

步骤四:车辆分析

1. 执行Analyze

用于收集与数据库中普通表内容相关的统计信息,统计结果存储在系统表

PG_STATISTIC中。执行计划生成器会使用这些统计数据,以生成最有效的查询执 行计划。

执行以下语句生成表统计信息:

Analyze;

2. 查询数据表中的数据量

执行如下语句,可以查看已加载的数据条数。

set current_schema= traffic_data;

Select count(*) from traffic_data.gcjl;

3. 车辆精确查询

执行以下语句,指定车牌号码和时间段查询车辆行驶路线。GaussDB(DWS) 在应 对点查时秒级响应。

set current_schema= traffic_data;

select hphm, kkbh, gcsj from traffic_data.gcjl where hphm = 'YD38641'

and gcsj between '2016-01-06' and '2016-01-07' order by gcsj desc;

4. 车辆模糊查询

执行以下语句,指定车牌号码和时间段查询车辆行驶路线,GaussDB(DWS) 在应 对模糊查询时秒级响应。

set current_schema= traffic_data;

select hphm, kkbh, gcsj from traffic_data.gcjl where hphm like 'YA23F%' and kkbh in('508', '1125', '2120')

and gcsj between '2016-01-01' and '2016-01-07' order by hphm,gcsj desc;

相關文件