Skip to content

Latest commit

 

History

History
858 lines (603 loc) · 20 KB

File metadata and controls

858 lines (603 loc) · 20 KB
title layout
カタログ
ja

{% comment %} ############################################## THIS FILE IS AUTOMATICALLY GENERATED FROM "_po/ja/reference/1.1.2/catalog/version2/index.po" DO NOT EDIT THIS FILE MANUALLY! ############################################## {% endcomment %}

  • TOC {:toc}

概要 {#abstract}

CatalogはDroongaクラスタの設定を管理するためのJSONデータです。Droongaクラスタは1つ以上のdatasetsからなり、datasetはその他の部分からなります。それらは全てcatalogに記述し、クラスタ内の全てホストで共有しなければなりません。

使い方 {#usage}

この versioncatalog は Droonga 1.0.0 以降で有効です。

書式 {#syntax}

{
  "version": <Version number>,
  "effectiveDate": "<Effective date>",
  "datasets": {
    "<Name of the dataset 1>": {
      "nWorkers": <Number of workers>,
      "plugins": [
        "Name of the plugin 1",
        ...
      ],
      "schema": {
        "<Name of the table 1>": {
          "type"             : <"Array", "Hash", "PatriciaTrie" or "DoubleArrayTrie">
          "keyType"          : "<Type of the primary key>",
          "tokenizer"        : "<Tokenizer>",
          "normalizer"       : "<Normalizer>",
          "columns" : {
            "<Name of the column 1>": {
              "type"         : <"Scalar", "Vector" or "Index">,
              "valueType"    : "<Type of the value>",
              "vectorOptions": {
                "weight"     : <Weight>,
              },
              "indexOptions" : {
                "section"    : <Section>,
                "weight"     : <Weight>,
                "position"   : <Position>,
                "sources"    : [
                  "<Name of a column to be indexed>",
                  ...
                ]
              }
            },
            "<Name of the column 2>": { ... },
            ...
          }
        },
        "<Name of the table 2>": { ... },
        ...
      },
      "fact": "<Name of the fact table>",
      "replicas": [
        {
          "dimension": "<Name of the dimension column>",
          "slicer": "<Name of the slicer function>",
          "slices": [
            {
              "label": "<Label of the slice>",
              "volume": {
                "address": "<Address string of the volume>"
              }
            },
            ...
          }
        },
        ...
      ]
    },
    "<Name of the dataset 2>": { ... },
    ...
  }
}

詳細 {#details}

Catalog 定義 {#catalog}

値 : 以下のキーと値のペアを持つオブジェクト。

パラメータ

version {#parameter-version}

概要 : カタログファイルのバージョン番号。

値 : 2. (このページに記述されている仕様はこの値が2のときのみ有効です)

既定値 : なし。これは必須のパラメータです。

継承可能性 : 不可。

effectiveDate {#parameter-effective_date}

概要 : このカタログが有効になる時刻。

値 : W3C-DTF でフォーマットされたタイムゾーン付きの時刻。

既定値 : なし。これは必須のパラメータです。

継承可能性 : 不可。

datasets {#parameter-datasets}

概要 : データセットの定義。

: データセット名をキーとし、dataset 定義 を値とするオブジェクト。

既定値 : なし。これは必須のパラメータです。

継承可能性 : 不可。

nWorkers {#parameter-n_workers}

概要 : データベースインスタンス毎にspawnされるワーカの数。

値 : 整数。

既定値 : 0 (ワーカー無し。全ての処理がマスタープロセス内で行われます)

継承可能性 : 可。datasetvolumeの定義でオーバライドできます。

A version 2 catalog effective after 2013-09-01T00:00:00Z, with no datasets:

{
  "version": 2,
  "effectiveDate": "2013-09-01T00:00:00Z",
  "datasets": {
  }
}

Dataset 定義 {#dataset}

値 : 以下のキーと値のペアを持つオブジェクト。

パラメータ

plugins {#parameter-plugins}

概要 : このデータセットにおいて有効にするプラグイン名文字列の配列。

値 : 文字列の配列。

既定値 : なし。これは必須のパラメータです。

継承可能性 : 可。datasetvolumeの定義でオーバライドできます。

schema {#parameter-schema}

概要 : テーブルとそのカラムの定義。

値 : テーブル名をキーとし、table 定義を値とするオブジェクト。

既定値 : なし。これは必須のパラメータです。

継承可能性 : 可。datasetvolumeの定義でオーバライドできます。

fact {#parameter-fact}

概要 : fact テーブルの名前。datasetが複数のsliceに格納される場合、schemaパラメータで定義されたテーブルの中から、1つfact tableを選択する必要があります。

値 : 文字列。

既定値 : なし。

継承可能性 : 可。datasetvolumeの定義でオーバライドできます。

replicas {#parameter-replicas}

概要 : 互いに複製されるボリュームの集合。

値 : volume 定義の配列。

既定値 : なし。これは必須のパラメータです。

継承可能性 : 不可。

データベースインスタンスに1つにつき4ワーカーを持ち、プラグインgroongacrudsearchを使用するデータセット:

{
  "nWorkers": 4,
  "plugins": ["groonga", "crud", "search"],
  "schema": {
  },
  "replicas": [
  ]
}

Table 定義 {#table}

値 : 以下のキーと値のペアを持つオブジェクト。

パラメータ

type {#parameter-table-type}

概要 : テーブルのキーを管理するためのデータ構造を指定する。

値 : 以下のうちいずれかの値。

  • "Array": キーの無いテーブル
  • "Hash": ハッシュテーブル
  • "PatriciaTrie": パトリシアトライテーブル
  • "DoubleArrayTrie": ダブル配列トライテーブル

既定値 : "Hash"

継承可能性 : 不可。

keyType {#parameter-keyType}

概要 : テーブルにおけるキーのデータ型。type"Array"の場合は指定してはいけません。

値 : 以下のデータ型のうちのいずれか。

  • "Integer" : 64bit 符号付き整数。
  • "Float" : 64bit 浮動小数点数。
  • "Time" : マイクロ秒精度の時刻。
  • "ShortText" : 4095バイトまでの文字列。
  • "TokyoGeoPoint" : 旧日本測地系による経緯度。
  • "WGS84GeoPoint" : WGS84 による経緯度。

既定値 : なし。キーを持つテーブルでは指定が必須です。

継承可能性 : 不可。

tokenizer {#parameter-tokenizer}

概要 : 語彙表として使われるテーブルにおける、文字列型の値を分割するために使うトークナイザーの種類を指定します。keyType"ShortText"である場合にのみ有効です。

値 : 以下のトークナイザー名のうちのいずれか。

  • "TokenDelimit"
  • "TokenUnigram"
  • "TokenBigram"
  • "TokenTrigram"
  • "TokenBigramSplitSymbol"
  • "TokenBigramSplitSymbolAlpha"
  • "TokenBigramSplitSymbolAlphaDigit"
  • "TokenBigramIgnoreBlank"
  • "TokenBigramIgnoreBlankSplitSymbol"
  • "TokenBigramIgnoreBlankSplitSymbolAlpha"
  • "TokenBigramIgnoreBlankSplitSymbolAlphaDigit"
  • "TokenDelimitNull"

既定値 : なし。

継承可能性 : 不可。

normalizer {#parameter-normalizer}

概要 : キーの値を正規化・制限するノーマライザーの種類を指定します。keyType"ShortText"である場合にのみ有効です。

値 : 以下のノーマライザー名のうちのいずれか。

  • "NormalizerAuto"
  • "NormalizerNFKC51"

既定値 : なし。

継承可能性 : 不可。

columns {#parameter-columns}

概要 : テーブルのカラムの定義。

Value : An object keyed by the name of the column with value the column definition.

既定値 : なし。

継承可能性 : 不可。

例1: Hashテーブル

ShortText型のキーを持つHashテーブルで、カラムは無いもの:

{
  "type": "Hash",
  "keyType": "ShortText",
  "columns": {
  }
}
例2: PatriciaTrieテーブル

TokenBigramトークナイザとNormalizerAutoノーマライザを利用するPatriciaTrieテーブル

{
  "type": "PatriciaTrie",
  "keyType": "ShortText",
  "tokenizer": "TokenBigram",
  "normalizer": "NormalizerAuto",
  "columns": {
  }
}

Column 定義 {#column}

: An object with the following key/value pairs.

パラメータ

type {#parameter-column-type}

Abstract : Specifies the quantity of data stored as each column value.

Value : Any of the followings.

  • "Scalar": A single value.
  • "Vector": A list of values.
  • "Index" : A set of unique values with additional properties respectively. Properties can be specified in indexOptions.

Default value : "Scalar"

継承可能性 : 不可。

valueType {#parameter-valueType}

Abstract : Data type of the column value.

Value : Any of the following data types or the name of another table defined in the same dataset. When a table name is assigned, the column acts as a foreign key references the table.

  • "Bool" : true or false.
  • "Integer" : 64bit signed integer.
  • "Float" : 64bit floating-point number.
  • "Time" : Time value with microseconds resolution.
  • "ShortText" : Text value up to 4,095 bytes length.
  • "Text" : Text value up to 2,147,483,647 bytes length.
  • "TokyoGeoPoint" : Tokyo Datum based geometric point value.
  • "WGS84GeoPoint" : WGS84 based geometric point value.

既定値 : なし。これは必須のパラメータです。

継承可能性 : 不可。

vectorOptions {#parameter-vectorOptions}

概要 : データベースインスタンスの場所を指定します。

Value : An object which is a vectorOptions definition

Default value : {} (Void object).

継承可能性 : 不可。

indexOptions {#parameter-indexOptions}

概要 : データベースインスタンスの場所を指定します。

Value : An object which is an indexOptions definition

Default value : {} (Void object).

継承可能性 : 不可。

例1: スカラー型カラム

ShortTextを格納するスカラー型のカラム:

{
  "type": "Scalar",
  "valueType": "ShortText"
}
例2: ベクター型カラム

A vector column to store ShortText values with weight:

{
  "type": "Scalar",
  "valueType": "ShortText",
  "vectorOptions": {
    "weight": true
  }
}
例3: インデックスカラム

Storeテーブルのaddressカラムをインデックスするカラム:

{
  "type": "Index",
  "valueType": "Store",
  "indexOptions": {
    "sources": [
      "address"
    ]
  }
}

vectorOptions 定義 {#vectorOptions}

値 : 以下のキーと値のペアを持つオブジェクト。

パラメータ

weight {#parameter-vectorOptions-weight}

Abstract : Specifies whether the vector column stores the weight data or not. Weight data is used for indicating the importance of the value.

Value : A boolean value (true or false).

Default value : false.

継承可能性 : 不可。

Store the weight data.

{
  "weight": true
}

indexOptions 定義 {#indexOptions}

値 : 以下のキーと値のペアを持つオブジェクト。

パラメータ

section {#parameter-indexOptions-section}

Abstract : Specifies whether the index column stores the section data or not. Section data is typically used for distinguishing in which part of the sources the value appears.

Value : A boolean value (true or false).

Default value : false.

継承可能性 : 不可。

weight {#parameter-indexOptions-weight}

Abstract : Specifies whether the index column stores the weight data or not. Weight data is used for indicating the importance of the value in the sources.

Value : A boolean value (true or false).

Default value : false.

継承可能性 : 不可。

position {#parameter-indexOptions-position}

Abstract : Specifies whether the index column stores the position data or not. Position data is used for specifying the position where the value appears in the sources. It is indispensable for fast and accurate phrase-search.

Value : A boolean value (true or false).

Default value : false.

継承可能性 : 不可。

sources {#parameter-indexOptions-sources}

Abstract : Makes the column an inverted index of the referencing table's columns.

Value : An array of column names of the referencing table assigned as valueType.

既定値 : なし。

継承可能性 : 不可。

Store the section data, the weight data and the position data. Index name and address on the referencing table.

{
  "section": true,
  "weight": true,
  "position": true
  "sources": [
    "name",
    "address"
  ]
}

Volume 定義 {#volume}

概要 : データセットを構成する単位。データセットは1つ、もしくは複数のボリュームからなります。ボリュームは単一のデータベースインスタンスか、slices の集合で構成されます。ボリュームが単一のデータベースインスタンスから構成される場合は、addressパラメータを指定しなければなりません。このとき、それ以外のパラメータを指定してはいけません。そうでない場合は、dimensionslicerslicesが必須で、他は指定してはいけません。

値 : 以下のキーと値のペアを持つオブジェクト。

パラメータ

address {#parameter-address}

概要 : データベースインスタンスの場所を指定します。

値 : 以下の書式の文字列。

  ${host_name}:${port_number}/${tag}.${name}
  • host_name: データベースのインスタンスを保持するホストの名前。
  • port_number: データベースのインスタンスのためのポート番号。
  • tag: データベースのインスタンスのタグ名。タグ名には.を含めることはできません。ホスト名とポート番号のペアごとに、複数のタグを使うことができます。
  • name: データベースのインスタンスの名前。あるホスト名・ポート番号・タグ名の3つの組み合わせごとに、複数のインスタンス名を使うことができます。

既定値 : なし。

継承可能性 : 不可。

dimension {#parameter-dimension}

概要 : fact表の中でレコードをスライスする次元を指定します。fact表の'_key'またはcolumnsからスカラー型のカラムを選択します。dimensionを参照してください。

値 : 文字列。

既定値 : "_key"

継承可能性 : 可。datasetvolumeの定義でオーバライドできます。

slicer {#parameter-slicer}

概要 : dimensionカラムをsliceする関数。

値 : スライサー関数の名前。

既定値 : "hash"

継承可能性 : 可。datasetvolumeの定義でオーバライドできます。

slicesの集合からなるボリュームを定義するためには、レコードを複数のスライスに振り分けるための方法を決める必要があります。

sliceで指定されたスライサー関数と、スライサー関数への入力として与えられるdimensionで指定されたカラム(またはキー)によって、それが決まります。

スライサーは以下の3種類に分けられます:

比例尺度 : 比例尺度スライサーは、個々のデータを指定された比率で、_keyのハッシュ値などに基づいて振り分けます。 この種類のスライサー:

  • hash

順序尺度 : 順序尺度スライサーは、個々のデータを順序のある値(時間、整数、{High, Middle, Low}など)に基づいて振り分けます。 この種類のスライサー:

  • (未実装)

名義尺度 : 名義尺度スライサーは、個々のデータをカテゴリを示す名義(国名、郵便番号、色など)で振り分けます。 この種類のスライサー:

  • (未実装)
slices {#parameter-slices}

概要 : データを格納するスライスの定義。

値 : slice 定義の配列。

既定値 : なし。

継承可能性 : 不可。

例1: 単一のインスタンス

"localhost:24224/volume.000"にあるボリューム:

{
  "address": "localhost:24224/volume.000"
}
Example 2: 複数のスライス

3つのスライスから構成され、_keyに対してratio-scaledなスライサー関数hashを適用してレコードを分散させるボリューム

{
  "dimension": "_key",
  "slicer": "hash",
  "slices": [
    {
      "volume": {
        "address": "localhost:24224/volume.000"
      }
    },
    {
      "volume": {
        "address": "localhost:24224/volume.001"
      }
    },
    {
      "volume": {
        "address": "localhost:24224/volume.002"
      }
    }
  ]

Slice 定義 {#slice}

概要 : スライスの定義。スライスされたデータの範囲と、それを保存するボリュームを指定する。

値 : 以下のキーと値のペアを持つオブジェクト。

パラメータ

weight {#parameter-slice-weight}

概要 : スライス内での割り当て量を指定します。slicerが atio-scaledの場合のみ有効。

値 : 数値。

既定値 : 1

継承可能性 : 不可。

label {#parameter-label}

概要 : slicer が返す具体的な値。 slicerがnominal-scaledの場合のみ有効。

Value : A value of the dimension column data type. When the value is not provided, this slice is regarded as else; matched only if all other labels are not matched. Therefore, only one slice without label is allowed in slices.

既定値 : なし。

継承可能性 : 不可。

boundary {#parameter-boundary}

概要 : slicerの返す値と比較可能な具体的な値。slicerがordinal-scaledの場合のみ有効。

Value : A value of the dimension column data type. When the value is not provided, this slice is regarded as else; this means the slice is open-ended. Therefore, only one slice without boundary is allowed in a slices.

既定値 : なし。

継承可能性 : 不可。

volume {#parameter-volume}

概要 : スライスに対応するデータを格納するボリューム。

: volume 定義オブジェクト

既定値 : なし。

継承可能性 : 不可。

例1: Ratio-scaled

ratio-scaledなスライサーのためのスライス、重みは1

{
  "weight": 1,
  "volume": {
  }
}
例2: Nominal-scaled

nominal-scaledなスライサーのためのスライス、ラベルは "1"

{
  "label": "1",
  "volume": {
  }
}
例3: Ordinal-scaled

ordinal-scaledなスライサーに対するスライス、境界値は100:

{
  "boundary": 100,
  "volume": {
  }
}

実際の例

基本的な使い方のチュートリアルに登場するカタログを参照してください。