メインコンテンツまでスキップ

base64_to_bitmap

base64_to_bitmap

Description

StarRocksにビットマップデータをインポートする前に、データをシリアライズしてBase64文字列としてエンコードする必要があります。StarRocksにBase64文字列をインポートする際には、文字列をビットマップデータに変換する必要があります。 この関数は、Base64文字列をビットマップデータに変換するために使用されます。

この関数はv2.3からサポートされています。

構文

BITMAP base64_to_bitmap(VARCHAR bitmap)

パラメータ

bitmap: サポートされるデータ型はVARCHARです。StarRocksにビットマップデータをロードする前に、JavaやC++を使用してBitmapValueオブジェクトを作成し、要素を追加し、データをシリアライズし、Base64文字列としてエンコードすることができます。その後、この関数の入力パラメータとしてBase64文字列を渡します。

戻り値

BITMAP型の値を返します。

bitmapdbという名前のデータベースとbitmapという名前のテーブルを作成し、Stream Loadを使用してJSONデータをbitmap_tableにインポートします。このプロセスでは、base64_to_bitmapを使用して、JSONファイル内のBase64文字列をビットマップデータに変換します。

  1. StarRocksでデータベースとテーブルを作成します。この例では、プライマリキーテーブルが作成されます。

    CREATE database bitmapdb;
    USE bitmapdb;
    CREATE TABLE `bitmap_table` (
    `tagname` varchar(65533) NOT NULL COMMENT "Tag name",
    `tagvalue` varchar(65533) NOT NULL COMMENT "Tag value",
    `userid` bitmap NOT NULL COMMENT "User ID"
    ) ENGINE=OLAP
    PRIMARY KEY(`tagname`, `tagvalue`)
    COMMENT "OLAP"
    DISTRIBUTED BY HASH(`tagname`)
    PROPERTIES (
    "replication_num" = "3",
    "storage_format" = "DEFAULT"
    );
  2. Stream Loadを使用して、JSONデータをbitmap_tableにインポートします。simpledataという名前のJSONファイルがあると仮定します。このファイルには以下の内容があり、useridはBase64でエンコードされた文字列です。

    {
    "tagname": "Product", "tagvalue": "Insurance", "userid":"AjowAAABAAAAAAACABAAAAABAAIAAwA="
    }

    base64_to_bitmapを使用してuseridをビットマップ値に変換します。

    curl --location-trusted -u <username>:<password>\
    -H "columns: c1,c2,c3,tagname=c1,tagvalue=c2,userid=base64_to_bitmap(c3)"\
    -H "label:bitmap123"\
    -H "format: json"\
    -H "jsonpaths: [\"$.tagname\",\"$.tagvalue\",\"$.userid\"]"\
    -T simpleData http://host:port/api/bitmapdb/bitmap_table/_stream_load
  3. bitmap_tableからデータをクエリします。

    mysql> select tagname,tagvalue,bitmap_to_string(userid) from bitmap_table;
    +--------------+----------+----------------------------+
    | tagname | tagvalue | bitmap_to_string(`userid`) |
    +--------------+----------+----------------------------+
    | Product | Insurance | 1,2,3 |
    +--------------+----------+----------------------------+
    1 rows in set (0.01 sec)