ハイブのビューと側面図
ハイブビュー
ビューとは何ですか
1.サブクエリ、接続、および関数を非表示にすることにより、クエリの論理構造を簡素化します
2.仮想テーブル、実テーブルからデータを選択
3.データではなく、定義のみを保存します
4.基になるテーブルを削除または変更すると、クエリビューは失敗します
5.ビューは読み取り専用であり、データを挿入またはロードすることはできません
ビューの利点
1.データのプライバシーを保護するために、ユーザーに特定の列を提供します
2.複雑なクエリステートメントを使用するシナリオ
構文を表示
操作コマンドの表示:CREATE、SHOW、DROP、ALTER
CREATE VIEW view_name AS SELECT statement; -- 创建视图
-- 创建视图支持 CTE, ORDER BY, LIMIT, JOIN, etc.
SHOW TABLES; -- 查找视图 (SHOW VIEWS 在 hive v2.2.0之后)
SHOW CREATE TABLE view_name; -- 查看视图定义
DROP view_name; -- 删除视图
ALTER VIEW view_name SET TBLPROPERTIES ('comment' = 'This is a view');
--更改视图属性
ALTER VIEW view_name AS SELECT statement; -- 更改视图定义,
ハイブの側面図
1.関数の入力と出力を接続するために、テーブル生成関数と組み合わせて使用されることがよくあります。
2. OUTERキーワード:出力が空の場合でも結果が生成されます
select name,work_place,loc from employee lateral view outer explode(split(null,',')) a as loc;
3.複数のレベルをサポートします
select name,wps,skill,score from employee
lateral view explode(work_place) work_place_single as wps
lateral view explode(skills_score) sks as skill,score;
4.通常、行の正規化またはJSONの解析に使用されます
総括する
見る
Hiveでの試みは、SQLステートメントへのショートカットにすぎません。
ハイブ内のビューは論理ビューにすぎず、マテリアライズドビューはありません
ハイブビューは、追加、削除、変更をサポートせず、クエリのみをサポートします
クエリが実際に実行されたときのみのハイブビュー
側面図
ラテラルビュー関数とUDTF関数関数を併用します。テーブル内の各行をUDTF関数によって出力された各行に接続して、新しい仮想テーブルを生成します。UDTFによって生成されたレコードにフィールド名を設定できます。新しく追加されたフィールドは次のようになります。 In sort by、group by、およびその他のステートメントで使用されます。サブクエリの別のレイヤーを設定する必要はありません。ラテラルビューの役割は、元のテーブルデータを展開することです。