实现模式(Schema)
现在我们已经设计好了模式(schema),接下来需要在 Hive 中实现它。首先,启动 Hive 服务器:
hive
Hive 服务器启动后,我们可以执行模式定义脚本:
SOURCE /home/hadoop/academy_data/academy_schema.hql;
这条命令将根据我们之前定义的模式创建 academy
数据库以及 books
、scrolls
和 artifacts
表。
EXIT;
接下来,我们为这些表填充一些示例数据。在 academy_data
目录下创建一个名为 academy_data.txt
的新文件:
touch academy_data.txt
用文本编辑器打开该文件,并添加以下数据:
1,The Sorcerer's Stone,J.K. Rowling,1997,Fantasy
2,Scroll of Levitation,Merlinious the Wise,1023,Charms
3,Ancient Wand,A powerful wand crafted by the Elven Wandmakers,Elven Realm,2500
4,Fantastic Beasts and Where to Find Them,Newt Scamander,2001,Bestiary
5,Scroll of Healing,Gwendolyn the Healer,1157,Healing
6,Enchanted Mirror,A mirror that reveals one's true self,Avalon,5000
保存文件并退出文本编辑器。
现在,我们将数据加载到相应的表中:
hive
USE academy;
LOAD DATA LOCAL INPATH '/home/hadoop/academy_data/academy_data.txt' OVERWRITE INTO TABLE books;
LOAD DATA LOCAL INPATH '/home/hadoop/academy_data/academy_data.txt' OVERWRITE INTO TABLE scrolls;
LOAD DATA LOCAL INPATH '/home/hadoop/academy_data/academy_data.txt' OVERWRITE INTO TABLE artifacts;
这些命令会将 academy_data.txt
文件中的数据加载到对应的表中。
最后,我们验证数据是否已正确加载:
SELECT * FROM books;
SELECT * FROM scrolls;
SELECT * FROM artifacts;
你应该会看到每个表中显示相应的数据。