跳到主要内容
返回博客列表Vertica 玩转示例数据库:VMart 上一篇演示了如何安装一台单节点 Vertica 数据库,并初始化创建了一个 Lucifer 数据库,但是苦于没有数据进行测试学习!通过阅读官方文档了解到 Vertica 有一个示例数据库 VMart 可以用来初始化一个功能齐全的多模式的数据库用来学习查询! 当然了,前提是你已经安装好了 Vertica 数据库,安装教程可以参考下方文章: - 《初识 Vertica ,看完白皮书,我都发现了啥》ht
2738+ 篇实战文章 1500+ 步骤截图 10 大核心模块前言
本章目标 :掌握本章核心知识点
前置要求 :完成前序章节学习
预计时长 :60 分钟
上一篇演示了如何安装一台单节点 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 用户
2、进入 example 目录
1 cd /opt/vertica/examples
2 pwd
3、执行快速安装
1 /opt/vertica/sbin/install_example VMart
VMart 数据库创建成功,测试连接!
2、连接 VMart 数据库
使用 admintools 工具连接数据库:
密码为空,直接回车即可!
简单查询一下数据库,模式以及用户。
3、删除 VMart 数据库
为了测试一下删除脚本,同时为了下面测试高级安装,这边删除一下 VMart 数据库。
1 cd /opt/vertica/examples
2 /opt/vertica/sbin/delete_example VMart
示例数据库日志文件 ExampleInstall.txt 和 ExampleDelete.txt 被写入/opt/vertica/examples/log。
至此,关于脚本快速安装的演示就结束了!
三、高级安装
开始高级安装之前,确保当前主机的所有数据库均已停止运行。
1、配置示例环境
1、切换到 dbadmin 用户:
2、进入 /opt/vertica/examples/VMart_Schema 目录:
1 cd /opt/vertica/examples/VMart_Schema
📢 注意: 下面整个配置过程都不要离开这个目录,否则会失败。
3、运行生成器
📢 注意: 让程序使用默认参数运行,后面可以在 README 文件中查看这些参数。
4、报错解决
以下步骤仅针对上述运行报错的情况,如果 vmart_gen 不能正常执行,执行下方命令:
1 g++ vmart_gen.cpp -o vmart_gen
2 chmod +x vmart_gen
3 ./vmart_gen
📢 注意: vmart_gen 运行正常情况下无需执行!
2、创建示例数据库
下面我们使用 admintools 管理工具创建数据库:
选择配置菜单 Configuration Menu 进入:
创建数据库:
默认选择企业模式:
填写数据库名称 VMart:
填写密码,这里我们不设置密码:
单节点,默认即可:
数据文件位置,默认即可:
K-safe 默认:
确认信息,开始创建:
3、测试连接 WMart 数据库
使用 admintools 工具连接数据库:
密码为空,直接回车即可!
简单查询一下数据库,模式以及用户。
📢 注意: 目前是新创建的 VMart 数据库,还未创建 schema 和加载数据。
4、创建 schema 和表
VMart 数据库安装了带有 SQL 命令的示例脚本,这些脚本旨在表示可能在实际业务中使用的查询。该vmart_define_schema.sql 脚本运行定义 VMart 模式并创建表的脚本。在将数据加载到 VMart 数据库之前,必须运行此脚本。
此脚本执行以下任务:
在 VMart 数据库架构中定义两个架构:online_sales 和 store。
在两种模式中定义表。
定义对这些表的约束。
连接 VMart 数据库后执行以下脚本:
1 \i vmart_define_schema.sql
运行脚本之后创建完模式和表之后,查询一下:
5、加载数据
现在已经成功创建了模式和表,下面可以通过运行 vmart_load_data.sql 脚本将数据加载到表中。此脚本将 15 个 .tbl 文本文件中的数据加载 opt/vertica/examples/VMart_Schema 到 vmart_design_schema.sql 创建的表中。
执行加载数据脚本,加载数据可能需要几分钟时间:
📢 注意: 加载过程中,通过监视 vertica.log 文件来检查加载状态!
数据加载完成后,简单查询下表数据:
1 \i vmart_query_01.sql
2 -- 下面👇🏻是 vmart_query_01.sql 脚本中的语句:
3 SELECT fat_content
4 FROM ( SELECT DISTINCT fat_content
5 FROM product_dimension
6 WHERE department_description
7 IN ('Dairy') ) AS food
8 ORDER BY fat_content
9 LIMIT 5;
查询数据没有问题,该命令查询乳制品部门中脂肪含量最低的五种产品的值。
6、vsql 客户端连接
我们也可以从客户端平台上命令行使用 vsql 连接到数据库:
1 /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,安装客户端之后,测试连接:
1 vsql -h 192.168.56.100 VMart dbadmin
至此,高级安装的完整步骤也演示完毕!
写在最后
这个大型超市 (VMart) 跟 Oracle 数据库中创建的用户 scott 有异曲同工之妙,方便初学者用来学习!建议大家好好利用,能省下很多模拟数据的时间哈,886~
Vertica 玩转示例数据库:VMart - DBA 学习之路