このトピックでは、E-MapReduce (EMR) クラスターでHiveを使用して、OSS-HDFSに格納されているデータを処理する方法について説明します。
前提条件
EMR V3.42.0以降、またはEMR V5.8.0以降のクラスターが作成され、Hiveサービスが選択されています。 詳細については、「クラスターの作成」をご参照ください。
バケットのOSS-HDFSが有効になり、OSS-HDFSに対するアクセス許可が付与されます。 OSS-HDFSを有効にする方法の詳細については、「OSS-HDFSの有効化とアクセス許可の付与」をご参照ください。
手順
EMRクラスターにログインします。
EMRコンソールにログインします。 左側のナビゲーションウィンドウで、[ECS上のEMR] をクリックします。
作成したEMRクラスターをクリックします。
[ノード] タブをクリックし、ノードグループの左側にある [] をクリックします。
ECSインスタンスのIDをクリックします。 [インスタンス] ページで、インスタンスIDの横にある [接続] をクリックします。
SSHキーペアまたはSSHパスワードを使用してWindowsまたはLinuxでクラスターにログインする方法の詳細については、「クラスターにログインする」をご参照ください。
ターミナルで次のコマンドを使用して、Hiveに接続します。
その他の接続方法については、「Hiveへの接続」をご参照ください。
ハイブ
ターミナルで次のコマンドを使用して、Hiveに接続します。
その他の接続方法については、「Hiveへの接続」をご参照ください。
ハイブ
既存のテーブルにパーティションを追加します。
既存のテーブルにパーティションを追加して、テーブルのデータをより小さな単位で格納できます。 パーティションに基づいてクエリ条件を指定できます。 これにより、指定された条件を満たすパーティションのみがスキャンされ、クエリのパフォーマンスが向上します。
コマンド構文
ALTER TABLE <table_name> ADD [存在しない場合] PARTITION <pt_spec> [PARTITION <pt_spec> PARTITION <pt_spec>...] 場所 '場所';
次の表に、上記のコマンドのパラメーターを示します。
パラメーター
必須
説明
table_name
必須
パーティションを追加するテーブルの名前。
存在しない場合
任意
テーブルに同じ名前のパーティションが含まれている場合、エラーがスキップされる原因となるパラメーター。 If NOT EXISTSパラメーターが指定されておらず、追加するパーティションと同じ名前のパーティションがすでに存在する場合、操作に失敗し、エラーが返されます。
pt_spec
必須
追加するパーティション。The partition that you want to add. このパラメーターの値は、
(partition_col1 = partition_col_value1, partition_col2 = partition_col_value2, ...)
形式です。 この形式では、partition_col
はパーティションキー列の名前、partition_col_value
はその値です。 パーティションキー列の名前は大文字と小文字を区別せず、値は大文字と小文字を区別します。場所
必須
パーティションにデータを格納するために使用されるOSSパス。
例
次のサンプルコードは、2021年12月にsale_detailという名前のテーブルにパーティションを追加して販売レコードを中国 (杭州) リージョンに格納し、パーティションにデータを格納するために使用されるOSSパスを指定する方法の例を示しています。
ALTER TABLE sale_detail ADD IF NOT EXISTS PARTITION (sale_date='20212' 、region='hangzhou') LOCATION 'oss:// examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/path/2021/';