Freigeben über


JSON-Zuordnung

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

Verwenden Sie die JSON-Zuordnung, um eingehende Daten Spalten innerhalb von Tabellen zuzuordnen, wenn sich die Aufnahmequelldatei im JSON-Format befindet.

Jedes Element in der Zuordnungsliste definiert die Zuordnung für eine bestimmte Spalte. Diese Elemente werden aus drei Eigenschaften erstellt: column, , datatypeund properties. Weitere Informationen finden Sie in der Übersicht über Datenzuordnungen.

Jedes JSON-Zuordnungselement muss eine der folgenden optionalen Eigenschaften enthalten:

Eigenschaft Typ Beschreibung
Pfad string Wenn der Wert mit $ dem Wert beginnt, wird er als JSON-Pfad zum Feld im JSON-Dokument interpretiert, der zum Inhalt der Spalte in der Tabelle wird. Der JSON-Pfad, der das gesamte Dokument angibt, ist $. Wenn der Wert nicht mit $ dem Wert beginnt, wird er als konstanter Wert interpretiert. JSON-Pfade, die Sonderzeichen enthalten, müssen wie folgt mit Escapezeichen versehen werden: ['Eigenschaftenname']. Weitere Informationen finden Sie unter JSONPath-Syntax.
ConstValue string Der konstanten Wert, der für eine Spalte anstelle eines Werts in der JSON-Datei verwendet werden soll.
Transformieren string Transformation, die auf den Inhalt mit Zuordnungstransformationen angewendet werden soll.

Wichtig

Für in die Warteschlange eingereihte Aufnahme:

  • Wenn die tabelle, auf die in der Zuordnung verwiesen wird, nicht in der Datenbank vorhanden ist, wird sie automatisch erstellt, da gültige Datentypen für alle Spalten angegeben werden.
  • Wenn eine Spalte, auf die in der Zuordnung verwiesen wird, in der Tabelle nicht vorhanden ist, wird sie automatisch der Tabelle als letzte Spalte hinzugefügt, wenn daten zum ersten Mal für diese Spalte aufgenommen werden, vorausgesetzt, für die Spalte wird ein gültiger Datentyp angegeben. Wenn Sie einer Zuordnung neue Spalten hinzufügen möchten, verwenden Sie den Befehl ".altergestion mapping".
  • Daten werden mithilfe von Ingestion-Eigenschaften batched. Je unterschiedliche Zuordnungseigenschaften verwendet werden, z. B. verschiedene ConstValue-Werte, desto fragmentierter wird die Aufnahme, was zu Leistungsbeeinträchtigungen führen kann.

Beispiele

[
  {"Column": "event_timestamp", "Properties": {"Path": "$.Timestamp"}},
  {"Column": "event_name",      "Properties": {"Path": "$.Event.Name"}},
  {"Column": "event_type",      "Properties": {"Path": "$.Event.Type"}},
  {"Column": "source_uri",      "Properties": {"Transform": "SourceLocation"}},
  {"Column": "source_line",     "Properties": {"Transform": "SourceLineNumber"}},
  {"Column": "event_time",      "Properties": {"Path": "$.Timestamp", "Transform": "DateTimeFromUnixMilliseconds"}},
  {"Column": "ingestion_time",  "Properties": {"ConstValue": "2021-01-01T10:32:00"}},
  {"Column": "full_record",     "Properties": {"Path": "$"}}
]

Die obige Zuordnung wird als JSON-Zeichenfolge serialisiert, wenn sie als Teil des .ingest Verwaltungsbefehls bereitgestellt wird.

.ingest into Table123 (@"source1", @"source2")
  with
  (
      format = "json",
      ingestionMapping =
      ```
      [
        {"Column": "column_a", "Properties": {"Path": "$.Obj.Property"}},
        {"Column": "column_b", "Properties": {"Path": "$.Property"}},
        {"Column": "custom_column", "Properties": {"Path": "$.[\'Property name with space\']"}}
      ]
      ```
  )

Vorab erstellte Zuordnung

Wenn die Zuordnung bereits erstellt wurde, verweisen Sie im Verwaltungsbefehl auf die Zuordnung anhand des .ingest Namens.

.ingest into Table123 (@"source1", @"source2")
    with
    (
        format="json",
        ingestionMappingReference = "Mapping_Name"
    )

Identitätszuordnung

Verwenden Sie die JSON-Zuordnung während der Aufnahme, ohne ein Zuordnungsschema zu definieren (siehe Identitätszuordnung).

.ingest into Table123 (@"source1", @"source2")
    with
    (
        format="json"
    )

Kopieren der JSON-Zuordnung

Sie können die JSON-Zuordnung einer vorhandenen Tabelle kopieren und eine neue Tabelle mit derselben Zuordnung erstellen, indem Sie den folgenden Prozess verwenden:

  1. Führen Sie den folgenden Befehl in der Tabelle aus, deren Zuordnung Sie kopieren möchten:

    .show table TABLENAME ingestion json mappings
    | extend formatted_mapping = strcat("'",replace_string(Mapping, "'", "\\'"),"'")
    | project formatted_mapping
    
  2. Verwenden Sie die Ausgabe des obigen Befehls, um eine neue Tabelle mit derselben Zuordnung zu erstellen:

    .create table TABLENAME ingestion json mapping "TABLENAME_Mapping" RESULT_OF_ABOVE_CMD