Simple Log Service (SLS) のドメイン固有言語 (DSL) は、データ変換用の Python 互換スクリプトです。SLS DSL は Python 上に構築されており、データ変換タスクを簡素化するための 200 以上の組み込み関数を提供します。
柔軟なオーケストレーション
SLS DSL を使用して関数を編集し、さまざまなロジックを組み合わせることで、ほとんどのデータ変換シナリオに対応できます。
動的な配布
特定のロジックに基づいて、データをさまざまな宛先 Logstore に配布できます。宛先 Logstore の名前は、動的に計算したり、OSS バケットなどの外部ソースから取得したりできます。
柔軟なエンリッチメント
ローカルリソースまたは外部リソース (OSS バケットや ApsaraDB RDS for MySQL インスタンスなど) からエンリッチメントデータを取得します。
辞書とテーブルの標準マッピング、およびテーブルの高度なマッピングを実行します。
読み込まれた外部リソースを自動的に更新します。
グローバル操作関数
SLS DSL は、パラメーターを使用して操作を制御する約 30 のグローバル操作関数を提供します。これらの関数は、式関数の結果をパラメーターとして受け取ります。制御関数は、式関数や他のステップ関数と組み合わせることができます。主な関数の種類は次のとおりです:
if-else、if、switch、composeなどの関数を使用して条件分岐を作成します。e_searchなどのシンプルな検索機能を使用して、さまざまな種類のログを処理します。
イベントをドロップ、保持、分割、出力、コピーします。
フィールドを保持、削除、名前変更します。
正規表現、Grok、KV、KV セパレーター、CSV、TSV、PSV、または Syslog を使用して、フィールドから複数の値またはキーと値のペアを抽出します。
JSON データを抽出してエンリッチします。
辞書とテーブルに基づいてマッピングまたは検索を行います。
ルール設定、外部 OSS バケット、ApsaraDB RDS for MySQL インスタンスなどのリソースから、エンリッチメントのためのディメンションテーブル情報を取得します。
完全ログまたは増分変更ログに基づいて、外部リソースを自動的に更新します。
ログフィールド情報をエンリッチします。たとえば、IP アドレスの脅威インテリジェンスを取得し、この情報をあるログフィールドに保存することで、ログ分析が容易になります。
式関数
SLS DSL は、イベントの変換やグローバル関数の動作の制御に使用できる 200 以上の組み込み式関数を提供します。これらの関数は、ほとんどのデータ変換ニーズに対応しています。主な関数の種類は次のとおりです:
これらの関数は、Lucene ライクな構文、完全な正規表現、文字列、ワイルドカード、数値比較、および AND、OR、NOT の論理的な組み合わせを使用する条件付きフィルタリングメカニズムを提供します。
これらの関数は、フィールド値の取得、制御、比較、コンテナチェック、複数フィールド操作をサポートします。
これらの関数は、基本型変換、数値変換、辞書とリストの変換操作を提供します。
これらの関数は、基本的な計算、複数値の計算、数学的な計算、数学的なパラメーターをサポートします。
これらの関数は、エンコード、デコード、ソート、リバース、置換、標準正規化、検索、分割、フォーマット、文字セットチェックなどの複数フィールド操作を提供します。
これらの関数は、日時の変換、日時プロパティの取得、現在日時の取得、UNIX タイムスタンプの取得、日時文字列の取得、日時値の変更と比較をサポートします。
これらの関数は、フィールドの抽出、照合、評価、置換、分割の操作を提供します。
これらの関数は、400 以上の組み込み Grok パターンを提供し、Grok パターンの置換をサポートします。
これらの関数は、JSON、Protobuf、XML などの特定の構造からデータの抽出とフィルタリングをサポートします。
これらの関数は、IP アドレス解決と変換をサポートします。
これらの関数は、SHA1、SHA256、SHA512、MD5、HTML、URL、Base64 などの形式でのテキストのエンコードとデコードをサポートします。