暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

Vertica 玩转示例数据库:VMart

原创 Lucifer三思而后行 2021-12-11
2707

前言

上一篇演示了如何安装一台单节点 Vertica 数据库,并初始化创建了一个 Lucifer 数据库,但是苦于没有数据进行测试学习!通过阅读官方文档了解到 Vertica 有一个示例数据库 VMart 可以用来初始化一个功能齐全的多模式的数据库用来学习查询!

当然了,前提是你已经安装好了 Vertica 数据库,安装教程可以参考下方文章:

🏆 作者写的 《Vertica 技术文章合集》,欢迎阅读 👏🏻!

一、介绍

Vertica 附带了一个名为 VMart 示例数据库的示例多模式数据库,大型超市 (VMart) 可能会使用该数据库来访问有关其产品、客户、员工以及在线和实体商店的信息。使用此示例,可以创建、运行、优化和测试多模式数据库。

VMart 数据库包含以下 schema

  • public(在任何新创建的 Vertica 数据库中自动创建)
  • store
  • online_Sales

VMart 数据库位置和脚本:

如果使用 RPM 软件包安装 Vertica,则 VMart 架构安装在 /opt/vertica/examples/VMart_Schema 目录中。此文件夹包含以下脚本文件,可用于快速入门。将脚本用作您自己的应用程序的模板。

脚本/文件名 描述
vmart_count_data.sql 对所有示例数据库表的行进行计数的 SQL 脚本,您可以使用它来验证负载。
vmart_define_schema.sql 定义每个表的逻辑架构和参照完整性约束的 SQL 脚本。
vmart_gen.cpp 数据生成器源代码 (C++)。
vmart_gen 数据生成器可执行文件。
vmart_load_data.sql 使用 COPY 将生成的示例数据加载到相应表的 SQL 脚本。
vmart_queries.sql 包含串联示例查询的 SQL 脚本,用作数据库设计器的训练集。
vmart_query_##.sql 包含单个查询的 SQL 脚本;例如,vmart_query_01 通过 vmart_query_09.sql
vmart_schema_drop.sql 删除所有示例数据库表的 SQL 脚本。

Vertica 提供了两个选项来安装示例数据库:

  • 使用脚本快速安装:此选项可让您创建示例数据库并立即开始使用它。使用此方法绕过架构和表创建过程并立即开始查询。
  • 高级安装:高级选项是使用管理工具界面的高级但简单的示例数据库安装。使用此方法可以更好地理解数据库创建过程并练习创建模式、创建表和加载数据。

两种安装方法都会创建一个名为 VMart 的数据库。

二、脚本安装方式

执行快速安装所需的脚本为 /opt/vertica/sbin 目录下的 install_example。此脚本在默认端口 5433 上创建数据库、生成数据、创建模式,并加载数据。该文件夹还包含一个 delete_example 脚本,用于停止和删除数据库。

📢 注意: 强烈建议您一次仅启动一个示例数据库,以避免出现不可预测的结果,确保磁盘空间足够

1、脚本创建 VMart

下面演示如何快速安装:

1、切换至 dbadmin 用户

su - dbadmin

2、进入 example 目录

cd /opt/vertica/examples pwd

3、执行快速安装

/opt/vertica/sbin/install_example VMart

VMart 数据库创建成功,测试连接!

2、连接 VMart 数据库

使用 admintools 工具连接数据库:

admintools

密码为空,直接回车即可!

简单查询一下数据库,模式以及用户。

3、删除 VMart 数据库

为了测试一下删除脚本,同时为了下面测试高级安装,这边删除一下 VMart 数据库。

cd /opt/vertica/examples /opt/vertica/sbin/delete_example VMart

示例数据库日志文件 ExampleInstall.txtExampleDelete.txt 被写入/opt/vertica/examples/log

image.png

至此,关于脚本快速安装的演示就结束了!

三、高级安装

开始高级安装之前,确保当前主机的所有数据库均已停止运行。

1、配置示例环境

1、切换到 dbadmin 用户:

su - dbadmin

2、进入 /opt/vertica/examples/VMart_Schema 目录:

cd /opt/vertica/examples/VMart_Schema

📢 注意: 下面整个配置过程都不要离开这个目录,否则会失败。

3、运行生成器

./vmart_gen

📢 注意: 让程序使用默认参数运行,后面可以在 README 文件中查看这些参数。

4、报错解决

以下步骤仅针对上述运行报错的情况,如果 vmart_gen 不能正常执行,执行下方命令:

g++ vmart_gen.cpp -o vmart_gen chmod +x vmart_gen ./vmart_gen

📢 注意: vmart_gen 运行正常情况下无需执行!

2、创建示例数据库

下面我们使用 admintools 管理工具创建数据库:

admintools

选择配置菜单 Configuration Menu 进入:

创建数据库:

默认选择企业模式:

填写数据库名称 VMart

填写密码,这里我们不设置密码:

单节点,默认即可:

数据文件位置,默认即可:

K-safe 默认:

确认信息,开始创建:

3、测试连接 WMart 数据库

使用 admintools 工具连接数据库:

admintools

密码为空,直接回车即可!

简单查询一下数据库,模式以及用户。

📢 注意: 目前是新创建的 VMart 数据库,还未创建 schema 和加载数据。

4、创建 schema 和表

VMart 数据库安装了带有 SQL 命令的示例脚本,这些脚本旨在表示可能在实际业务中使用的查询。该vmart_define_schema.sql 脚本运行定义 VMart 模式并创建表的脚本。在将数据加载到 VMart 数据库之前,必须运行此脚本。

此脚本执行以下任务:

  • 在 VMart 数据库架构中定义两个架构:online_salesstore
  • 在两种模式中定义表。
  • 定义对这些表的约束。

连接 VMart 数据库后执行以下脚本:

\i vmart_define_schema.sql

运行脚本之后创建完模式和表之后,查询一下:

\dn \dt

5、加载数据

现在已经成功创建了模式和表,下面可以通过运行 vmart_load_data.sql 脚本将数据加载到表中。此脚本将 15 个 .tbl 文本文件中的数据加载 opt/vertica/examples/VMart_Schemavmart_design_schema.sql 创建的表中。

执行加载数据脚本,加载数据可能需要几分钟时间:

\i vmart_load_data.sql

📢 注意: 加载过程中,通过监视 vertica.log 文件来检查加载状态!

数据加载完成后,简单查询下表数据:

\i vmart_query_01.sql -- 下面👇🏻是 vmart_query_01.sql 脚本中的语句: SELECT fat_content FROM ( SELECT DISTINCT fat_content FROM product_dimension WHERE department_description IN ('Dairy') ) AS food ORDER BY fat_content LIMIT 5;

查询数据没有问题,该命令查询乳制品部门中脂肪含量最低的五种产品的值。

6、vsql 客户端连接

我们也可以从客户端平台上命令行使用 vsql 连接到数据库:

/opt/vertica/bin/vsql [-h host] [ option...] [ dbname [ username ] ]
参数 介绍
host 如果您连接到本地服务器,则可选。您可以提供 IPv4 或 IPv6 IP 地址或主机名。对于Vertica的地址为IPv4和IPv6地址和您提供主机名代替IP地址的服务器,你可以喜欢与使用IPv4地址-4选项,并与使用IPv6地址经过-6选项,如果DNS被配置为提供IPv4 和 IPv6 地址。如果您使用 IPv6 并提供 IP 地址,则必须在地址后附加.%interface name
option 一个或多个 vsql命令行选项如果数据库受密码保护,则必须指定 -w 或–password命令行选项。
dbname 目标数据库的名称,默认情况下您的 Linux 用户名。
username 一个数据库用户名,默认是你的 Linux 用户名。

我本机为 macOS,安装客户端之后,测试连接:

vsql -h 192.168.56.100 VMart dbadmin

至此,高级安装的完整步骤也演示完毕!

写在最后

这个大型超市 (VMart) 跟 Oracle 数据库中创建的用户 scott 有异曲同工之妙,方便初学者用来学习!建议大家好好利用,能省下很多模拟数据的时间哈,886~

最后修改时间:2021-12-12 15:49:19
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论