Übersicht über die Datenerfassung in Azure Data ExplorerAzure Data Explorer data ingestion overview

Die Datenerfassung ist der Prozess, mit dem Datensätze aus einer oder mehreren Quellen geladen werden, um Daten in eine Tabelle in Azure Data Explorer zu importieren.Data ingestion is the process used to load data records from one or more sources to import data into a table in Azure Data Explorer. Nach der Erfassung sind die Daten für Abfragen verfügbar.Once ingested, the data becomes available for query.

Das folgende Diagramm zeigt den vollständigen Flow für die Arbeit in Azure Data Explorer, einschließlich der unterschiedlichen Erfassungsmethoden.The diagram below shows the end-to-end flow for working in Azure Data Explorer and shows different ingestion methods.

Übersichtsschema der Datenerfassung und -verwaltung

Der Datenverwaltungsdienst von Azure Data Explorer, der für die Datenerfassung zuständig ist, implementiert die folgenden Prozesse:The Azure Data Explorer data management service, which is responsible for data ingestion, implements the following process:

Azure Data Explorer pullt Daten aus einer externen Quelle und liest Anforderungen aus einer ausstehenden Azure-Warteschlange.Azure Data Explorer pulls data from an external source and reads requests from a pending Azure queue. Die Daten werden in einem Batch oder Stream an Data Manager übermittelt.Data is batched or streamed to the Data Manager. Batchdaten, die an dieselbe Datenbank und Tabelle gesendet werden, sind für den Durchsatz der Datenerfassung optimiert.Batch data flowing to the same database and table is optimized for ingestion throughput. Azure Data Explorer führt eine erste Überprüfung der Daten durch und konvertiert ggf. Datenformate.Azure Data Explorer validates initial data and converts data formats where necessary. Die weitere Datenbearbeitung umfasst den Schemaabgleich sowie die Organisation, Indizierung, Codierung und Komprimierung der Daten.Further data manipulation includes matching schema, organizing, indexing, encoding, and compressing the data. Die Daten werden gemäß der festgelegten Aufbewahrungsrichtlinie im Speicher gespeichert.Data is persisted in storage according to the set retention policy. Der Data Manager committet anschließend die Datenerfassung in der-Engine, wo sie dann für Abfragen bereitstehen.The Data Manager then commits the data ingest to the engine, where it's available for query.

Unterstützte Datenformate, Eigenschaften und BerechtigungenSupported data formats, properties, and permissions

Batcherfassung und StreamingerfassungBatching vs streaming ingestion

  • Bei der Batcherfassung werden die Daten in Batches zusammengefasst und für einen hohen Erfassungsdurchsatz optimiert.Batching ingestion does data batching and is optimized for high ingestion throughput. Diese Methode stellt die bevorzugte und leistungsfähigste Art der Erfassung dar.This method is the preferred and most performant type of ingestion. Die Daten werden gemäß den Erfassungseigenschaften in Batches zusammengefasst.Data is batched according to ingestion properties. Anschließend werden kleine Datenbatches zusammengeführt und für schnelle Abfrageergebnisse optimiert.Small batches of data are then merged, and optimized for fast query results. Die Richtlinie für die Batcherfassung kann für Datenbanken oder Tabellen festgelegt werden.The ingestion batching policy can be set on databases or tables. Standardmäßig beträgt der Maximalwert für Batches 5 Minuten, 1.000 Elemente oder eine Gesamtgröße von 500 MB.By default, the maximum batching value is 5 minutes, 1000 items, or a total size of 500 MB.

  • Die Streamingerfassung erfolgt durch eine fortlaufende Datenerfassung aus einer Streamingquelle.Streaming ingestion is ongoing data ingestion from a streaming source. Durch die Streamingerfassung sinkt die Latenz bei kleinen Datensätzen pro Tabelle auf nahezu Echtzeit.Streaming ingestion allows near real-time latency for small sets of data per table. Die Daten werden anfänglich im Zeilenspeicher erfasst und dann in Spaltenspeichererweiterungen verschoben.Data is initially ingested to row store, then moved to column store extents. Die Streamingerfassung kann mithilfe einer Azure Data Explorer-Clientbibliothek oder einer der unterstützten Datenpipelines erfolgen.Streaming ingestion can be done using an Azure Data Explorer client library or one of the supported data pipelines.

Erfassungsmethoden und -toolsIngestion methods and tools

Azure Data Explorer unterstützt mehrere Erfassungsmethoden mit jeweils eigenen Zielszenarien.Azure Data Explorer supports several ingestion methods, each with its own target scenarios. Diese Methoden umfassen Erfassungstools, Connectors und Plug-Ins für verschiedene Dienste, verwaltete Pipelines, die programmgesteuerte Erfassung mithilfe von SDKs und Direktzugriff auf die Erfassung.These methods include ingestion tools, connectors and plugins to diverse services, managed pipelines, programmatic ingestion using SDKs, and direct access to ingestion.

Erfassung mit verwalteten PipelinesIngestion using managed pipelines

Für Organisationen, die eine Verwaltung (Drosselung, Wiederholungen, Überwachungen, Warnungen usw.) über einen externen Dienst durchführen möchten, stellt die Verwendung eines Connectors wahrscheinlich die geeignetste Lösung dar.For organizations who wish to have management (throttling, retries, monitors, alerts, and more) done by an external service, using a connector is likely the most appropriate solution. Die Erfassung in der Warteschlange eignet sich für große Datenmengen.Queued ingestion is appropriate for large data volumes. Azure Data Explorer unterstützt die folgenden Azure Pipelines:Azure Data Explorer supports the following Azure Pipelines:

Erfassung mit Konnektoren und Plug-InsIngestion using connectors and plugins

Programmgesteuerte Erfassung mit SDKsProgrammatic ingestion using SDKs

Azure-Daten-Explorer bietet SDKs, die für Abfragen und die Datenerfassung verwendet werden können.Azure Data Explorer provides SDKs that can be used for query and data ingestion. Die programmgesteuerte Erfassung ist dafür optimiert, die Erfassungskosten (COGs) zu senken, indem Speichertransaktionen während und nach dem Erfassungsprozess minimiert werden.Programmatic ingestion is optimized for reducing ingestion costs (COGs), by minimizing storage transactions during and following the ingestion process.

Verfügbare SDKs und Open-Source-ProjekteAvailable SDKs and open-source projects

ToolsTools

  • 1-Klick-Erfassung: Ermöglicht das schnelle Erfassen von Daten durch Erstellen und Anpassen von Tabellen aus einer breiten Palette von Quelltypen.One click ingestion: Enables you to quickly ingest data by creating and adjusting tables from a wide range of source types. Bei der 1-Klick-Erfassung werden basierend auf der Datenquelle in Azure Data Explorer automatisch Tabellen und Zuordnungsstrukturen vorschlagen.One click ingestion automatically suggests tables and mapping structures based on the data source in Azure Data Explorer. Sie können die 1-Klick-Erfassung für die einmalige Erfassung verwenden oder zum Definieren einer kontinuierlichen Erfassung über Event Grid in dem Container, in dem die Daten erfasst wurden.One click ingestion can be used for one-time ingestion, or to define continuous ingestion via Event Grid on the container to which the data was ingested.

  • LightIngest: Ein Befehlszeilen-Hilfsprogramm für die Ad-hoc-Datenerfassung in Azure Data Explorer.LightIngest: A command-line utility for ad-hoc data ingestion into Azure Data Explorer. Das Hilfsprogramm kann Quelldaten aus einem lokalen Ordner oder aus einem Azure Blob Storage-Container abrufen.The utility can pull source data from a local folder or from an Azure blob storage container.

Befehle zur Steuerung der Erfassung in der Kusto-AbfragespracheKusto Query Language ingest control commands

Es gibt eine Reihe von Methoden, mit denen Daten mithilfe von KQL-Befehlen (Kusto Query Language) direkt in der Engine erfasst werden können.There are a number of methods by which data can be ingested directly to the engine by Kusto Query Language (KQL) commands. Da diese Methode die Datenverwaltungsdienste umgeht, eignet sie sich nur für die Erkundung und Prototyperstellung.Because this method bypasses the Data Management services, it's only appropriate for exploration and prototyping. Verwenden Sie diese Methode nicht in Produktionsszenarien oder Szenarien mit hohem Volumen.Don't use this method in production or high-volume scenarios.

  • Inlineerfassung: An die Engine wird ein Steuerungsbefehl (.ingest inline) gesendet, und die zu erfassenden Daten werden direkt im Befehlstext angegeben.Inline ingestion: A control command .ingest inline is sent to the engine, with the data to be ingested being a part of the command text itself. Diese Methode ist für improvisierte Testzwecke vorgesehen.This method is intended for improvised testing purposes.

  • Erfassung aus einer Abfrage: An die Engine wird ein Steuerungsbefehl („.set“, „.append“, „.set-or-append“ oder „.set-or-replace“) gesendet, und die Daten werden indirekt als die Ergebnisse einer Abfrage oder eines Befehls angegeben.Ingest from query: A control command .set, .append, .set-or-append, or .set-or-replace is sent to the engine, with the data specified indirectly as the results of a query or a command.

  • Erfassung aus dem Speicher (Pull): An die Engine wird ein Steuerungsbefehl (.ingest into) gesendet, und die Daten sind in einem externen Speicher (beispielsweise in Azure Blob Storage) gespeichert, auf den die Engine zugreifen kann und auf den durch den Befehl verwiesen wird.Ingest from storage (pull): A control command .ingest into is sent to the engine, with the data stored in some external storage (for example, Azure Blob Storage) accessible by the engine and pointed-to by the command.

Vergleich der Erfassungsmethoden und -toolsComparing ingestion methods and tools

ErfassungsnameIngestion name DatentypData type Maximale DateigrößeMaximum file size Streaming, Batch, direktStreaming, batching, direct Häufige SzenarienMost common scenarios ÜberlegungenConsiderations
1-Klick-ErfassungOne click ingestion *sv, JSON*sv, JSON 1 GB unkomprimiert (siehe Hinweis)1 GB uncompressed (see note) Batcherfassung in Container, lokale Datei und Blob bei direkter ErfassungBatching to container, local file and blob in direct ingestion Einmalig, Tabellenschema erstellen, kontinuierliche Erfassung mit Event Grid definieren, Massenerfassung mit Container (bis zu 10.000 Blobs)One-off, create table schema, definition of continuous ingestion with event grid, bulk ingestion with container (up to 10,000 blobs) 10.000 Blobs werden nach dem Zufallsprinzip aus dem Container ausgewählt10,000 blobs are randomly selected from container
LightIngestLightIngest Alle Formate unterstütztAll formats supported 1 GB unkomprimiert (siehe Hinweis)1 GB uncompressed (see note) Batcherfassung über DM oder direkte Erfassung in EngineBatching via DM or direct ingestion to engine Datenmigration, Verlaufsdaten mit angepassten Erfassungszeitstempeln, Massenerfassung (keine Größenbeschränkung)Data migration, historical data with adjusted ingestion timestamps, bulk ingestion (no size restriction) Beachtung von Groß-/Kleinschreibung, platzintensivCase-sensitive, space-sensitive
ADX KafkaADX Kafka
ADX in Apache SparkADX to Apache Spark
LogStashLogStash
Azure Data FactoryAzure Data Factory Unterstützte DatenformateSupported data formats unbegrenzt *(nach ADF-Einschränkungen)unlimited *(per ADF restrictions) Batcherfassung oder mit ADF-TriggerBatching or per ADF trigger Unterstützt Formate, die in der Regel nicht unterstützt werden, große Dateien, kann von über 90 Quellen kopieren, von lokal in die CloudSupports formats that are usually unsupported, large files, can copy from over 90 sources, from on perm to cloud Zeit der ErfassungTime of ingestion
Azure Data Flow Azure Data Flow Erfassungsbefehle als Teil des FlowsIngestion commands as part of flow Erfordert Antwortzeit mit hoher LeistungMust have high-performing response time
IoT HubIoT Hub Unterstützte DatenformateSupported data formats N/A Batcherfasung, StreamingBatching, streaming IoT-Nachrichten, IoT-Ereignisse, IoT-EigenschaftenIoT messages, IoT events, IoT properties
Event HubEvent Hub Unterstützte DatenformateSupported data formats N/A Batcherfasung, StreamingBatching, streaming Nachrichten, EreignisseMessages, events
Event GridEvent Grid Unterstützte DatenformateSupported data formats 1 GB unkomprimiert1 GB uncompressed BatchingBatching Kontinuierliche Erfassung aus Azure Storage, externe Daten in Azure StorageContinuous ingestion from Azure storage, external data in Azure storage 100 KB als optimale Dateigröße, für Blobumbenennung und -erstellung verwendet100 KB is optimal file size, Used for blob renaming and blob creation
Net StdNet Std Alle Formate unterstütztAll formats supported 1 GB unkomprimiert (siehe Hinweis)1 GB uncompressed (see note) Batcherfassung, Streaming, direktBatching, streaming, direct Schreiben von eigenem Code nach Anforderungen der OrganisationWrite your own code according to organizational needs
PythonPython Alle Formate unterstütztAll formats supported 1 GB unkomprimiert (siehe Hinweis)1 GB uncompressed (see note) Batcherfassung, Streaming, direktBatching, streaming, direct Schreiben von eigenem Code nach Anforderungen der OrganisationWrite your own code according to organizational needs
Node.jsNode.js Alle Formate unterstütztAll formats supported 1 GB unkomprimiert (siehe Hinweis)1 GB uncompressed (see note Batcherfassung, Streaming, direktBatching, streaming, direct Schreiben von eigenem Code nach Anforderungen der OrganisationWrite your own code according to organizational needs
JavaJava Alle Formate unterstütztAll formats supported 1 GB unkomprimiert (siehe Hinweis)1 GB uncompressed (see note) Batcherfassung, Streaming, direktBatching, streaming, direct Schreiben von eigenem Code nach Anforderungen der OrganisationWrite your own code according to organizational needs
RESTREST Alle Formate unterstütztAll formats supported 1 GB unkomprimiert (siehe Hinweis)1 GB uncompressed (see note) Batcherfassung, Streaming, direktBatching, streaming, direct Schreiben von eigenem Code nach Anforderungen der OrganisationWrite your own code according to organizational needs
GoGo Alle Formate unterstütztAll formats supported 1 GB unkomprimiert (siehe Hinweis)1 GB uncompressed (see note) Batcherfassung, Streaming, direktBatching, streaming, direct Schreiben von eigenem Code nach Anforderungen der OrganisationWrite your own code according to organizational needs

Hinweis

Wenn in der obigen Tabelle darauf verwiesen wird, unterstützt die Erfassung eine maximale Dateigröße von 5 GB.When referenced in the above table, ingestion supports a maximum file size of 5 GB. Es wird empfohlen, Dateien zwischen 100 MB und 1 GB zu erfassen.The recommendation is to ingest files between 100 MB and 1 GB.

ErfassungsprozessIngestion process

Nachdem Sie die am besten geeignete Erfassungsmethode für Ihre Anforderungen ausgewählt haben, führen Sie die folgenden Schritte aus:Once you have chosen the most suitable ingestion method for your needs, do the following steps:

  1. Festlegen der AufbewahrungsrichtlinieSet retention policy

    Für Daten, die in einer Tabelle in Azure Data Explorer erfasst werden, gilt die effektive Aufbewahrungsrichtlinie der Tabelle.Data ingested into a table in Azure Data Explorer is subject to the table's effective retention policy. Wurde für eine Tabelle nicht explizit eine effektive Aufbewahrungsrichtlinie festgelegt, wird sie von der Aufbewahrungsrichtlinie der Datenbank abgeleitet.Unless set on a table explicitly, the effective retention policy is derived from the database's retention policy. Die heiße Speicherebene für die Aufbewahrung ist eine Funktion aus der Clustergröße und Ihrer Aufbewahrungsrichtlinie.Hot retention is a function of cluster size and your retention policy. Wenn Sie mehr Daten erfassen, als Speicherplatz verfügbar ist, werden die zuerst erfassten Daten in die kalte Aufbewahrung überführt.Ingesting more data than you have available space will force the first in data to cold retention.

    Stellen Sie sicher, dass die Aufbewahrungsrichtlinie der Datenbank Ihren Anforderungen entspricht.Make sure that the database's retention policy is appropriate for your needs. Ist dies nicht der Fall, überschreiben Sie sie explizit auf Tabellenebene.If not, explicitly override it at the table level. Weitere Informationen finden Sie unter Aufbewahrungsrichtlinie.For more information, see retention policy.

  2. Erstellen einer TabelleCreate a table

    Um Daten zu erfassen, muss vorab eine Tabelle erstellt werden.In order to ingest data, a table needs to be created beforehand. Nutzen Sie eine der folgenden Optionen:Use one of the following options:

    Hinweis

    Wenn ein Datensatz unvollständig ist oder ein Feld nicht als erforderlicher Datentyp analysiert werden kann, werden die entsprechenden Tabellenspalten mit Nullwerten gefüllt.If a record is incomplete or a field cannot be parsed as the required data type, the corresponding table columns will be populated with null values.

  3. Erstellen einer SchemazuordnungCreate schema mapping

    Die Schemazuordnung hilft dabei, Quelldatenfelder an Spalten der Zieltabelle zu binden.Schema mapping helps bind source data fields to destination table columns. Die Zuordnung ermöglicht Ihnen, Daten aus verschiedenen Quellen basierend auf den definierten Attributen in dieselbe Tabelle zu übernehmen.Mapping allows you to take data from different sources into the same table, based on the defined attributes. Es werden unterschiedliche Zuordnungstypen unterstützt – sowohl zeilenorientiert (CSV, JSON und Avro) als auch spaltenorientiert (Parquet).Different types of mappings are supported, both row-oriented (CSV, JSON and AVRO), and column-oriented (Parquet). Bei den meisten Methoden können Zuordnungen auch vorab in der Tabelle erstellt und vom Erfassungsbefehlsparameter referenziert werden.In most methods, mappings can also be pre-created on the table and referenced from the ingest command parameter.

  4. Einrichten einer Updaterichtlinie (optional)Set update policy (optional)

    Einige der Datenformatzuordnungen (Parquet, JSON und Avro) unterstützen einfache und nützliche Transformationen während der Erfassung.Some of the data format mappings (Parquet, JSON, and Avro) support simple and useful ingest-time transformations. Wenn für das Szenario eine komplexere Verarbeitung zur Erfassungszeit erforderlich ist, verwenden Sie eine Updaterichtlinie, die eine einfache Verarbeitung mithilfe von Befehlen der Kusto-Abfragesprache ermöglicht.Where the scenario requires more complex processing at ingest time, use update policy, which allows for lightweight processing using Kusto Query Language commands. Die Updaterichtlinie führt automatisch Extraktionen und Transformationen der erfassten Daten in der ursprünglichen Tabelle aus und erfasst die resultierenden Daten in einer oder mehreren Zieltabellen.The update policy automatically runs extractions and transformations on ingested data on the original table, and ingests the resulting data into one or more destination tables. Legen Sie Ihre Updaterichtlinie fest.Set your update policy.

Nächste SchritteNext steps