SQL
 Computer >> コンピューター >  >> プログラミング >> SQL

Hive 動的パーティショニングをマスターする:クエリを高速化するための自動データ セグメンテーション

Apache Hive は、分析と MapReduce ジョブのために Hadoop 上に構築されたデータ ウェアハウジング システムです。パーティショニングにより、大きなデータセットがより小さな部分に分割され、クエリが高速化されます。値が手動で指定される静的パーティショニングとは異なり、動的パーティショニングでは、挿入されるデータからパーティション値が自動的に決定されます。

静的パーティショニングと動的パーティショニング

機能 静的パーティショニング 動的パーティショニング パーティション値挿入ごとに手動で指定データから自動的に取得最適な用途既知のパーティションが少ない多数のパーティションまたは不明なパーティションWHERE 句必須不要柔軟性低高

動的パーティショニングの有効化

SET hive.exec.dynamic.partition = true;
SET hive.exec.dynamic.partition.mode = nonstrict;

完全な例

ソース テーブルを作成し、データをロードして、それを動的に分割しますか?

-- Step 1: Create source table
CREATE TABLE sales_raw (
 id INT,
 product STRING,
 amount DOUBLE,
 sale_date STRING,
 country STRING
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
-- Step 2: Load data
LOAD DATA LOCAL INPATH '/home/data/sales.csv' INTO TABLE sales_raw;
-- Step 3: Create partitioned table
CREATE TABLE sales_partitioned (
 id INT,
 product STRING,
 amount DOUBLE,
 sale_date STRING
)
PARTITIONED BY (country STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
-- Step 4: Insert with dynamic partitioning
INSERT INTO TABLE sales_partitioned PARTITION (country)
SELECT id, product, amount, sale_date, country
FROM sales_raw;

Hive は、個別の country に基づいてパーティション ディレクトリを自動的に作成します。 ソース データの値。

パーティションの管理

-- View partitions
SHOW PARTITIONS sales_partitioned;
-- Query specific partition (partition pruning)
SELECT * FROM sales_partitioned WHERE country = 'India';
-- Drop a partition
ALTER TABLE sales_partitioned DROP PARTITION (country = 'India');

結論

Hive の動的パーティショニングでは、INSERT 中にデータ値からパーティションが自動的に作成されるため、各パーティションを手動で指定する必要がなくなります。これは、多くの個別のパーティション値を持つ大規模なデータセットに最適であり、手動の労力を削減しながらパーティション プルーニングを通じてクエリのパフォーマンスを向上させます。

Hive 動的パーティショニングをマスターする:クエリを高速化するための自動データ セグメンテーション


  1. NoSQL をマスターする:最新のデータベース ソリューションの実践ガイド

    最後に Facebook を通じてメッセージを送信したのはいつですか?最近、自宅で「スマート」家電を使用しましたか?どちらの例でも、情報を保存するにはデータベースが必要です。このような場合には、NoSQL データベースがよく使用されます。  NoSQL、つまり「SQL だけではない」は、リレーショナル データベースの代替手段です。リレーショナル データベースでは、情報は他のデータ ポイントとの関係に従って分類されます。 MongoDB、Redis、Cassandra など、人気のある NoSQL データベースがいくつかあります。リレーショナル データベースでは簡単に処理できないデー

  2. PostgreSQL を Kubernetes にデプロイする:信頼性が高く、スケーラブルなデータベースのためのステップバイステップ ガイド

    PostgreSQL は、複雑なデータセットを処理することで知られるオープンソース RDBMS です。 Kubernetes は、コンテナ化されたアプリケーションのデプロイ、スケーリング、管理を自動化します。 PostgreSQL を Kubernetes にデプロイすると、自動スケーリング、ローリング アップデート、レプリカとフェイルオーバーによる信頼性の向上が実現します。 導入手順 クラスターイメージマニフェスト展開モニター ステップ 1:Kubernetes クラスターをセットアップする クラウドプロバイダー (AWS EKS、GCP GKE、Azure AKS) を使用するか、Min