4

ハイブがストアド プロシージャをサポートしていないのはなぜですか? サポートしていない場合、Hive で Sp をどのように処理しますか? 代替ソリューションはありますか?(mssql には既にデータベースがあるため) HBASE はどうですか? サポートSPですか?

4

5 に答える 5

1

ハイブにはストアド プロシージャがありません

実際、既存の回答で説明されているように、Hiveにはストアドプロシージャがありません。ただし、次の 2 つの緩和要因があります。

ハイブにはビューがあります

もちろん、これはストアド プロシージャの適切な代替手段ではありませんが、ビューを賢く使用することで、プロシージャの一部を不要にすることができます。

別のプログラムからハイブを呼び出すことができます

前回、Hive にストアド プロシージャがないという問題に遭遇したとき、私がやりたかったこと (すべての列のループ) は、別のプログラムでも実行できることに気付きました。そのため、次のワークフローに従いました。

  1. クエリを実行して関連する (メタ) データを取得します。Python はハイブを呼び出して列名を取得します。
  2. 情報を使用してクエリを作成します。Python はすべての列名を取り込み、対応する選択ステートメントを作成します。
  3. 結果のクエリを実行します。Python はシステム コールを実行します。hive -e
  4. オプションで、必要に応じて 2 に進みます

ビューと外部呼び出しを使用して、これまでのところ、ストアド プロシージャの不足を回避することができました。

于 2016-08-05T08:10:01.940 に答える
-1

http://www.plhql.orgでオープンソース プロジェクト PL/HQL をご覧ください。これにより、既存の SQL Server、Oracle、Teradata、MySQL などのストアド プロシージャを Hive で実行できます。

于 2015-04-08T14:19:44.183 に答える