Avrotize ツール
Avrotize は、データとデータベーススキーマの形式を変換し、さまざまなプログラミング言語でコードを生成するための汎用性の高いツール です。 このツールでは、Kusto テーブル定義を Avrotize Schema コマンドに変換する
- サンプリングによるスキーマの推論
- 任意のレベルの入れ子で配列とレコードを解決する
- 競合するスキーマの検出
- 異なるスキーマ ブランチごとに型共用体を作成する
手記
Avrotize k2a ツールは、製品のサポートなしで as-is 提供されるオープンソース ツールです。
テーブル定義を AVRO 形式に変換する
avrotize k2a
コマンドを使用して Kusto データベースに接続し、データベース内の各テーブルのレコード型を持つ Avro スキーマを作成できます。
コマンドの使用方法の例を次に示します。
各テーブルのレコードを含む最上位の共用体を持つ Avro スキーマを作成します。
avrotize k2a --kusto-uri <Uri> --kusto-database <DatabaseName> --avsc <AvroFilename.avsc>
CloudEvent ラッパーとイベントごとのスキーマを使用して XRegistry カタログ ファイルを作成します。
次の例では、各テーブルのスキーマを含む xRegistry カタログ ファイルを作成します。 入力テーブルに、ID、ソース、型などの列によって識別される CloudEvent が含まれている場合、ツールはイベントの種類ごとに個別のスキーマを作成します。
avrotize k2a --kusto-uri <URI> --kusto-database <DatabaseName> --avsc <AvroFilename.xreg.json> --emit-cloudevents-xregistry --avro-namespace <AvroNamespace>
AVRO スキーマを Kusto テーブル宣言に変換する
avrotize a2k
コマンドを使用して、Avro スキーマと JSON マッピングから KQL テーブル宣言を作成できます。 また、Avro レコード型の "doc" 注釈から抽出されたテーブル宣言に docstring を含めることもできます。
Avro スキーマが 1 つのレコード型の場合、出力スクリプトにはレコードの .create table
コマンドが含まれます。 レコード フィールドは、テーブル内の列に変換されます。 Avro スキーマが型共用体 (最上位の配列) の場合、出力スクリプトは共用体のレコード型ごとに個別の .create table
コマンドを出力します。
avrotize a2k .\<AvroFilename.avsc> --out <KustoFilename.kql>
Avrotize ツールでは、JSON スキーマ、XML スキーマ、ASN.1 スキーマ、Protobuf 2 および Protobuf 3 スキーマを Avro スキーマに変換できます。 最初にソース スキーマを Avro スキーマに変換して正規化してから、Kusto スキーマに変換できます。
たとえば、"address.json" を Avro スキーマに変換するには、次のコマンドで最初に入力 JSON スキーマ ドキュメント "address.json" を変換して正規化します。
avrotize j2a address.json --out address.avsc
次に、Avro スキーマ ファイルを Kusto スキーマに変換します。
avrotize a2k address.avsc --out address.kql
コマンドを連結して、Avro を介して JSON スキーマから Kusto スキーマに変換することもできます。
avrotize j2a address.json | avrotize a2k --out address.kql
関連コンテンツ
- Avrotize GitHub リポジトリ ページ
- AVRO マッピング pypi の
- AVRO マッピング の