ビットマップ関数とは、OceanBaseデータベースシステムが提供する、効率的に圧縮されたビットマップデータを処理するための一連の関数です。これらの関数により、ユーザーはデータベースレベルで複雑なビットマップクエリや分析を実行できるようになり、ユーザー行動分析、ユーザープロファイリング、ターゲット層の選定などのアプリケーションがビットマップデータを効率的に保存、検索、操作できるようになります。
以下は、OceanBaseのビットマップ関数の種類とその用途の概要です:
ビットマップ関数の種類
| ビットマップ関数タイプ | 説明 |
|---|---|
| ビットマップコンストラクタ | 新しいビットマップデータ型を構築するための関数です。 |
| ビットマップカーディナリティ計算関数 | ビットマップデータの基数を計算するための関数です。 |
| ビットマップ演算関数 | 交差、和集合、排他的論理和、非など、ビットマップデータ間の基本的な演算を提供する関数です。 |
| ビットマップ判断関数 | 入力されたビットマップデータに対して一定の判断を行い、ブール値を返す関数です。 |
| ビットマップ出力関数 | ビットマップデータの出力形式を選択するための関数であり、例えば文字列としてビットマップデータの各要素を順番に出力し、それぞれをカンマで区切る場合などが挙げられます。 |
| ビットマップ集約関数 | 数値型をビットマップ型、すなわちビットマップデータ間の集約演算に集約するための関数を提供します。 |
ビットマップ関数の概要
OceanBaseデータベースが現在サポートしているすべてのビットマップ関数は以下のとおりです:
| 関数タイプ | 関数名 | 説明 |
|---|---|---|
| ビットマップコンストラクタ | rb_build_empty | 空のビットマップデータを構築するために使用されます。 |
| ビットマップコンストラクタ | rb_build_empty | 空のビットマップデータを構築するために使用されます。 |
| ビットマップコンストラクタ | rb_build_varbinary | varbinaryを使用してビットマップデータを構築します。 |
| ビットマップコンストラクタ | rb_from_string | 特定の形式の文字列を使用してビットマップデータを構築します。 |
| ビットマップコンストラクタ | rb_select | 指定された条件に基づいて、ビットマップデータ値から局所範囲を選択し、新しいビットマップデータとして保存してその値を返します。 |
| ビットマップ基数計算関数 | rb_cardinality | ビットマップデータの基数を計算するために使用されます。 |
| ビットマップ基数計算関数 | rb_and_cardinality および rb_and_null2empty_cardinality | 2つのビットマップデータの論理積を計算した後の新しいビットマップデータの基数を返します。 |
| ビットマップ基数計算関数 | rb_or_cardinality および rb_or_null2empty_cardinality | 2つのビットマップデータの論理和を計算した後の新しいビットマップデータの基数を返します。 |
| ビットマップ基数計算関数 | rb_xor_cardinality | 2つのビットマップデータの排他的論理和を計算した後の新しいビットマップデータの基数を返します。 |
| ビットマップ基数計算関数 | rb_andnot_cardinality および rb_andnot_null2empty_cardinality | 2つのビットマップデータの論理積を計算した後の新しいビットマップデータの基数を返します。 |
| ビットマップ基数計算関数 | rb_or_cardinality_agg | ビットマップ列の和集合の基数を計算します。 |
| ビットマップ基数計算関数 | rb_and_cardinality_agg | ビットマップ列の共通部分の基数を計算します。 |
| ビットマップ演算関数 | rb_and および rb_and_null2empty | 2つのビットマップデータの共通部分を計算します。 |
| ビットマップ演算関数 | rb_or および rb_or_null2empty | 2つのビットマップデータの和集合を計算します。 |
| ビットマップ演算関数 | rb_xor | 2つのビットマップデータの排他的論理和を提供します。 |
| ビットマップ演算関数 | rb_andnot および rb_andnot_null2empty | 2つのビットマップデータの論理積を提供します。 |
| ビットマップ判断関数 | rb_is_empty | 入力されたビットマップデータが空であるかどうかを判断します。 |
| ビットマップ判断関数 | rb_contains | 2つの使い方:
|
| ビットマップ出力関数 | rb_to_varbinary | ビットマップデータをvarbinary形式で出力するために使用されます。 |
| ビットマップ出力関数 | rb_to_string | 文字列形式でビットマップデータの各要素を順番に出力し、カンマで区切ります。 |
| ビットマップ出力関数 | rb_to_array | ビットマップデータを配列形式で出力します。 |
| ビットマップ集約関数 | rb_build_agg | 数値列をビットマップデータに集約します。 |
| ビットマップ集約関数 | rb_or_agg | ビットマップ列の複数行データに対して論理和を計算し、ビットマップデータに集約します。 |
| ビットマップ集約関数 | rb_and_agg | ビットマップ列の複数行データに対して論理積を計算し、ビットマップデータに集約します。 |