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

bitmap_to_base64

bitmap_to_base64

概要

ビットマップをBase64エンコードされた文字列に変換します。この関数はv2.5からサポートされています。

構文

VARCHAR bitmap_to_base64(BITMAP bitmap)

パラメータ

bitmap: 変換するビットマップです。このパラメータは必須です。入力値が無効な場合、エラーが返されます。

戻り値

VARCHAR型の値を返します。

例1: 他のビットマップ関数とともにこの関数を使用します。

select bitmap_to_base64(bitmap_from_string("0, 1, 2, 3"));
+----------------------------------------------------+
| bitmap_to_base64(bitmap_from_string('0, 1, 2, 3')) |
+----------------------------------------------------+
| AjowAAABAAAAAAADABAAAAAAAAEAAgADAA== |
+----------------------------------------------------+
1 row in set (0.00 sec)


select bitmap_to_base64(to_bitmap(1));
+--------------------------------+
| bitmap_to_base64(to_bitmap(1)) |
+--------------------------------+
| AQEAAAA= |
+--------------------------------+
1 row in set (0.00 sec)


select bitmap_to_base64(bitmap_empty());
+----------------------------------+
| bitmap_to_base64(bitmap_empty()) |
+----------------------------------+
| AA== |
+----------------------------------+
1 row in set (0.00 sec)

例2: BITMAP列内の各値をBase64エンコードされた文字列に変換します。

  1. page_idvisit_dateAGGREGATE KEYとする集計テーブルpage_uvを作成します。このテーブルには、集計される必要があるBITMAP列visit_usersが含まれています。

        CREATE TABLE `page_uv`
    (`page_id` INT NOT NULL,
    `visit_date` datetime NOT NULL,
    `visit_users` BITMAP BITMAP_UNION NOT NULL
    ) ENGINE=OLAP
    AGGREGATE KEY(`page_id`, `visit_date`)
    DISTRIBUTED BY HASH(`page_id`)
    PROPERTIES (
    "replication_num" = "3",
    "storage_format" = "DEFAULT"
    );
  2. このテーブルにデータを挿入します。

      insert into page_uv values
    (1, '2020-06-23 01:30:30', to_bitmap(13)),
    (1, '2020-06-23 01:30:30', to_bitmap(23)),
    (1, '2020-06-23 01:30:30', to_bitmap(33)),
    (1, '2020-06-23 02:30:30', to_bitmap(13)),
    (2, '2020-06-23 01:30:30', to_bitmap(23));

    select * from page_uv order by page_id;
    +---------+---------------------+-------------+
    | page_id | visit_date | visit_users |
    +---------+---------------------+-------------+
    | 1 | 2020-06-23 01:30:30 | NULL |
    | 1 | 2020-06-23 02:30:30 | NULL |
    | 2 | 2020-06-23 01:30:30 | NULL |
    +---------+---------------------+-------------+
  3. visit_users列内の各値をBase64エンコードされた文字列に変換します。

      select page_id, bitmap_to_base64(visit_users) from page_uv;
    +---------+------------------------------------------+
    | page_id | bitmap_to_base64(visit_users) |
    +---------+------------------------------------------+
    | 1 | CgMAAAANAAAAAAAAABcAAAAAAAAAIQAAAAAAAAA= |
    | 1 | AQ0AAAA= |
    | 2 | ARcAAAA= |
    +---------+------------------------------------------+