次の方法で共有


infer_storage_schema_with_suggestions プラグイン

適用対象: ✅Microsoft FabricAzure データ エクスプローラー

この infer_storage_schema_with_suggestions プラグインは、外部データのスキーマを推論し、JSON オブジェクトを返します。 各列に対して、オブジェクトは推論された型、推奨される型、および推奨されるマッピング変換を提供します。 推奨される型とマッピングは、次のロジックを使用して最適な型を決定する提案ロジックによって提供されます。

  • ID 列: 列の推論された型が long され、列名が idで終わる場合、推奨される型は string されます。これは、等値フィルターが一般的な ID 列の最適化されたインデックス作成を提供するためです。
  • Unix datetime 列: 列の推論された型が long で、unix-time から datetime への変換 マッピング変換の 1 つ が有効な datetime 値を生成する場合、推奨される型は datetime され、推奨される ApplicableTransformationMapping マッピングは有効な datetime 値を生成した型です。

このプラグインは、evaluate 演算子を使用して呼び出されます。 Create の推定スキーマを使用するテーブル スキーマを取得し提案なしで Azure Storage 外部テーブルを変更するには、infer_storage_schema プラグインを使用します。

認証と権限承認

要求のプロパティでアクセスするストレージ接続文字列を指定します。 各ストレージ 接続文字列は、ストレージへのアクセスに使用する承認方法を指定します。 承認方法によっては、スキーマ推論を実行するために、プリンシパルに外部ストレージに対するアクセス許可を付与する必要がある場合があります。

次の表に、サポートされている認証方法と、ストレージの種類別に必要なアクセス許可を示します。

認証方法 Azure Blob Storage / Data Lake Storage Gen2 Data Lake Storage Gen1
偽装 ストレージ BLOB データ閲覧者 Reader
Shared Access (SAS) トークン リスト + 読み取り この認証方法は Gen1 ではサポートされていません。
Microsoft Entra アクセス トークン
ストレージ アカウント アクセス キー この認証方法は Gen1 ではサポートされていません。

構文

evaluateinfer_storage_schema_with_suggestions( オプション )

構文規則について詳しく知る。

パラメーター

件名 タイプ Required 内容
[オプション] dynamic ✔️ 要求の プロパティを指定するプロパティ バッグ

要求のサポートされているプロパティ

名前 タイプ Required 説明
StorageContainers dynamic ✔️ 格納されているデータ成果物のプレフィックス URI を表す storage 接続文字列s の配列。
DataFormat string ✔️ インジェストでサポートされている Data 形式の 1 つ
FileExtension string 指定した場合、この関数は、このファイル拡張子で終わるファイルのみをスキャンします。 拡張機能を指定すると、プロセスが高速化されたり、データ読み取りの問題が解消されたりする可能性があります。
FileNamePrefix string 指定した場合、この関数は、このプレフィックスで始まるファイルのみをスキャンします。 プレフィックスを指定すると、プロセスが高速化される可能性があります。
Mode string スキーマ推論戦略。 値: anylastall。 この関数は、最初に見つかったファイル、最後に書き込まれたファイル、またはすべてのファイルから、それぞれデータ スキーマを推論します。 既定値は last です。
InferenceOptions dynamic その他の推論オプション。 有効なオプション: 区切りファイル形式の UseFirstRowAsHeader 。 例えば 'InferenceOptions': {'UseFirstRowAsHeader': true}

返品

infer_storage_schema_with_suggestions プラグインは、JSON 文字列を含む 1 つの行/列を含む 1 つの結果テーブルを返します。

Note

  • ストレージ コンテナー URI シークレット キーには、読み取りだけでなくリストのアクセス許可が必要です。
  • スキーマ推論戦略 'all' は、見つかったすべての成果物からの読み取りとそのスキーマのマージを意味する、非常に「コストの高い」操作です。
  • 返される型の中には、型の推測が間違っている (またはスキーマ マージ プロセスの結果として) 実際の型ではない場合があります。 このため、使用する前に結果を慎重に確認する必要があります。

let options = dynamic({
  'StorageContainers': [
    h@'https://storageaccount.blob.core.windows.net/MobileEvents;secretKey'
  ],
  'FileExtension': '.json',
  'FileNamePrefix': 'js-',
  'DataFormat': 'json'
});
evaluate infer_storage_schema_with_suggestions(options)

入力データの例

    {
        "source": "DataExplorer",
        "created_at": "2022-04-10 15:47:57",
        "author_id": 739144091473215488,
        "time_millisec":1547083647000
    }

出力

{
  "Columns": [
    {
      "OriginalColumn": {
        "Name": "source",
        "CslType": {
          "type": "string",
          "IsNumeric": false,
          "IsSummable": false
        }
      },
      "RecommendedColumn": {
        "Name": "source",
        "CslType": {
          "type": "string",
          "IsNumeric": false,
          "IsSummable": false
        }
      },
      "ApplicableTransformationMapping": "None"
    },
    {
      "OriginalColumn": {
        "Name": "created_at",
        "CslType": {
          "type": "datetime",
          "IsNumeric": false,
          "IsSummable": true
        }
      },
      "RecommendedColumn": {
        "Name": "created_at",
        "CslType": {
          "type": "datetime",
          "IsNumeric": false,
          "IsSummable": true
        }
      },
      "ApplicableTransformationMapping": "None"
    },
    {
      "OriginalColumn": {
        "Name": "author_id",
        "CslType": {
          "type": "long",
          "IsNumeric": true,
          "IsSummable": true
        }
      },
      "RecommendedColumn": {
        "Name": "author_id",
        "CslType": {
          "type": "string",
          "IsNumeric": false,
          "IsSummable": false
        }
      },
      "ApplicableTransformationMapping": "None"
    },
    {
      "OriginalColumn": {
        "Name": "time_millisec",
        "CslType": {
          "type": "long",
          "IsNumeric": true,
          "IsSummable": true
        }
      },
      "RecommendedColumn": {
        "Name": "time_millisec",
        "CslType": {
          "type": "datetime",
          "IsNumeric": false,
          "IsSummable": true
        }
      },
      "ApplicableTransformationMapping": "DateTimeFromUnixMilliseconds"
    }
  ]
}