Hadoopの - ハイブデータ操作

、ハイブデータ型

  1.基本データ型

    

 

     上記の表から、我々は、ハイブは、日付型をサポートしていないことを確認して、日付を文字列で表され、一般的に使用される日付フォーマット変換操作はカスタム関数によって運営されてハイブ。

    ハイブは、Javaでの基本データ型と基本データ型Javaはまた、1対1の対応であるハイブであることに加えて、文字列型。符号付き整数型:TINYINT、SMALLINT、INTとBIGINTは、Javaバイト、ショート、INT、及び長い原子の種類に相当し、それらは、1バイト、2バイト、8バイトの符号付き整数の4つのバイト。ハイブと浮動小数点データ型は、基本的なfloat型とJavaのdouble型に対応し、DOUBLE FLOAT。ハイブと基本データ型のブールのタイプBOOLEANのJavaと同等。

    データベースのVARCHARタイプのString型と同等のハイブの文字列型の変数であるが、それは文字の数まで保持できる宣言することはできません、理論的には、それが格納できる最大2GBの文字数を。

    ハイブは、変換の基本的なタイプの基本的なタイプの高いバイト型の下位バイトに変換することができるサポート例えば、 TINYINT、SMALLINT、INTはfloatに変換することができ、すべての整数型、FLOATとSTRINGタイプはDOUBLEに変換することができ、これらをハイブはJavaで書かれているので、変換は、言語の種類から対価のJavaに変換することができます。もちろん、またの使用が必要です低バイト型変換型の高バイト、サポート CASTハイブのカスタム関数を

  2.複雑なデータ型

    アレイ(含む複合データ型次の表に示す配列)、マップ(MAP)及び構造(STRUCT /又はオブジェクトとして理解することができます)。

    

 

  3.テキスト文字エンコーディング

    テキスト形式のファイルは、ユーザーのために、カンマまたはタブ区切りのテキストファイルに非常に精通している必要があることは疑いがあり、部品限り、ユーザが必要とするよう、ハイブは、これらのファイル形式をサポートしています。ただし、両方のファイル形式は、ユーザーがのように区切り文字のカンマやタブの余分なケアを必要としないファイルをテキストに必要とすることを共通の欠点持っているので、ハイブは、これらの文字をいくつかのデフォルトの制御文字を使用していますがめったにフィールド値には表示されません。所属ハイブフィールドをデフォルトの文字区切り文字を置き換える表現するために。

    

 データベースの第二に、操作

  1.データベースを作成します。

作成 データベースのデータベース名。

 

  2.チェックデータベース

// [すべてのデータベースは、
データベースをSHOW;
 //が指定されたデータベースのチェック
SHOW DATABASEデータベース名を;
 //は、のようなあいまいクエリ、のように使用します。ハイブデータベースの最初 
のSHOW DATABASE LIKE「like_の*」;
  // データベースの詳細な説明を参照すること 
 DESCデータベースをhive_01;

 

 

  3.データベース

データベース名を使用します。

 

  4.データベースを削除します。

 // データベース名;この削除、データベースを削除することができ、すべて削除した後、データベース内の対応表を必要とする
データベースのドロップデータベース名を;
 // 力は削除し、すべてのテーブル自体は削除し 
、データベースのデータベース名カスケードをドロップします。

 

データテーブルの第三に、操作

  1.データテーブルを作成します。

    

// 内部テーブルを作成し
、表の作成からinner_table(
    IDのint型
    名前の文字列を、
    趣味のアレイは、 <文字列> 
    地図が取り組む <文字列は、文字列> 
行がフォーマット区切り)// 固定フォーマット 
で終了したフィールドを「」//は、分割フィールドを表す 
終了コレクションアイテムを「 - 」// ストライプ配列の 
キーによって終了地図「:」; // セグメンテーションセット

 

 

  注意事項:

    データシートには、私が書き換え彼らのニーズに応じて、それぞれに応じて分割シンボルを作成しました

            

   データのロード

// Linuxは書き込みからロードされた空にする前にすべてのデータを表現上書きファイルをロードするパスされた後INPATH 
負荷データ上書き"/hivetest/person.txtのローカルINPATHテーブルの人には、
// 外部表を作成   
 // 外部表を作成することは、外部のキーワードを使用する必要があります
(表inner_tableの外部作成し
    、上記のid int型
    名前文字列、
    趣味のアレイ <文字列> 
    地図取り組む <文字列、文字列> 
行形式)DELIMITED // 固定フォーマット 
によって終了フィールドを「」//は、分割フィールド表し 
により終了コレクションアイテムを『 - 』// ストライプ配列の 
キーによって終了地図『:』; // セグメンテーションセット 
LOCATION 『/ outter /データ』// このパスはHDFSに既存のパスです

  前記内側および外側テーブルとの間の差

    1つのキーだけの内部と外側のテーブル間の違いが、自然は完全に異なっているものの、内部テーブルを使用すると、内部テーブルを削除した場合、外側のテーブルが削除された後に作成した外部テーブルのHDFSへのパスで、復元することはできません、ハイブが存在します元のパスに再び正しい道をフィールドの同じ種類を作成するときにバックデータをインポートする必要があり、その後、自動的にテーブルがあれば、新しいテーブルで、限り、ファイル内のローカルメモリへのパスとして、存在して作成していないファイルを残すために、そのファイルは、一致するテーブルタイプ、エラーテーブルに沿って作成されます。

    、ハイブ外側テーブルのテーブル位置ではなく、メタデータテーブルに直接話す介してIF  REPAIRテーブルTABLE_NAME MSCK(HDFSメタストアにメタデータ情報を書き込みます)。

  3.表を確認

// のテーブルのすべての内容を確認 
SELECT * テーブル名からし;
 // テーブル構造の確認
DESCフォーマットされたテーブル名を;
 //は、ライブラリ内のテーブルをチェックし
、テーブルを表示
 // 意志テーブル新しいテーブルへの問い合わせの結果が
AS SELECTテーブルのテーブル名を作成クエリの言葉;
 // 同じテーブルを作成していないデータ構造は、
テーブルの新しいテーブルの作成
、コピーするテーブルLIKEを。

 

 

 

   4.表を削除します。

  テーブル表名をドロップ。

 

  表5.変更

@ 1:テーブルの名前を変更し
、テーブルのソーステーブル名が新しい名前に名前を変更変更;
 // 2:変更情報テーブルの列が
テーブルの変更テーブル名テーブルの列名に新しいテーブルのカラム名テーブルの列名の新しいタイプを変更; 
 // 3:新しい追加のテーブル(使い捨て挿入複数の列)
テーブルテーブルは(列の追加ALTER 
   、列名が名1を入力し
    、列2、列名タイプ名2 
// 4:列を削除するには、自然の中でハイブで削除して置き換えることはできませんそのため、削除の効果を達成するための代替と
person_info列置き換えALTERテーブルを(
    ID文字列、
    名前の文字列、
    趣味のアレイを <文字列> 
    地図取り組む <文字列、文字列> 
// 5:置換テーブル記憶形式のrcfile - > orcfile。
テーブルを変更セットはSequenceFile T1をFILEFORMAT;
 // 6:するtable文の建設を表示
テーブルのテーブル名を作成示し;
 // 7:コメントテーブルの設定を
SET ALTERのperson_infoテーブル
  tblproperties( = "人物の詳細" "コメント" );
 // 8:表セパレータ変更 
SETのserdeproperties person_info ALTERテーブル( 'colelction.delim' = '〜' );
 // 9:serde_class設定テーブル直列化可能クラスは、 
表T1(IDの作成int型、文字列の名前、年齢int型); 
ALTER表T1 SET SerDe   'org.apache.hadoop.hive.serde2.RegexSerDe' 
serdeproperties(と "input.regex" =「ID =(。 *)、名前=(。* )、年齢=(。*)「)

   注意:修正・タイプの互換性の種類は次の時にことに留意すべきです。

 

 

おすすめ

転載: www.cnblogs.com/wuxuewei/p/11469037.html