A:table文のハイブ一般的な構成
table文のハイブ外観建設:
externaltable_test存在しない場合は、外部表を作成します
(
AA文字列、
BBの文字列
(日付文字列)で仕切ら)
行形式区切り
で終わるフィールドを「|」
位置'/ハイブ/テーブル/ externaltable_test /'。
ハイブtable文の内側に構築された表
innertable_test存在しない場合は、テーブルを作成します
(
AA文字列、
BBの文字列
(日付文字列)で仕切ら)
行形式区切り
「|」で終わるフィールドを
位置'/ハイブ/テーブル/ innertable_test /'。
2:ハイブデータ読み込み速度
500Mからのデータのコピーに関するデータ
通常の負荷負荷データ
ロードデータINPATH '/ハイブ/テーブル/ table_test / table_test /日= 20190921' テーブルexternaltable_testパーティションに(日付= 20190921)。5.288
パーティション(日付= 20190923)innertable_testテーブルにロードデータINPATH '/ハイブ/テーブル/ table_test / table_test /日= 20190923'。5.454
これは、誰かが私をスプレー参照、テーブル内のデータをカットする必要があり、ちょうどメタデータの外観を変更することができます
どのように外側と内側のテーブルには、できるだけ負荷データを高速
しかし、それは真実です!!
3:遅い負荷の秘密の外観
1.locationの役割
位置は、パスの外観を格納されたデータを使用して、指定されたが、その後、データをロードするとき、または内の位置にデータをカットされます
異なる内側と外観が、削除されたとき、テーブル内のデータを削除するものではありません
2.結論
場所の外観を開発する場合、その後、場所にデータをロードまたは遅すぎるデータローディングが得られ、データをカットします。
3.修理のバグの再テスト
読むためにtable文の建設の外観
externaltable_test存在しない場合は、外部表を作成します
(
AA文字列、
BBの文字列
(日付文字列)で仕切ら)
行形式区切り
「|」で終わるフィールドを。
そして、テストデータをロードします:
ロードデータINPATH '/ハイブ/テーブル/ table_test / table_test /日= 20190921' テーブルexternaltable_testパーティションに(日付= 20190921)。0.683
そう、意識的により良いで指定した場所にデータをコピーする指定した場所の外観の建設やない~~~
4:インナーリフティング方式の負荷速度
(日付= 20190922)LOCATION '/ハイブ/テーブル/ table_test / table_test /日= 20190922' パーティションを追加innertable_test表を改変すること。0.684
これは、単にデータを管理する必要性を削除しない場合に、テーブルを削除して、テーブルへのリンクの似た外観を追加しました。このように、外側テーブル使用中かどうか。
このテーブルには、テーブルの外観のテーブルに作るための方法は、外観ではないではありません。しかし、利用の外観上の個人的な感情少し良いです。
ALTER TABLE externaltable_test ADD PARTITION(ddate=20190920) LOCATION '/hive/table/table_test/dt=20190920'; 6.829
这是对有location的外表加载数据的测试,几乎和load的方式一样了,但是数据并没有剪切过去。具体原因还在探索。