前回の投稿で、hiveのdockerコンテナを作成しました。
今回は、databaseの作成を実施しました。
参考
1. beelineでhiveserver2に接続
# コンテナにdocker-xecで/bin/bashで入ってから、beelineと入力
$ docker exec -it dockercompose_hiveserver2_1 /bin/bash
root@6a715b5d374e:/# beeline
# hiveserver2に接続
beeline> !connect jdbc:hive2://localhost:10000 hive hive org.apache.hive.jdbc.HiveDriver
2. databaseを作成してみる
0: jdbc:hive2://localhost:10000> show databases;
+----------------+--+
| database_name |
+----------------+--+
| default |
+----------------+--+
1 row selected (1.086 seconds)
0: jdbc:hive2://localhost:10000> create database if not exists erdrepo;
No rows affected (0.149 seconds)
0: jdbc:hive2://localhost:10000> show databases;
+----------------+--+
| database_name |
+----------------+--+
| default |
| erdrepo |
+----------------+--+
2 rows selected (0.023 seconds)
if not exists
構文も利用できるようです。
3. OS側のファイルを確認してみる
root@6a715b5d374e:/# ls -la /user/hive/warehouse/
total 20
drwxr-xr-x 5 hive root 4096 Nov 5 02:30 .
drwxr-xr-x 4 hive root 4096 Nov 2 16:46 ..
drwxr-xr-x 2 hive hive 4096 Nov 5 02:30 erdrepo.db
/user/hive/warehouse
の下に、erdrepo.dbが生成されたことが確認できます。
4. queryからも確認できないのか。
できます。 describe database
構文。
0: jdbc:hive2://localhost:10000> describe database erdrepo;
+----------+----------+---------------------------------------+-------------+-------------+-------------+--+
| db_name | comment | location | owner_name | owner_type | parameters |
+----------+----------+---------------------------------------+-------------+-------------+-------------+--+
| erdrepo | | file:/user/hive/warehouse/erdrepo.db | hive | USER | |
+----------+----------+---------------------------------------+-------------+-------------+-------------+--+
5. databaseに属性(properties)を付与する。
alter database erdrepo set db properties ('used_system' = 'my cloud');
1 row selected (0.024 seconds)
0: jdbc:hive2://localhost:10000> describe database extended erdrepo;
+----------+----------+---------------------------------------+-------------+-------------+-------------------------+--+
| db_name | comment | location | owner_name | owner_type | parameters |
+----------+----------+---------------------------------------+-------------+-------------+-------------------------+--+
| erdrepo | | file:/user/hive/warehouse/erdrepo.db | hive | USER | {used_system=my cloud} |
+----------+----------+---------------------------------------+-------------+-------------+-------------------------+--+
1 row selected (0.029 seconds)
parametersを表示させるには、describe構文にextendedが必要な模様。
6. databaseにコメントを付与する
あとから、コメントできない。。。ぽい。。
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-Create/Drop/AlterDatabase
諦めて今日は再作成する
0: jdbc:hive2://localhost:10000> drop database erdrepo;
No rows affected (0.205 seconds)
0: jdbc:hive2://localhost:10000> create database erdrepo comment 'erd objects management tool' with dbproperties ('used_system' = 'my cloud' );
No rows affected (0.039 seconds)
0: jdbc:hive2://localhost:10000> describe database extended erdrepo;
+----------+------------------------------+---------------------------------------+-------------+-------------+-------------------------+--+
| db_name | comment | location | owner_name | owner_type | parameters |
+----------+------------------------------+---------------------------------------+-------------+-------------+-------------------------+--+
| erdrepo | erd objects management tool | file:/user/hive/warehouse/erdrepo.db | hive | USER | {used_system=my cloud} |
7. MySQLの構文もみてみた。
create database
で、commentとかdbpropertiesみたいなものは付与できない様子。DBが変わるといろいろ違ってきますね。
今日はここまでとします。
他のデータベースってコメントつけたりできるんだっけ。とか、ストレージ領域として、s3n,hdfs,maprfsもあるのかー、みたいなとこも気になります。