2016-07-07 5 views
0

私は、約200のハイブの寄木張りテーブルを必要とするユースケースを持っています。 これらの寄木細工テーブルをフラットテキストファイルから読み込む必要があります。しかし、私たちはフラットテキストファイルから直接寄木張りテーブルを読み込むことはできません。 次のアプローチを使用していますハイブテーブルの作成と削除の繰り返しの影響

  1. 一時的な管理対象テキストテーブルを作成しました。
  2. テキストデータを含む一時テーブルをロードしました。
  3. 作成された外部寄木細工テーブル。
  4. 選択クエリを使用して、テキストテーブルを含む寄木細工テーブルを読み込みました。
  5. テンポラリテキストテーブルのテキストファイルをドロップします(しかし、メタストア内にテーブルを保持します)。

このアプローチでは、一時的なメタデータ(200個のテーブル用)をメタストアに保持しているためです。だから私は2番目のアプローチは、hdfsからのテキストファイルと一緒に一時的なテキストテーブルをドロップするということです。そして、次回は一時テーブルを再作成して、寄木細工が作成されたら削除します。

2時間ごとに200個のテーブルすべてに対して上記の手順を実行する必要があるため、メタストアからテーブルを作成して削除すると、運用中のクラスタに何か影響がありますか?

一時的なメタデータをメタストアに保存し、ハイブメタストアからテーブル(メタデータ)を作成および削除することは、どのような方法で生産に影響を与えることができますか?

+0

* "フラットテキストファイルから寄木張りテーブルを直接読み込むことはできません" * - 本当ですか?あなたは何を信じさせるのですか? ExtTextからの入力テキストとINSERT INTO Parquet SELECTをマップするEXTERNALテーブルを作成することはできませんか? –

+0

サイドノート:私は今、厄介なLOAD命令の実装がFBからの悪い設計選択であると完全に確信しています。アマチュアはHDFSからハイブにデータを「ロード」する必要があると考えていますが、実際にはハイヴはHDFSにすべてのデータを格納しています。 –

+0

ご連絡ありがとうございますSamsonありがとうございます。 _ "入力テキストとINSERT INTOの間接選択からExtTextをマップするEXTERNALテーブルを作成することはできませんか?" _ - これは、1から5までのポイントで述べたのと同じことです。あなたが最初にテキストテーブルを作成する必要があるテキストファイルから寄木張りテーブルをロードするだけで、あなたは寄木張りテーブルを読み込むことができます。毎回テンポラリ・テキスト・テーブルを作成することは良い考えです。今のところ私はこれのための何かの選択肢を見ないので。 他のアイデアを共有できれば幸いです。 –

答えて

0

アプローチは、ハイブ メタストアから メタストア、テーブルの作成と削除(メタデータ)に一時的なメタデータを保ち、生産に影響を与える可能性がどの?

いいえ、影響はありません。HiveMetastoreのバックエンドは200 * n回の変更を簡単に処理できるはずです。あなたの不確かな場合は、50のテーブルで開始し、バックエンドのDBのパフォーマンスを監視します。

関連する問題