ハイブがストアド プロシージャをサポートしていないのはなぜですか? サポートしていない場合、Hive で Sp をどのように処理しますか? 代替ソリューションはありますか?(mssql には既にデータベースがあるため) HBASE はどうですか? サポートSPですか?
16846 次
5 に答える
1
ハイブにはストアド プロシージャがありません
実際、既存の回答で説明されているように、Hiveにはストアドプロシージャがありません。ただし、次の 2 つの緩和要因があります。
ハイブにはビューがあります
もちろん、これはストアド プロシージャの適切な代替手段ではありませんが、ビューを賢く使用することで、プロシージャの一部を不要にすることができます。
別のプログラムからハイブを呼び出すことができます
前回、Hive にストアド プロシージャがないという問題に遭遇したとき、私がやりたかったこと (すべての列のループ) は、別のプログラムでも実行できることに気付きました。そのため、次のワークフローに従いました。
- クエリを実行して関連する (メタ) データを取得します。Python はハイブを呼び出して列名を取得します。
- 情報を使用してクエリを作成します。Python はすべての列名を取り込み、対応する選択ステートメントを作成します。
- 結果のクエリを実行します。Python はシステム コールを実行します。
hive -e
- オプションで、必要に応じて 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 に答える