0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

特徴量エンジンKaskadaの宣言型クエリ言語 Fenl〜レコード(Record)とその操作

Last updated at Posted at 2023-05-26

はじめに

先日、以下の記事を発表しました。

新しいテクノロジーに触れる時はいつでも楽しいものです。
中でも新しいプログラミング言語(のパラダイム)を学ぶことは、特別に楽しいことです。

ということで、まだまだ勉強中ですが、公式ドキュメントの学習過程の記録として、以下の記事をまとめてみました。特に、日本語に置き換えるにあたっての用法が固まっていない分野として、自分にとって受け止めやすいのは何か?という観点からの試みとなっています。

Fenlとは何か、については、下記の記事を参照ください。

本稿情報のソースとして、下記ドキュメントを参照ください。

レコード(Record)基礎

Fenlでは、レコード(Record)と呼ばれるデータセットが用いられます。
1つのレコードには、 複数の値を含めることができます。
各値は名前を持ちます(名前付きフィールド)。

レコードは、 {name: "john", age: 32}のように、中括弧を使用して作成できます。対応するタイプは {name: string, age: number}のように、記述されます。

レコード内のフィールドは順序付けされています(JSONとは異なる)。
順序は、以下のようなケースに影響します。

  • 2 つのレコードを比較する(それらが同じタイプであるかどうかを判断する)場合
  • レコードの内容を出力する場合(の出力順)。

レコードの拡張

レコードは、別のレコードのフィールドで拡張できます。名前が衝突すると、新しいフィールドが古いフィールドをオーバーライドします。これはextend(new_record, original)またはoriginal | extend(new_record)として実行できます 。

例: {name: "john", age: 32} | extend({age: 33, lastname: "smith" })により、{name: "john", age: 33, lastname: "smith" }レコードが生成されます。

フィールドの選択または投影

レコードの特定のフィールドは、 select_fieldsを使用して選択できます。結果は、指定されたフィールドのみを含むレコードになります。

例: select_fields({name: "john", age: 33, lastname: "smith" }, "lastname", "name")は、 {name: "john", lastname: "smith"}レコードを生成します。

フィールドの削除

レコードの特定のフィールドは、 remove_fieldsを使用して削除できます。結果は、名前付きフィールドのないレコードになります。

例: remove_fields({name: "john", age: 33, lastname: "smith" }, "lastname", "name")は、 {age: 33}レコードを生成します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?