Freigeben über


Plug-In „infer_storage_schema_with_suggestions“

Gilt für: ✅Microsoft Fabric✅Azure Data Explorer

Dieses infer_storage_schema_with_suggestions Plug-In leitet das Schema externer Daten ab und gibt ein JSON-Objekt zurück. Für jede Spalte stellt das Objekt abgeleiteten Typ, einen empfohlenen Typ und die empfohlene Zuordnungstransformation bereit. Der empfohlene Typ und die empfohlene Zuordnung werden von der Vorschlagslogik bereitgestellt, die den optimalen Typ mithilfe der folgenden Logik bestimmt:

  • Identitätsspalten: Wenn der abgeleitete Typ für eine Spalte ist long und der Spaltenname endet id, liegt string der vorgeschlagene Typ daran, dass er eine optimierte Indizierung für Identitätsspalten bereitstellt, bei denen Gleichheitsfilter üblich sind.
  • Unix datetime columns: If the inferred type for a column is long and one of the unix-time to datetime mapping transformations produces a valid datetime value, the suggested type is datetime and the suggested ApplicableTransformationMapping mapping is the one that produced a valid datetime value.

Das Plug-In wird mit dem evaluate Operator aufgerufen. Um das Tabellenschema abzurufen, das das abgeleitete Schema zum Erstellen und Ändern externer Azure Storage-Tabellen ohne Vorschläge verwendet, verwenden Sie das infer_storage_schema-Plug-In .

Authentifizierung und Autorisierung

In den Eigenschaften der Anforderung geben Sie speicher Verbindungszeichenfolge für den Zugriff an. Jeder Speicher Verbindungszeichenfolge gibt die Autorisierungsmethode an, die für den Zugriff auf den Speicher verwendet werden soll. Je nach Autorisierungsmethode muss dem Prinzipal möglicherweise Berechtigungen für den externen Speicher erteilt werden, um die Schema-Ableitung durchzuführen.

In der folgenden Tabelle sind die unterstützten Authentifizierungsmethoden und alle erforderlichen Berechtigungen nach Speichertyp aufgeführt.

Authentifizierungsmethode Azure Blob Storage / Data Lake Storage Gen2 Data Lake Storage Gen1
Identitätswechsel Leser von Speicherblobdaten Leser
Token für gemeinsamen Zugriff (SAS) Liste + Lesen Diese Authentifizierungsmethode wird in Gen1 nicht unterstützt.
Microsoft Entra-Zugriffstoken
Zugriffsschlüssel für das Speicherkonto Diese Authentifizierungsmethode wird in Gen1 nicht unterstützt.

Syntax

evaluateinfer_storage_schema_with_suggestions( Optionen )

Erfahren Sie mehr über Syntaxkonventionen.

Parameter

Name Type Erforderlich Beschreibung
Optionen dynamic ✔️ Ein Eigenschaftenbehälter, der die Eigenschaften der Anforderung angibt.

Unterstützte Eigenschaften der Anforderung

Name Type Erforderlich Beschreibung
StorageContainers dynamic ✔️ Ein Array von Speicher Verbindungszeichenfolge s, die präfix-URI für gespeicherte Datenartefakte darstellen.
DataFormat string ✔️ Eines der unterstützten Datenformate, die für die Aufnahme unterstützt werden
FileExtension string Wenn angegeben, überprüft die Funktion nur Dateien, die mit dieser Dateierweiterung enden. Die Angabe der Erweiterung kann den Prozess beschleunigen oder Datenleseprobleme beseitigen.
FileNamePrefix string Wenn angegeben, überprüft die Funktion nur Dateien, die mit diesem Präfix beginnen. Die Angabe des Präfixes kann den Prozess beschleunigen.
Mode string Die Schema-Ableitungsstrategie. Ein Wert von: any, last, all. Die Funktion leitet das Datenschema aus der ersten gefundenen Datei, aus der letzten geschriebenen Datei oder aus allen Dateien ab. Der Standardwert ist last.
InferenceOptions dynamic Weitere Rückschlussoptionen. Gültige Optionen: UseFirstRowAsHeader für durch Trennzeichen getrennte Dateiformate. Zum Beispiel: 'InferenceOptions': {'UseFirstRowAsHeader': true}

Gibt zurück

Das infer_storage_schema_with_suggestions Plug-In gibt eine einzelne Ergebnistabelle zurück, die eine einzelne Zeile/Spalte mit einer JSON-Zeichenfolge enthält.

Hinweis

  • Geheime Schlüssel für den Speichercontainer-URI müssen zusätzlich zum Lesen über die Berechtigungen für "List" verfügen.
  • Schemainference-Strategie "all" ist eine sehr "teure" Operation, da es impliziert, aus allen Artefakten zu lesen, die gefunden und zusammengeführt werden.
  • Einige zurückgegebene Typen sind möglicherweise nicht die tatsächlichen Typen als Ergebnis einer falschen Typerraten (oder, als Folge des Schemazusammenführungsprozesses). Aus diesem Grund sollten Sie das Ergebnis sorgfältig überprüfen, bevor Sie es verwenden.

Beispiel

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)

Beispieleingabedaten

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

Output

{
  "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"
    }
  ]
}