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 данные.
-
Создайте базу данных и таблицу в 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"
); -
Используйте 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 -
Запросите данные из
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)