Hiveでレコードを削除・更新する方法
2023-12-14 15:53:57
質問
Hadoop、Hive、Hive JDBCをインストールし、正常に動作しています。しかし、私はまだ問題があります。MySQLの削除または更新コマンドがHiveで動作しないため、どのようにHiveを使用して単一のレコードを削除または更新することができます。
ありがとうございます。
hive> delete from student where id=1;
Usage: delete [FILE|JAR|ARCHIVE] <value> [<value>]*
Query returned non-zero code: 1, cause: null
どのように解決するのですか?
Hiveを通常のRDBMSとして考えるべきではありません。Hiveは非常に大きな不変のデータセットに対するバッチ処理に適しています。
以下はHive 0.14より前のバージョンに適用されます。 アシュトニウム の回答をご覧ください。
特定のレコードまたはレコードの特定のセットの削除または更新のためにサポートされている操作はなく、私には、これはむしろ貧弱なスキーマの兆候です。
以下はその例です。 公式ドキュメントの :
Hadoop is a batch processing system and Hadoop jobs tend to have high latency and
incur substantial overheads in job submission and scheduling. As a result -
latency for Hive queries is generally very high (minutes) even when data sets
involved are very small (say a few hundred megabytes). As a result it cannot be
compared with systems such as Oracle where analyses are conducted on a
significantly smaller amount of data but the analyses proceed much more
iteratively with the response times between iterations being less than a few
minutes. Hive aims to provide acceptable (but not optimal) latency for
interactive data browsing, queries over small data sets or test queries.
Hive is not designed for online transaction processing and does not offer
real-time queries and row level updates. It is best used for batch jobs over
large sets of immutable data (like web logs).
この制限を回避する方法として、パーティションを使用する方法があります。私は、あなたが何を id が何に対応するのかわかりませんが、もしidの異なるバッチを別々に取得しているのであれば、idでパーティショニングされるようにテーブルを再設計すれば、取り除きたいidのパーティショニングを簡単に削除することができます。
関連
-
HDFSソースコード解析 --- デコミッション
-
Hadoopデータディレクトリの移行
-
コンテナがゼロ以外の終了コード1で終了しました。エラーファイル: prelaunch.err.org.apache.hadoop.mapreduce.
-
Kerberosに関するFailed to find any Kerberos tgt問題を解決する。
-
[解決済み] SQL ServerでINNER JOINを使用して削除するにはどうすればよいですか?
-
[解決済み] Hiveの内部テーブルと外部テーブルの違い?
-
[解決済み] apache sparkはhadoopなしで動きますか?
-
[解決済み] HadoopのReduceタスクはいつ始まるのか?
-
Hiveでクエリを実行する際に、出力と一緒にカラム名を取得する方法はありますか?
-
Hiveとは。org.apache.hadoop.hive.ql.exec.MapRedTask からコード2を返す。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Hadoop-Hiveからテーブルを削除/トランケートする方法は?
-
Hbase公式ドキュメント(中国語
-
[解決済み] Hadoopで複数のMapReduceジョブを連鎖させる
-
[解決済み] Hadoopはブロック境界をまたいで分割されたレコードをどのように処理するのか?
-
[解決済み] HADOOP FS」シェルコマンドと「HDFS DFS」シェルコマンドの違いは何ですか?
-
[解決済み] HDFSディレクトリのサイズを確認する方法は?
-
[解決済み] apache sparkはhadoopなしで動きますか?
-
[解決済み] HadoopのReduceタスクはいつ始まるのか?
-
縮小後の出力ファイルのマージ
-
Hiveでクエリを実行する際に、出力と一緒にカラム名を取得する方法はありますか?