Перейти к основному содержимому

base64_to_bitmap

Описание

Перед импортом bitmap данных в Selena необходимо сериализовать данные и закодировать их как строку Base64. При импорте строки Base64 в Selena нужно преобразовать строку в bitmap данные. Эта функция используется для преобразования строк Base64 в bitmap данные.

Эта функция поддерживается начиная с версии 1.5.0.

Синтаксис

BITMAP base64_to_bitmap(VARCHAR bitmap)

Параметры

bitmap: Поддерживаемый тип данных — VARCHAR. Перед загрузкой Bitmap данных в Selena можно использовать Java или C++ для создания объекта BitmapValue, добавления элемента, сериализации данных и кодирования данных как строки Base64. Затем передайте строку Base64 в качестве входного параметра в эту функцию.

Возвращаемое значение

Возвращает значение типа BITMAP.

Примеры

Создайте базу данных с именем bitmapdb и таблицу с именем bitmap. Используйте Stream Load для импорта JSON данных в bitmap_table. В процессе используйте base64_to_bitmap для преобразования строки Base64 в JSON файле в bitmap данные.

  1. Создайте базу данных и таблицу в Selena. В этом примере создается таблица с первичным ключом.

    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.

    Предположим, есть JSON файл с именем simpledata. Этот файл содержит следующее содержимое, где userid является строкой, закодированной в Base64.

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

    Используйте base64_to_bitmap для преобразования userid в bitmap значение.

    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)