検索
Start typing to search...

データベース用のコレクション

Author:

コレクション

コレクションはFlowエディターにおける特別なデータ型で、オレンジ色のピンで表示されます。コレクションは任意の数の名前付き値と階層構造を格納できます。値は名前で参照され、コレクションはこれらの名前をキーとして参照します。

値はスカラー、整数、論理値、色、ベクター、変換、テキストのいずれかであり、サブコレクションを含むこともできます。サブコレクションを使用すると、階層的なデータ構造を実現できます。

コレクションは、SQL、XML、JSONなどの異なる外部データ構造間で共通のデータ構造として機能します。

コレクションを取得

Collection ... またはSubcollection モジュールは、コレクションから値を取得できます:

これらのモジュールは、関連するKeyを参照して値を取得します。

この例で入力コレクションをプレビューすると、a = 10が表示されます。これは、値 10a という名前で格納されていることを意味します。この値 10 は、Collection Scalar モジュールでキーを a に設定することで取得されます。

NOTE: コレクション内の値には宣言されたデータ型はありません。値を取得する際、モジュールは値をモジュールのデータ型に変換しようとします。

 

コレクションの設定

コレクションは Pin Values パネルで編集できません。ただし、コレクションを編集または作成する他の2つの方法があります。

1つ目は、出力形式としてコレクションを提供する特殊なモジュールを使用する方法です。例えば、SQLデータベースから行を読み込むモジュールや、XMLまたはJSONファイルをインポートするモジュールなどです。これらのモジュールは、このページの後半で説明されます。

2つ目は、Set Collection ... またはSet Subcollection モジュールを使用する方法です:

コレクションに値を追加するには、Set Collection モジュールでキーを指定する必要があります。この Key Value と関連付けられます。

Set Collection Scalar の出力を確認すると、キーが値 10 (a = 10) と関連付けられていることがわかります:

新しいキーは一意でなければなりません。そうでない場合、同じ名前のキーの値が上書きされます。

連続したSet Collection モジュールを使用すると、任意の数の値とデータ型を持つコレクションを作成できます:

コレクションは、複合体が互いに複雑なデータを転送する必要がある複雑なプロジェクトで特に有用です。

 

サブコレクション

サブコレクションは、コレクション内のコレクションのようなものです。サブコレクションを使用すると、データの階層構造を作成できます。階層は任意のレベルの深さを持つことができ、サブコレクションは自身の中にサブコレクションを含むことができます。


コレクションにサブコレクションを追加するには、Set Subcollection モジュールを使用し、Key にはサブコレクションの名前を指定します。

この場合、Fruits がサブコレクションのキーであり、このサブコレクションにはAppleとBananaのコレクションデータが含まれます。コレクションを閲覧する際、サブコレクションのキーは表示されず、サブコレクションのキーの後に<sub>と表示されます:

サブコレクションのデータを取得するには、Subcollection モジュールを使用します。Subcollection モジュールでは、Key はサブコレクションのキーを指し、この場合は Fruits です:

Set Subcollection モジュール後に、Collection ... モジュールを使用して、そのサブコレクション内の任意のキーを取得できます

サブコレクション内のデータにアクセスする別の方法は、キーの前にサブコレクションの名前をスラッシュ ( / ) で区切って指定することです。この例では、Fruits/AppleKeyとして使用しています。ここで「Fruits」はサブコレクションのキーであり、「Apple」はサブコレクション内の値の1つのキーです:

コンパウンド構造を編集や変更しやすくするため、サブコレクションに直接スラッシュでアクセスする代わりに、サブコレクション モジュールを使用することをおすすめします。

キーが存在しない場合

Collection ... または Subcollection モジュールを使用する際、存在しないキーを参照する可能性があります。この場合、Exists 出力ピンがオフになります:

キーが欠落している場合、Out 出力ピンは空または0になります。

注意:Exists出力ピンが表示されない場合は、モジュールのアイコン をクリックしてください。

 

JSON

JSONデータは、JSON File モジュールを使用してファイルから読み込むか、AximmetryのテキストエディターとJSON Textモジュールを使用して読み込むことができます。これらのモジュールは、JSONデータ構造を自動的にAximmetryのコレクションデータ構造に変換します。

外部ファイルをJSON Fileのようなモジュールで読み込んだ場合、Aximmetryはファイルが変更されたことを自動的に検出し、再読み込みを行います。

例えば、次のようなJSONを読み込んだ場合:

{

「Egg」: 6,

「Flour」: 1,

「Fruits」:

{

『Apple』: 4,

「Banana」: 2

}

}

JSONは次のようなコレクションに変換されます:

JSONファイルにエラー(例:カンマの欠落)がある場合、ログにエラーメッセージが表示され、カンマの欠落に関するメッセージが表示されます:

この場合、JSONモジュール自体は空のコレクションを返します。

コレクションは、JSON Exporter モジュールを使用して JSON ファイルにエクスポートできます。

XML

XML データは、XML File モジュールを使用してファイルから読み込むか、Aximmetry のテキストエディターとXML Text モジュールを使用して読み込むことができます。これらのモジュールは、XML データ構造を自動的に Aximmetry のコレクションデータ構造に変換します。

外部ファイルをXML File のようなモジュールで読み込んだ場合、Aximmetry はファイルが変更されたことを自動的に検出し、再読み込みを行います。

例えば、次のようなXMLをロードする場合:

<?xml version="1.0" encoding="utf-8"?>
<Example>
    <Egg>6</Egg>
    <Flour>1</Flour>
    <Fruits>
        <Apple>4</Apple>
        <Banana>2</Banana>
    </Fruits>
</Example>

または、属性付き XML 形式で同じデータを次のように読み込んだ場合:

<?xml version="1.0" encoding="utf-8"?>
<Example Egg="6" Flour="1">
    <Fruits Apple="4" Banana="2" />
</Example>

XML は次のようなコレクションに変換されます:

XML ファイルおよび XML テキストモジュールにはUse Key Attrピンがあります。このピンをオンにすると、XML内の「key」属性はセクション名ではなくサブコレクションのキーとして扱われます:

例えば、Use Key Attrは<item Key="Fruits" Apple="4" Banana="2" />XMLをFruitsサブコレクション内のAppleBananaに変換します。「key=」テキスト以降の文字列はすべてサブコレクションとして検出されます。一方、Use Key Attr がオフの場合、この例では item サブコレクション内に KeyAppleBanana が作成されます。


XML ファイルにエラー(例: 『<』 の欠落)がある場合、ログとメッセージにエラーメッセージが表示されます:

XML モジュール自体は空のコレクションを返します。


コレクションは、XML Exporter モジュールを使用して XML ファイルにエクスポートできます。

属性付き形式でエクスポートするには、UseAttributes ピンを使用します。属性付き形式と属性なし形式の違いは、前の 2 つの XML 例テキストで確認できます。

XMLの一般的な用途の一つは、XML TextモジュールとHTTP Requestモジュールを組み合わせて、インターネットからRSSウェブフィードを取得してパースすることです。チュートリアルライブラリにある複合[Tutorials]:MOS\Crawl\Crawl_RSS.xcompは、その良い例です。注意:MOSフォルダーには、コレクションを使用したデータベース処理を行う類似の複合例が多数存在します。

 

SQL

SQLを使用するには、複合モジュールにSQL Databaseモジュールと1つ以上のSQL Queryモジュールが必要です。

SQL DatabaseモジュールはMySQLまたはMicrosoft SQL Serverに接続します。Server NameURLとSchemaを指定し、Connectピンをオンにすると、モジュールがSQL Queryモジュールに接続され、SQLデータベースにアクセスするためのCredentialsウィンドウが表示されます:

注意:Credentialsウィンドウは実行中の複合モジュールでのみ表示されます。

SQLクエリモジュールで、出力を得るためのSQLコマンドを指定します:

出力は、返された各行に対応するサブコレクションを含むコレクション値です。

行を選択するには、例えばサブコレクションモジュールを使用して、キーrowと0から始まるインデックスを指定します:

クエリはクエリトリガーでいつでも再実行できます。または、任意のオートインターバルを設定してオートクエリを繰り返し実行するように設定できます:

コレクション内の配列

JSON、XML、およびSQLデータベースでは、配列が異なる形式で格納されます:

  • JSONでは、[]の角括弧で配列を宣言できます。
  • XMLでは、Aximmetryは繰り返される名前を配列として処理します。例えば、次のように配列に変換されます:
  • <Example Fruits="Apple" Fruits="Banana" Fruits="Peach" />
  • または:
  • <Fruits>Apple</Fruits> <Fruits>Banana</Fruits> <Fruits>Peach</Fruits>
  • この方法では、サブコレクションも配列に格納できます。例えば:
  • <Fruits Apple="4" Banana="2" /> <Fruits Apple="6" Banana="1" />
  • SQLデータには配列を含めることはできませんが、結果は配列として一覧表示されます。

これらの配列の要素は、Collection ... またはSubcollection モジュールを使用して取得できます。これらのモジュールのIndex 番号ピンは、配列の要素の位置を指定します:

例えば、以下のJSONでは、Key FruitsIndex 1に設定して、バナナの果物名を取得しています:

{

「Egg」: 6,

「Flour」: 1,

「Fruits」: [「Apple」, 『Banana』, 「Peach」]

}

また、Collection Array Countモジュールを使用して配列の長さを取得できます:

 

Array Compound

Array Compoundsを使用すると、特にコレクション内で配列を使用する場合、複合式の複雑さを大幅に削減できます。

例えば、以下のシンプルなバーデータ可視化例では、配列の各アイテムごとにCollection Scalarモジュールを使用する代わりに:

配列コンパウンドを作成できます:

この方法では、任意の長さの配列に対してCollection Scalarモジュールが1つで済みます。さらに、Collection Scalarモジュール以降のモジュールから重複する必要もありません。

配列複合体は、自身に含まれるモジュールを指定された回数だけ反復処理します。配列複合体内で、以下のモジュールだけで4つの配列値とそのシリンダーを表示できます:

注:上記のスクリーンショットでは、Array Index モジュールが配列複合体内の位置と、JSON内の配列内の位置を指定しています。

記事内容

Loading
Close
Loading spinner icon
1/10