OceanBase
English日本語简体中文
ドキュメントホーム
製品
エコシステム
リリース

データベース

OceanBase CloudOceanBaseデータベース

データベース

OceanBase CloudOceanBaseデータベース
OceanBase CloudOceanBaseデータベース

OceanBaseデータベース

KV - V4.4.2
  • OBKVの概要
  • OBKVのアーキテクチャ
  • OBKV-Table
    • OBKV-Table概要
      • OBKV-Tableの概要
      • OBKV-Tableのコア機能
      • OBKV-Tableデプロイの概要
    • シンプルなKey-Valueストレージのクイックスタート(Java)
    • OBKV-Table Javaクライアントを使ったアプリケーション開発
      • OBKV-Table Java開発ガイド
      • OBKV-Table開発の準備
      • OBKV-Table Javaクライアントを使用してクラスタに接続する
      • OBKV-Table操作例
        • OBKV-Tableへのデータ書き込み
        • OBKV-Tableによるデータのクエリ
        • OBKV-Tableでのデータ更新
        • OBKV-Tableによるデータの削除
      • OBKV-Table Javaクライアントのパラメータ設定
    • OBKV-Table管理
      • OBKV-Table管理の概要
      • OBKV-Tableの高可用性
      • OBKV-Tableのセキュリティ権限
      • OBKV-Tableモニタリングメトリクス
    • OBKV-Tableリファレンス
      • OBKV-Tableのデータモデル
      • OBKV-Tableの操作タイプ
      • OBKV-Tableがサポートするデータ型
      • OBKV-Table全文インデックス
      • OBKV-Tableのグローバルインデックスの使用範囲と例
      • OBKV-Tableの期限切れデータ削除
      • OBKV-Tableのグループコミット
      • OBKV-Tableの弱い整合性読み取りと最寄りデータセンターからの読み取り
      • OBKV-Table関連ビュー
    • OBKV-Table よくある質問
  • OBKV-HBase
    • OBKV-HBaseの概要
    • OBKV-HBaseのコア機能
    • OBKV-HBaseのデプロイ
    • OBKV-HBaseによるアプリケーション開発
      • OBKV-HBase アプリケーション開発の概要
      • OBKV-HBase Javaクライアントを使用したクラスタへの接続
      • HBaseの業務コードをOBKV-HBaseに移行する
      • OBKV-HBase データ操作の例
    • OBKV-HBase 移行ガイド
    • OBKV-HBase管理
      • OBKV-HBase管理の概要
      • OBKV-HBaseの高可用性
      • OBKV-HBaseのセキュリティ権限
      • OBKV-HBaseモニタリングメトリクス
    • OBKV-HBaseクエリの最適化
    • OBKV-HBaseの性能テスト
    • OBKV-HBaseリファレンス
      • OBKV-HBaseデータモデル
      • OBKV-HBaseのデータスキーマ
      • HBaseとの互換インターフェース
      • HBaseと互換性のあるフィルター
      • OBKV-HBaseの自動パーティション分割
      • OBKV-HBaseにおける期限切れデータの削除
      • OBKV-HBaseの弱い整合性読み取りと最寄りデータセンターからの読み取り
      • OBKV-HBase関連ビュー
    • OBKV-HBaseエコシステム統合
      • Flink連携
        • Flinkコネクタを使用してOBKV-HBaseにデータを同期する
        • ネイティブFlinkによるOBKV-HBaseへのアクセス
      • HiveによるOBKV-HBaseへのアクセス
      • SparkによるOBKV-HBaseへのアクセス
  • OBKVリリースノート
    • OBKV Enterprise版

PDF をダウンロード

ドキュメントフィードバック
  1. ドキュメントセンター
  2. OceanBaseデータベース
  3. KV
  4. V4.4.2

HiveによるOBKV-HBaseへのアクセス

最終更新:2026-09-30 06:35:08

前提条件
テーブルの作成
OBKV-HBaseクライアント接続パラメータの設定
直接接続モードの設定
クラウドモードの設定
その他のパラメータ
使用例
依存関係の追加
Hiveの読み書き例

Apache Hiveは、Apache Hadoopを基盤としたデータウェアハウスソフトウェアであり、ユーザーがSQLを使用して大規模なデータセットの読み書きおよび管理を行うことを可能にします。Hiveの主な機能には、分散ストレージ、フォールトトレランス、そして大規模データ分析が含まれます。これにより、分散システムに保存されたデータに対するクエリおよび分析プロセスが簡素化され、データ分析が容易になります。

本記事では、コードを修正することなく、Hiveを使用して直接OBKV-HBaseにアクセスする方法について説明します。

前提条件

Hiveを使用してOBKV-HBaseにアクセスする前に、以下の条件が満たされていることを確認する必要があります。

  • ネイティブHive機能をサポートするために、OBKV-HBase Javaクライアントバージョン2.0.0-alpha4以降を使用します。
  • OBKV-HBaseのHive使用機能をサポートするために、OceanBaseバージョンV4.4.1以降を使用します。
  • Hiveのバージョンが3.0.0から3.1.3の間であることを確認します。

テーブルの作成

Hiveを使用してOBKV-HBaseワイドテーブルにアクセスする場合、2つのテーブル作成方法があります。

  • HBase Admin createTableインターフェースを使用してテーブルを作成します。
  • SQLを使用してテーブルを作成します。SQLでテーブルを作成する場合は、OBKV-HBaseのテーブル作成ルールに従って作成する必要があります。テーブル作成ルールについては、OBKV-HBaseデータ操作の例を参照してください。

OBKV-HBaseクライアント接続パラメータの設定

OBKV-HBaseでは、パブリッククラウドとプライベートデプロイメントの方式によって、クライアント接続パラメータの設定方法が異なります。プライベートデプロイメントのOceanBaseクラスタは 直接接続モードの設定 に従って設定する必要がありますが、パブリッククラウドのOBKVサービスでは クラウドモード に従って設定する必要があります。

どちらのデプロイメント方式であっても、すべての構成パラメータは以下の2つの方法で設定できます:

  • Hiveクライアントの設定ファイル hive-site.xml に設定を追加します。
  • Hive Configurationの set メソッドを使用して、コード内でConnectionを初期化する前に設定を行います。

直接接続モードの設定

直接接続モードは、プライベートデプロイメントのOceanBaseクラスタに適用されます。Configurlを使用してOceanBaseクラスタに直接接続します。Configurlは、OceanBaseデータベースの基盤となるサーバーの実際のアドレスを取得するために使用されます。以下は、Hiveで直接接続モードの接続パラメータを設定する方法です。

注意

paramURLに含まれるXMLの特殊文字&は、設定ファイル内では&と記述してください。エスケープしないとXMLの解析に失敗します。

  • 方法1:Hiveの設定ファイル hive-site.xml に以下のパラメータを設定します。

    <!--
    現在のクラスタを次のように仮定します
    ClusterName:obkvcluster
    TenantName:obkv
    DataBaseName: test
    UserName:root
    UserPassWord:
    SYS_USER_NAME : sysroot
    SYS_USER_PASSWD:
    -->
    
    <configuration>
    <!-- OceanBase HBase実装クラスの置き換え -->
    <property>
        <name>hbase.client.connection.impl</name>
        <value>com.alipay.oceanbase.hbase.util.OHConnectionImpl</value>
    </property>
    
    <!-- OceanBase接続設定 -->
    <property>
        <!-- obconfig serverからRSlistのURLを取得します。詳細については、Config URLの取得に関する内容を参照してください -->
        <name>hbase.oceanbase.paramURL</name>
        <value>PARAM_URL</value>
    </property>
    <property>
        <!-- 形式はuserName@tenantName#clusterName -->
        <name>hbase.oceanbase.fullUserName</name>
        <value>root@obkv#obkvcluster</value>
    </property>
    <property>
        <!-- fullUserNameで指定したユーザーがOceanBaseにアクセスするためのパスワード -->
        <name>hbase.oceanbase.password</name>
        <value></value>
    </property>
    <property>
        <!-- システムテナント配下のユーザー名。ルーティングテーブルにアクセスする権限があるのはシステムテナント配下のユーザーのみです -->
        <name>hbase.oceanbase.sysUserName</name>
        <value>sysroot</value>
    </property>
    <property>
        <!-- システムテナント配下のユーザーパスワード -->
        <name>hbase.oceanbase.sysPassword</name>
        <value></value>
    </property>
    </configuration>
    
  • 方法2:コード内でHiveConfを使用してパラメータを設定します。

    /*
    * 現在のクラスタを次のように仮定します
    * ClusterName:obkvcluster
    * TenantName:obkv
    * DataBaseName: test
    * UserName:root
    * UserPassWord:
    * SYS_USER_NAME : sysroot
    * SYS_USER_PASSWD:
    */
    HiveConf conf = new HiveConf();
    conf.set("hbase.client.connection.impl", "com.alipay.oceanbase.hbase.util.OHConnectionImpl")
    conf.set("hbase.oceanbase.fullUserName", "root@obkv#obkvcluster");
    conf.set("hbase.oceanbase.password", "");
    // obconfig serverからRSlistのURLを取得します。詳細については、以下のConfig URLの取得に関する内容を参照してください
    conf.set("hbase.oceanbase.paramURL", "");
    conf.set("hbase.oceanbase.sysUserName", "sysroot");
    conf.set("hbase.oceanbase.sysPassword", "");
    

Config URLの取得:

以下の方法を参考にConfig URLを取得できます:

  • OCPからConfig URLを取得する

    OCPを使用している場合は、OCPからConfig URLを取得できます。具体的な操作は以下のとおりです:

    a. OceanBase Cloud Platform(OCP)にログインします。 b. 左側のナビゲーションバーでクラスタを選択し、下にスクロールしてクラスタリストを見つけ、アクセスしたいクラスタ名をクリックして開きます。 c. クラスタの詳細ページでConfigURLパラメータを見つけます。このパラメータはクライアントの初期化時に設定する必要があります。

  • OBDを使用してConfig Serverをデプロイし、ObRootServiceInfoUrlを取得する

    OCPを使用していない場合は、OBDを使用してConfig Serverをデプロイする必要があり、ObRootServiceInfoUrlを取得する必要があります。

クラウドモードの設定

クラウドモードは、パブリッククラウドにデプロイされたOceanBaseクラスタに適用されます。ODPを介してOceanBaseクラスタに接続します。以下は、Hiveでクラウドモードの接続パラメータを設定する方法です。

  • 方法1:Hiveの設定ファイルhive-site.xmlに以下のパラメータを設定します。

    <!--
    現在のクラスタは以下のように仮定します。
    DataBaseName: test
    UserName:root
    <configuration>
    -->
    <!-- OceanBase HBase実装クラスの置換 -->
    <property>
        <name>hbase.client.connection.impl</name>
        <value>com.alipay.oceanbase.hbase.util.OHConnectionImpl</value>
    </property>
    
    <!-- OceanBase接続設定 -->
    <configuration>
        <property>
            <name>hbase.oceanbase.fullUserName</name>
            <value>root</value>
        </property>
        <property>
            <name>hbase.oceanbase.password</name>
            <value></value>
        </property>
        <property>
            <!-- ODP Addressの取得についてはこちらを参照 -->
            <name>hbase.oceanbase.odpAddr</name>
            <value></value>
        </property>
        <property>
            <name>hbase.oceanbase.odpPort</name>
            <value>3307</value>
        </property>
        <property>
            <name>hbase.oceanbase.odpMode</name>
            <value>true</value>
        </property>
        <property>
            <name>hbase.oceanbase.database</name>
            <value>test</value>
        </property>
    </configuration>
    
  • 方法2:コード内で、HiveConfを使用してパラメータを設定します。

    /*
    * 現在のクラスタは以下のように仮定します。
    * DataBaseName: test
    * UserName:root
    */
    HiveConf conf = new HiveConf();
    conf.set("hbase.client.connection.impl", "com.alipay.oceanbase.hbase.util.OHConnectionImpl")
    conf.set(HBASE_OCEANBASE_FULL_USER_NAME, "root");
    // ユーザーPassword
    conf.set(HBASE_OCEANBASE_PASSWORD, "");
    // ODP Addressの備考を参照
    conf.set(HBASE_OCEANBASE_ODP_ADDR, "");
    
    // OBKVのポートは3307(固定)
    conf.setInt(HBASE_OCEANBASE_ODP_PORT, "3307");
    
    // クラウドでODPモードを使用する(固定)
    conf.setBoolean(HBASE_OCEANBASE_ODP_MODE, true);
    
    // データベースのdatabase名
    conf.set(HBASE_OCEANBASE_DATABASE, "test");
    

注意

paramURLに含まれるXMLの特殊文字&は、設定ファイル内では&amp;と記述してください。エスケープしないとXMLの解析に失敗します。

ODP Addressの取得:

ODP Addressは以下の方法で取得できます。OceanBase Cloudテナントのダッシュボードにアクセスし、デプロイメント関係図を確認します。

その他のパラメータ

上記の必須接続パラメータ以外にも、いくつかの設定パラメータを設定できます。よく使われるパラメータとその意味については、OBKV-HBaseクライアントのパラメータを参照してください。

使用例

依存関係の追加

プロジェクトの pom.xml にOBKV-HBaseの依存関係を追加します:

<dependency>
  <groupId>com.oceanbase</groupId>
  <artifactId>obkv-hbase-client</artifactId>
  <version>2.2.1</version>
</dependency>

Hiveの依存関係も追加します。ただし、Hive-HbaseHandler を追加する際は、OBKV-HBaseの依存関係との競合を避けるため、Hiveが提供する hbase-common および hadoop-common の依存関係を除外する必要があります。

<!-- Hive JDBC Driver -->
<dependency>
    <groupId>org.apache.hive</groupId>
    <artifactId>hive-jdbc</artifactId>
    <version>${hive.version}</version>
    <exclusions>
        <exclusion>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-common</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<!-- Hive HBase Handler -->
<dependency>
    <groupId>org.apache.hive</groupId>
    <artifactId>hive-hbase-handler</artifactId>
    <version>${hive.version}</version>
    <exclusions>
        <exclusion>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-common</artifactId>
        </exclusion>
    </exclusions>
</dependency>

Hiveの読み書き例

HiveがOBKV-HBaseに読み書きする例としては、外部テーブルの作成、外部テーブルへのクエリ実行、データの挿入などがあります。

Hiveで外部テーブルを作成する

外部テーブルを作成する構文は次のとおりです。

CREATE EXTERNAL TABLE if not exists {HiveTableName}(key string, value string)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,{HbaseFamilyName}:{HbaseQualifiername}")
TBLPROPERTIES ("hbase.table.name" = "{HbaseTableName}", "hbase.mapred.output.outputtable" = "{HbaseTableName}");

ここで、各項目の説明は以下のとおりです。

  • HiveTableName はHiveにおける外部テーブルの名前です。
  • HbaseFamilyName はHBaseにおけるColumn Familyの名前を指定します。
  • HbaseQualifiername はHBaseにおけるQualifierの名前を指定します。
  • hbase.table.name は対応するHBaseテーブルの名前を指定します。
  • hbase.mapred.output.outputtable は書き込み時のターゲットHBaseテーブル名を指定します。

読み書きの例

注意

現在、HiveからOBKV-HBaseの基盤ファイルを直接読み取ることはサポートされていませんが、外部テーブルを関連付けたり作成したりすることで、OBKV-HBaseにおけるデータの読み書きをサポートしています。

次のOBKV-HBaseテーブルがあると仮定します。

-- テーブルグループを作成
CREATE TABLEGROUP `ecommerce_data` SHARDING = 'ADAPTIVE';

-- ユーザー行動テーブルを作成
CREATE TABLE `ecommerce_data$user_behavior` (
  `K` varbinary(1024) NOT NULL,    -- ユーザーID
  `Q` varbinary(256) NOT NULL,     -- 行動タイプのフィールド名
  `T` bigint(20) NOT NULL,         -- タイムスタンプ
  `V` varbinary(1024) DEFAULT NULL, -- 行動データ値
  PRIMARY KEY (`K`, `Q`, `T`)
) TABLEGROUP = `ecommerce_data`;

OBKV内のデータが以下のようであると仮定します。

obclient> SELECT * FROM ecommerce_data$user_behavior;
+----------+-----------------+----------------+-------------+
| K        | Q               | T              | V           |
+----------+-----------------+----------------+-------------+
| user_001 | avg_order_value | -1640995200000 | 172.03      |
| user_001 | last_login      | -1640995200000 | 2024-01-15  |
| user_001 | login_frequency | -1640995200000 | 25          |
| user_001 | total_amount    | -1640995200000 | 2580.5      |
| user_001 | total_orders    | -1640995200000 | 15          |
| user_001 | user_age        | -1640995200000 | 28          |
| user_001 | user_city       | -1640995200000 | 深圳        |
| user_001 | user_name       | -1640995200000 | 张三        |
| user_001 | user_phone      | -1640995200000 | 138****8001 |
| user_002 | avg_order_value | -1640995200000 | 150.0       |
| user_002 | last_login      | -1640995200000 | 2024-01-14  |
| user_002 | login_frequency | -1640995200000 | 18          |
| user_002 | total_amount    | -1640995200000 | 1200.0      |
| user_002 | total_orders    | -1640995200000 | 8           |
| user_002 | user_age        | -1640995200000 | 32          |
| user_002 | user_city       | -1640995200000 | 上海        |
| user_002 | user_name       | -1640995200000 | 李四        |
| user_002 | user_phone      | -1640995200000 | 138****8002 |
| user_003 | avg_order_value | -1640995200000 | 159.13      |
| user_003 | last_login      | -1640995200000 | 2024-01-16  |
| user_003 | login_frequency | -1640995200000 | 35          |
| user_003 | total_amount    | -1640995200000 | 3500.8      |
| user_003 | total_orders    | -1640995200000 | 22          |
| user_003 | user_age        | -1640995200000 | 25          |
| user_003 | user_city       | -1640995200000 | 北京        |
| user_003 | user_name       | -1640995200000 | 王五        |
| user_003 | user_phone      | -1640995200000 | 138****8003 |
| user_004 | avg_order_value | -1640995200000 | 150.02      |
| user_004 | last_login      | -1640995200000 | 2024-01-13  |
| user_004 | login_frequency | -1640995200000 | 22          |
| user_004 | total_amount    | -1640995200000 | 1800.25     |
| user_004 | total_orders    | -1640995200000 | 12          |
| user_004 | user_age        | -1640995200000 | 30          |
| user_004 | user_city       | -1640995200000 | 广州        |
| user_004 | user_name       | -1640995200000 | 赵六        |
| user_004 | user_phone      | -1640995200000 | 138****8004 |
| user_005 | avg_order_value | -1640995200000 | 122.26      |
| user_005 | last_login      | -1640995200000 | 2024-01-16  |
| user_005 | login_frequency | -1640995200000 | 28          |
| user_005 | total_amount    | -1640995200000 | 2200.75     |
| user_005 | total_orders    | -1640995200000 | 18          |
| user_005 | user_age        | -1640995200000 | 27          |
| user_005 | user_city       | -1640995200000 | 深圳        |
| user_005 | user_name       | -1640995200000 | 钱七        |
| user_005 | user_phone      | -1640995200000 | 138****8005 |
| user_006 | avg_order_value | -1640995200000 | 168.0       |
| user_006 | last_login      | -1640995200000 | 2024-01-15  |
| user_006 | login_frequency | -1640995200000 | 40          |
| user_006 | total_amount    | -1640995200000 | 4200.0      |
| user_006 | total_orders    | -1640995200000 | 25          |
| user_006 | user_age        | -1640995200000 | 35          |
| user_006 | user_city       | -1640995200000 | 杭州        |
| user_006 | user_name       | -1640995200000 | 孙八        |
| user_006 | user_phone      | -1640995200000 | 138****8006 |
| user_007 | avg_order_value | -1640995200000 | 175.03      |
| user_007 | last_login      | -1640995200000 | 2024-01-17  |
| user_007 | login_frequency | -1640995200000 | 32          |
| user_007 | total_amount    | -1640995200000 | 2800.5      |
| user_007 | total_orders    | -1640995200000 | 16          |
| user_007 | user_age        | -1640995200000 | 29          |
| user_007 | user_city       | -1640995200000 | 成都        |
| user_007 | user_name       | -1640995200000 | 周九        |
| user_007 | user_phone      | -1640995200000 | 138****8007 |
| user_008 | avg_order_value | -1640995200000 | 150.08      |
| user_008 | last_login      | -1640995200000 | 2024-01-14  |
| user_008 | login_frequency | -1640995200000 | 15          |
| user_008 | total_amount    | -1640995200000 | 1350.75     |
| user_008 | total_orders    | -1640995200000 | 9           |
| user_008 | user_age        | -1640995200000 | 26          |
| user_008 | user_city       | -1640995200000 | 西安        |
| user_008 | user_name       | -1640995200000 | 吴十        |
| user_008 | user_phone      | -1640995200000 | 138****8008 |
+----------+-----------------+----------------+-------------+
72 rows in set

OBKVテーブルにHive外部テーブルを作成します。

hive> CREATE EXTERNAL TABLE IF NOT EXISTS user_behavior_analysis(
    >   user_id string,           -- OBKVのKフィールドにマッピング
    >   user_name string,         -- Q='user_name' のV値にマッピング
    >   user_age string,          -- Q='user_age' のV値にマッピング
    >   user_city string,         -- Q='user_city' のV値にマッピング
    >   total_orders string,      -- Q='total_orders' のV値にマッピング
    >   total_amount string,      -- Q='total_amount' のV値にマッピング
    >   last_login string         -- Q='last_login' のV値にマッピング
    > )
    > STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
    > WITH SERDEPROPERTIES (
    >   "hbase.columns.mapping" = ":key,user_behavior:user_name,
    >                               user_behavior:user_age,
    >                               user_behavior:user_city,
    >                               user_behavior:total_orders,
    >                               user_behavior:total_amount,
    >                               user_behavior:last_login"
    > )
    > TBLPROPERTIES (
    >   "hbase.table.name" = "ecommerce_data",
    >   "hbase.mapred.output.outputtable" = "ecommerce_data"
    > );

Hive-SQLを使用して外部テーブルをクエリします。

-- 全ユーザーの基本情報を照会する
hive> SELECT user_id, user_name, user_age, user_city FROM user_behavior_analysis LIMIT 5;
OK
user_001        张三    28      深圳
user_002        李四    32      上海
user_003        王五    25      北京
user_004        赵六    30      广州
user_005        钱七    27      深圳
Time taken: 5.127 seconds, Fetched: 5 row(s)
-- 高価値ユーザー(ここでは消費額が2000を超えるユーザーを指す)の情報を照会する
hive> SELECT user_id, user_name, user_city, total_amount, total_orders FROM user_behavior_analysis WHERE CAST(total_amount AS DOUBLE) > 2000;
OK
user_001        张三    深圳    2580.5  15
user_003        王五    北京    3500.8  22
user_005        钱七    深圳    2200.75 18
user_006        孙八    杭州    4200.0  25
user_007        周九    成都    2800.5  16
Time taken: 5.194 seconds, Fetched: 5 row(s)
-- 各都市のユーザー消費状況を照会する
hive> SELECT user_city, COUNT(*) as user_count, ROUND(AVG(CAST(total_amount AS DOUBLE)), 2) as avg_spending FROM user_behavior_analysis GROUP BY user_city ORDER BY avg_spending DESC;
OK
杭州    1       4200.0
北京    1       3500.8
成都    1       2800.5
深圳    2       2390.63
广州    1       1800.25
西安    1       1350.75
上海    1       1200.0
Time taken: 11.499 seconds, Fetched: 7 row(s)
-- 新規ユーザーデータを挿入する
hive> INSERT INTO user_behavior_analysis VALUES
    > ('user_011', '赵小明', '26', '南京', '3', '450.0', '2024-01-23');
OK
Time taken: 8.714 seconds
hive> SELECT * FROM user_behavior_analysis WHERE user_id = 'user_011';
OK
user_011        赵小明  26      南京    3       450.0   2024-01-23
Time taken: 5.294 seconds, Fetched: 1 row(s)

-- OBKVから照会する
obclient> SELECT * FROM ecommerce_data$user_behavior WHERE K = 'user_011';
+----------+--------------+----------------+------------+
| K        | Q            | T              | V          |
+----------+--------------+----------------+------------+
| user_011 | last_login   | -1750072416837 | 2024-01-23 |
| user_011 | total_amount | -1750072416837 | 450.0      |
| user_011 | total_orders | -1750072416837 | 3          |
| user_011 | user_age     | -1750072416837 | 26         |
| user_011 | user_city    | -1750072416837 | 南京       |
| user_011 | user_name    | -1750072416837 | 赵小明     |
+----------+--------------+----------------+------------+
6 rows in set
-- ユーザー王五の情報を照会する
hive> SELECT * FROM user_behavior_analysis WHERE  user_name = '王五';
OK
user_003        王五    25      北京    22      3500.8  2024-01-16
Time taken: 5.259 seconds, Fetched: 1 row(s)

-- ユーザー王五の情報を更新する
hive> INSERT INTO user_behavior_analysis
    > SELECT
    >   user_id,
    >   user_name,
    >   user_age,
    >   user_city,
    >   CASE
    >     WHEN user_id = 'user_003' THEN '25'  -- 王五は3件の注文を追加
    >     ELSE total_orders
    >   END as total_orders,
    >   CASE
    >     WHEN user_id = 'user_003' THEN '4200.0'  -- 総消費額が3500.8から4200.0に増加
    >     ELSE total_amount
    >   END as total_amount,
    >   CASE
    >     WHEN user_id = 'user_003' THEN '2024-01-25'  -- 最終ログイン日を更新
    >     ELSE last_login
    >   END as last_login
    > FROM user_behavior_analysis;
hive> SELECT * FROM user_behavior_analysis WHERE  user_name = '王五';
OK
user_003        王五    25      北京    25      4200.0  2024-01-25
Time taken: 5.172 seconds, Fetched: 1 row(s)

前のトピック

ネイティブFlinkによるOBKV-HBaseへのアクセス
前へ

次のトピック

SparkによるOBKV-HBaseへのアクセス
次へ
このページの内容
前提条件
テーブルの作成
OBKV-HBaseクライアント接続パラメータの設定
直接接続モードの設定
クラウドモードの設定
その他のパラメータ
使用例
依存関係の追加
Hiveの読み書き例