問題タブ [table-partitioning]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hive - パーティション化されたハイブテーブルから行を削除するには?
パーティション化された Hive テーブルから特定の行を削除する必要があります。これらの削除行は特定の条件に一致するため、パーティション全体を削除することはできません。テーブルに 、 、 の3Table
つの列があり、 と で分割されているとします。partner
date
source_key
date
source_key
ハイブ内の特定のレコード セットの削除または更新に対してサポートされている操作がないことがわかっています(ハイブ内のレコードを削除および更新する方法を参照してください)。
このソリューションに続いて、特定の条件に一致するレコードのみを保持するために、次のクエリを正常に実行しましdate
た。source_key='heaven'
partner<>'angel'
テーブルの一時的な空のコピーを作成しますTable
。
現在の行を入力します。
対象のパーティションを削除します。
編集したパーティションをターゲット テーブルに挿入します。(構文エラーのため、OVERWRITE を挿入できませんでした)
一時テーブルをドロップします。
クエリは正常に実行されます。テーブルTable
が管理されているため、パーティションが削除されたときに hdfs ファイルを削除する必要がありますが、これらすべてのクエリの実行後、ターゲット テーブルTable
はすべてのレコードをpartner = 'angel'
指定されたテーブルに保持するため、何かが間違っています (おそらく最後の INSERT INTO ステートメントで)。日付の範囲と 、基本的に同じままです。
障害はどこにありますか?何が欠けている?そのようなHiveテーブルの特定の条件に一致する特定の行を正確に削除するにはどうすればよいですか?
postgresql - JDBC を使用して Postgres のテーブルのパーティションを取得する
Postgres でテーブル名を指定すると、どうすればわかりますか。
テーブルが何らかのキーで分割されている場合、
このテーブルのパーティションの名前は何ですか
JDBC を使用してデータベースに対してプログラミングしている場合はどうなりますか?
例(この例はPostgresの公式ドキュメントからのものです)。Postgres で分割テーブルを作成すると、次のようになります。
そして、このテーブルのいくつかのパーティションを作成しました:
JDBC を使用してデータベースにクエリを実行している場合、テーブル名の測定値が与えられた場合、どのようにパーティションの名前を取得できますか? ありがとう!