hiveに関する知識(一)

6029 ワード

今日hiveの関連知識を整理して、その中にhiveの原理とその表の関連するいくつかの内容が含まれて、主に個人の理解です:1.hiveは何の役に立つの?
  • hiveはデジタル倉庫ツールであり、抽出、変換、ロードデータ(ETL)、Hiveはミリ秒レベルの応答には適用されない.その下層はMRプログラムを呼び出してYarn上でhdfs上の構造化静的データを操作してデータを処理する機能を実現するためであるが、HiveはsqlとMRを結合し、多次元のクエリーを実現することができ、ユーザーの学習コストが低く、使いやすい.

  • 2.hive動作原理
  • Hiveの動作原理の本質はクライアントが発起したsql文を最下位のMRプログラムに変換して
  • を実行することである.
  • (1)hiveはクライアントからの要求(sql文)
  • を受信する.
  • (2)要求に従ってmysqlのテーブルのメタデータ情報
  • を取得する.
  • (3)mysql文を解析、コンパイル、最適化し、MR文
  • に変換する
  • (4)に変換するMRプログラムはYARN上で実行され、hdfsを操作してクライアントニーズ
  • を完了する.
    3.hiveデータベースのプロパティの表示
  • (1)hdfs,yarnおよびmysqlサービス
  • を先にオンにする
  • (2)hiveserver 2&サービス
  • をオープン
  • (3)beelineに入り、リモート接続クライアントを開き、hiveサービスに接続!connect jdbc:hive2://linux01:10000 (4)show databases; (5)desc database database_name;

  • 4.時計の作り方
  • (1)hdfs,yarnおよびmysqlサービス(2)hiveserver 2&サービス(3)beelineに入り、リモート接続クライアントを開き、hiveサービスに接続!connect jdbc:hive2://linux01:10000 (4)create table table_name(フィールドタイプ.フィールドタイプ,...)row format delimited fields terminated by「区切り記号」
  • 5.データのインポート方法データのインポートには、次の4つの方法があります.
    (1)データファイルを直接テーブルのディレクトリに転送する**(2)ローカルのデータをテーブルのディレクトリにアップロードし、リモート接続のインタフェースでload data local inpath""into table tablename;**この方式で用いられる最大(3)hdfsのデータをテーブルのディレクトリの下に移動し、リモート接続のインタフェースでload data inpath""into table tablenameを実行する.(4)テーブル作成時に、テーブル抽出データのディレクトリ(location"path")をデータが存在するディレクトリに設定する
    6.内部テーブル、外部テーブル、およびそれらの適用シーン
  • 外部テーブルは、テーブルの作成時にcreateとtableの間にexternalキーを付け、外部テーブル外部テーブルとして宣言する特徴は、テーブルを削除する際に、テーブル内のデータが一緒に削除されないこと、すなわち、このデータテーブルを共有する他の操作に影響を与えないことである.一般的に、このテーブルが元のデータまたは共通のデータに適用されるシーンでは、デフォルトでexternalキーを付けないテーブルが作成されます.内部テーブルは管理テーブルとも呼ばれます.テーブルを削除すると、テーブル内のデータがビジネスデータに適用されるシーン、すなわち、使い終わった後に削除できる場合を除きます.パーティション・テーブルとは何ですか.パーティション・テーブルには何の役割がありますか.
  • パーティションとは、クエリーの次元に基づいてデータを格納管理パーティションテーブルである.パーティション機能を実現したテーブルパーティションテーブルは、クエリーデータの際により効率的である.通常のテーブルクエリーデータは、テーブルディレクトリの下のすべてのファイルを検索し、条件に合致するデータをフィルタする必要があるが、パーティションテーブルは直接パーティションクエリーを指定することができ、より効率的である.8.パーティション表、二次パーティション表を作成し、データ
  • をインポートする
    1)     
    create table tb_name(
         ,
         ,
    ...
    )
    partitioned by(     )
    row format delimited fields terminated by “”;
    load data local inpath  “”  into table tb_name partition(  =”’’);
    2)       
    create table tb_name(
         ,
         ,
    ...
    )
    partitioned by(     ,     )
    row format delimited fields terminated by “”;
    load data local inpath  “”  into table tb_name partition(  =”’’,  =””);
    

    9.データインポート方式まとめデータインポートには以下の方式がある:1)基本方式データファイルを直接テーブルのディレクトリにアップロードし、ローカルからテーブルのディレクトリにデータファイルをアップロードするLoad data local inpath“”into table tb_name; hdfsからテーブルのディレクトリの下にファイルを移動するLoad data inpath""into table tb_name; テーブル作成時にテーブル抽出データを直接指定するディレクトリ2)Insert構文(インクリメンタル)データInsert into tb_をインポートname values(v1,v2…); 複数のデータをインポートするInsert into tb_name values(v1,v2…),values(v1,v2…)…; 別のテーブルデータのインポートInsert into tb_name select * from tb_name; インポートデータの上書きname select * from tb_name; 3)create構文(全量)フィールドタイプ、フィールドタイプ、...)as Create table tb_name() as Select * from tb_name; 4)importインポートまずexportエクスポートExport table tb_name to “”; 再importインポートImport table tb_name from “”; 注意:インポートするデータは、前のステップでエクスポートしたデータのみです.書き出し方法まとめ1)ローカルに書き出し区切り記号なし:Insert overwrite local directory""Select*from tb_name; 区切り記号付き:Insert overwrite local directory""Row format delimited fileds terminated by"t"Select*from tb_name; 2)hdfsにエクスポート区切り記号なし:Insert overwrite directory""Select*from tb_name; 区切り記号付き:Insert overwrite directory""Row format delimited fileds terminated by"t"Select*from tb_name; 3)hdfsコマンドHdfs dfs-get"src""local";4)hiveコマンド実行sql文Hive-e"sql"実行sqlファイルHive-f"filename"5)Export Export table tb_name to “”; 6)Sqoopは、hdfsの構造化データをmysqlテーブルにインポートしたり、mysqlテーブルのデータをhdfsにインポートしたりするために使用されます.