前言
上一篇演示了如何安裝一臺單節(jié)點 Vertica 數(shù)據(jù)庫,并初始化創(chuàng)建了一個 Lucifer 數(shù)據(jù)庫,但是苦于沒有數(shù)據(jù)進行測試學(xué)習(xí)!通過閱讀官方文檔了解到 Vertica 有一個示例數(shù)據(jù)庫 VMart 可以用來初始化一個功能齊全的多模式的數(shù)據(jù)庫用來學(xué)習(xí)查詢!
當(dāng)然了,前提是你已經(jīng)安裝好了 Vertica 數(shù)據(jù)庫,安裝教程可以參考下方文章:
- 《初識 Vertica ,看完白皮書,我都發(fā)現(xiàn)了啥》
- 《Vertica 架構(gòu):Eon 與企業(yè)模式》
- 《初體驗:Centos7.9 單節(jié)點安裝 Vertica 11 社區(qū)版(超詳細(xì)教程)》
?? 作者寫的 《Vertica 技術(shù)文章合集》,歡迎閱讀 ????!
一、介紹
Vertica 附帶了一個名為 VMart 示例數(shù)據(jù)庫的示例多模式數(shù)據(jù)庫,大型超市 (VMart) 可能會使用該數(shù)據(jù)庫來訪問有關(guān)其產(chǎn)品、客戶、員工以及在線和實體商店的信息。使用此示例,可以創(chuàng)建、運行、優(yōu)化和測試多模式數(shù)據(jù)庫。
VMart 數(shù)據(jù)庫包含以下 schema:
- public(在任何新創(chuàng)建的 Vertica 數(shù)據(jù)庫中自動創(chuàng)建)
- store
- online_Sales
VMart 數(shù)據(jù)庫位置和腳本:
如果使用 RPM 軟件包安裝 Vertica,則 VMart 架構(gòu)安裝在 /opt/vertica/examples/VMart_Schema 目錄中。此文件夾包含以下腳本文件,可用于快速入門。將腳本用作您自己的應(yīng)用程序的模板。
| 腳本/文件名 | 描述 |
|---|---|
| vmart_count_data.sql | 對所有示例數(shù)據(jù)庫表的行進行計數(shù)的 SQL 腳本,您可以使用它來驗證負(fù)載。 |
| vmart_define_schema.sql | 定義每個表的邏輯架構(gòu)和參照完整性約束的 SQL 腳本。 |
| vmart_gen.cpp | 數(shù)據(jù)生成器源代碼 (C++)。 |
| vmart_gen | 數(shù)據(jù)生成器可執(zhí)行文件。 |
| vmart_load_data.sql | 使用 COPY 將生成的示例數(shù)據(jù)加載到相應(yīng)表的 SQL 腳本。 |
| vmart_queries.sql | 包含串聯(lián)示例查詢的 SQL 腳本,用作數(shù)據(jù)庫設(shè)計器的訓(xùn)練集。 |
| vmart_query_##.sql | 包含單個查詢的 SQL 腳本;例如,vmart_query_01 通過 vmart_query_09.sql |
| vmart_schema_drop.sql | 刪除所有示例數(shù)據(jù)庫表的 SQL 腳本。 |
Vertica 提供了兩個選項來安裝示例數(shù)據(jù)庫:
使用腳本快速安裝:此選項可讓您創(chuàng)建示例數(shù)據(jù)庫并立即開始使用它。使用此方法繞過架構(gòu)和表創(chuàng)建過程并立即開始查詢。高級安裝:高級選項是使用管理工具界面的高級但簡單的示例數(shù)據(jù)庫安裝。使用此方法可以更好地理解數(shù)據(jù)庫創(chuàng)建過程并練習(xí)創(chuàng)建模式、創(chuàng)建表和加載數(shù)據(jù)。
兩種安裝方法都會創(chuàng)建一個名為 VMart 的數(shù)據(jù)庫。
二、腳本安裝方式
執(zhí)行快速安裝所需的腳本為 /opt/vertica/sbin 目錄下的 install_example。此腳本在默認(rèn)端口 5433 上創(chuàng)建數(shù)據(jù)庫、生成數(shù)據(jù)、創(chuàng)建模式,并加載數(shù)據(jù)。該文件夾還包含一個 delete_example 腳本,用于停止和刪除數(shù)據(jù)庫。
?? 注意: 強烈建議您一次僅啟動一個示例數(shù)據(jù)庫,以避免出現(xiàn)不可預(yù)測的結(jié)果,確保磁盤空間足夠!
1、腳本創(chuàng)建 VMart
下面演示如何快速安裝:
1、切換至 dbadmin 用戶
su - dbadmin

2、進入 example 目錄
cd /opt/vertica/examples
pwd

3、執(zhí)行快速安裝
/opt/vertica/sbin/install_example VMart

VMart 數(shù)據(jù)庫創(chuàng)建成功,測試連接!
2、連接 VMart 數(shù)據(jù)庫
使用 admintools 工具連接數(shù)據(jù)庫:
admintools

密碼為空,直接回車即可!

簡單查詢一下數(shù)據(jù)庫,模式以及用戶。

3、刪除 VMart 數(shù)據(jù)庫
為了測試一下刪除腳本,同時為了下面測試高級安裝,這邊刪除一下 VMart 數(shù)據(jù)庫。
cd /opt/vertica/examples
/opt/vertica/sbin/delete_example VMart

示例數(shù)據(jù)庫日志文件 ExampleInstall.txt 和 ExampleDelete.txt 被寫入/opt/vertica/examples/log。

至此,關(guān)于腳本快速安裝的演示就結(jié)束了!
三、高級安裝
開始高級安裝之前,確保當(dāng)前主機的所有數(shù)據(jù)庫均已停止運行。
1、配置示例環(huán)境
1、切換到 dbadmin 用戶:
su - dbadmin
2、進入 /opt/vertica/examples/VMart_Schema 目錄:
cd /opt/vertica/examples/VMart_Schema
?? 注意: 下面整個配置過程都不要離開這個目錄,否則會失敗。
3、運行生成器
./vmart_gen

?? 注意: 讓程序使用默認(rèn)參數(shù)運行,后面可以在 README 文件中查看這些參數(shù)。
4、報錯解決
以下步驟僅針對上述運行報錯的情況,如果 vmart_gen 不能正常執(zhí)行,執(zhí)行下方命令:
g++ vmart_gen.cpp -o vmart_gen
chmod +x vmart_gen
./vmart_gen
?? 注意: vmart_gen 運行正常情況下無需執(zhí)行!
2、創(chuàng)建示例數(shù)據(jù)庫
下面我們使用 admintools 管理工具創(chuàng)建數(shù)據(jù)庫:
admintools
選擇配置菜單 Configuration Menu 進入:

創(chuàng)建數(shù)據(jù)庫:

默認(rèn)選擇企業(yè)模式:

填寫數(shù)據(jù)庫名稱 VMart:

填寫密碼,這里我們不設(shè)置密碼:


單節(jié)點,默認(rèn)即可:

數(shù)據(jù)文件位置,默認(rèn)即可:

K-safe 默認(rèn):

確認(rèn)信息,開始創(chuàng)建:



3、測試連接 WMart 數(shù)據(jù)庫
使用 admintools 工具連接數(shù)據(jù)庫:
admintools

密碼為空,直接回車即可!

簡單查詢一下數(shù)據(jù)庫,模式以及用戶。

?? 注意: 目前是新創(chuàng)建的 VMart 數(shù)據(jù)庫,還未創(chuàng)建 schema 和加載數(shù)據(jù)。
4、創(chuàng)建 schema 和表
VMart 數(shù)據(jù)庫安裝了帶有 SQL 命令的示例腳本,這些腳本旨在表示可能在實際業(yè)務(wù)中使用的查詢。該vmart_define_schema.sql 腳本運行定義 VMart 模式并創(chuàng)建表的腳本。在將數(shù)據(jù)加載到 VMart 數(shù)據(jù)庫之前,必須運行此腳本。
此腳本執(zhí)行以下任務(wù):
- 在 VMart 數(shù)據(jù)庫架構(gòu)中定義兩個架構(gòu):
online_sales和store。 - 在兩種模式中定義表。
- 定義對這些表的約束。
連接 VMart 數(shù)據(jù)庫后執(zhí)行以下腳本:
\i vmart_define_schema.sql

運行腳本之后創(chuàng)建完模式和表之后,查詢一下:
\dn \dt

5、加載數(shù)據(jù)
現(xiàn)在已經(jīng)成功創(chuàng)建了模式和表,下面可以通過運行 vmart_load_data.sql 腳本將數(shù)據(jù)加載到表中。此腳本將 15 個 .tbl 文本文件中的數(shù)據(jù)加載 opt/vertica/examples/VMart_Schema 到 vmart_design_schema.sql 創(chuàng)建的表中。
執(zhí)行加載數(shù)據(jù)腳本,加載數(shù)據(jù)可能需要幾分鐘時間:
\i vmart_load_data.sql

?? 注意: 加載過程中,通過監(jiān)視 vertica.log 文件來檢查加載狀態(tài)!
數(shù)據(jù)加載完成后,簡單查詢下表數(shù)據(jù):
\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;

查詢數(shù)據(jù)沒有問題,該命令查詢?nèi)橹破凡块T中脂肪含量最低的五種產(chǎn)品的值。
6、vsql 客戶端連接
我們也可以從客戶端平臺上命令行使用 vsql 連接到數(shù)據(jù)庫:
/opt/vertica/bin/vsql [-h host] [ option...] [ dbname [ username ] ]
| 參數(shù) | 介紹 |
|---|---|
| host | 如果您連接到本地服務(wù)器,則可選。您可以提供 IPv4 或 IPv6 IP 地址或主機名。對于Vertica的地址為IPv4和IPv6地址和您提供主機名代替IP地址的服務(wù)器,你可以喜歡與使用IPv4地址-4選項,并與使用IPv6地址經(jīng)過-6選項,如果DNS被配置為提供IPv4 和 IPv6 地址。如果您使用 IPv6 并提供 IP 地址,則必須在地址后附加.%interface name |
| option | 一個或多個 vsql命令行選項如果數(shù)據(jù)庫受密碼保護,則必須指定 -w 或–password命令行選項。 |
| dbname | 目標(biāo)數(shù)據(jù)庫的名稱,默認(rèn)情況下您的 Linux 用戶名。 |
| username | 一個數(shù)據(jù)庫用戶名,默認(rèn)是你的 Linux 用戶名。 |
我本機為 macOS,安裝客戶端之后,測試連接:
vsql -h 192.168.56.100 VMart dbadmin

至此,高級安裝的完整步驟也演示完畢!
寫在最后
這個大型超市 (VMart) 跟 Oracle 數(shù)據(jù)庫中創(chuàng)建的用戶 scott 有異曲同工之妙,方便初學(xué)者用來學(xué)習(xí)!建議大家好好利用,能省下很多模擬數(shù)據(jù)的時間哈,886~




