Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
LightIngest ist ein Befehlszeilen-Hilfsprogramm für die Ad-hoc-Datenerfassung in Azure Data Explorer. Das Hilfsprogramm kann Quelldaten aus einem lokalen Ordner, einem Azure Blob Storage-Container oder einem Amazon S3-Bucket abrufen.
LightIngest ist besonders bei der Erfassung großer Datenmengen hilfreich, da die Erfassung zeitlich nicht beschränkt ist. LightIngest ist außerdem nützlich, wenn Sie Datensätze später anhand des Erstellungszeitpunkts und nicht anhand des Erfassungszeitpunkts abfragen möchten.
Ein Beispiel zum automatischen Generieren eines LightIngest-Befehls finden Sie unter Historische Daten erfassen.
Hinweis
Die Erfassung unterstützt eine maximale Dateigröße von 6 GB. Es wird empfohlen, Dateien zwischen 100 MB und 1 GB zu erfassen.
Voraussetzungen
- LightIngest. LightIngest auf eine von zwei Arten abrufen:
Laden Sie LightIngest-Binärdateien für Ihr Betriebssystem herunter. Stellen Sie sicher, dass Sie die Binärdateien nach dem Download entpacken.
Installieren Sie LightIngest als .NET-Tool. Für diese Methode ist erforderlich, dass sie auf Ihrem Computer .NET SDK Version 6.0 oder höher installiert haben. Führen Sie dann den folgenden Befehl aus:
dotnet tool install -g Microsoft.Azure.Kusto.LightIngest
Hinweis
Es wird empfohlen, die eingereihten Ingestionsbefehle zu verwenden, da beim Einsatz keine Software installiert werden muss.
Ausführen von LightIngest
So führen Sie LightIngest aus:
Geben Sie an der Eingabeaufforderung
LightIngestein, gefolgt vom entsprechenden Befehlszeilenargument.Tipp
Eine Liste der unterstützten Befehlszeilenargumente erhalten Sie durch Eingeben von
LightIngest /help.Geben Sie
ingest-gefolgt von der Verbindungszeichenfolge zum Azure Data Explorer-Cluster ein, der für die Verwaltung der Aufnahme zuständig ist. Setzen Sie die Verbindungszeichenfolge in doppelte Anführungszeichen, und befolgen Sie die Spezifikation für Kusto-Verbindungszeichenfolgen.Zum Beispiel:
LightIngest "https://ingest-{Cluster name and region}.kusto.windows.net;Fed=True" -db:{Database} -table:Trips -source:"https://{Account}.blob.core.windows.net/{ROOT_CONTAINER};{StorageAccountKey}" -pattern:"*.csv.gz" -format:csv -limit:2 -ignoreFirst:true -cr:10.0 -dontWait:true
Empfehlungen zur Leistung
Um die Erfassungslast optimal zu verwalten und vorübergehende Fehler zu beheben, verwenden Sie den Erfassungsendpunkt unter
https://ingest-{yourClusterNameAndRegion}.kusto.windows.net.Für eine optimale Aufnahmeleistung benötigt LightIngest die Rohdatengröße, damit sie die nicht komprimierte Größe lokaler Dateien schätzen kann. Allerdings kann die Größe der Rohdaten der komprimierten Blobs in LightIngest möglicherweise erst nach dem Herunterladen der Blobs korrekt geschätzt werden. Legen Sie daher bei der Erfassung von komprimierten Blobs die
rawSizeBytes-Eigenschaft für die Blobmetadaten auf die nicht komprimierte Datengröße in Byte fest.
Befehlszeilenargumente
| Argument | Type | Beschreibung | Erforderlich |
|---|---|---|---|
string |
Eine Kusto-Verbindungszeichenfolge, die den Kusto-Endpunkt angibt, an dem die Aufnahme verarbeitet wird. Schließen Sie diesen Wert in doppelte Anführungszeichen ein. | ✔️ | |
| -database, -db | string |
Der Name der Azure Data Explorer-Zieldatenbank. | |
| -table | string |
Der Name der Azure Data Explorer-Zieltabelle. | ✔️ |
| -sourcePath, -source | string |
Der Speicherort der Quelldaten, bei denen es sich entweder um einen lokalen Dateipfad, den Stamm-URI eines Azure-Blobcontainers oder den URI eines Amazon S3-Buckets handeln kann. Wenn die Daten in Azure-Blobs gespeichert sind, muss der URI den Speicherkontoschlüssel oder die Shared Access Signature (SAS) enthalten. Wenn sich die Daten in einem S3-Bucket befinden, muss der URI den Anmeldeinformationsschlüssel enthalten. Schließen Sie diesen Wert in doppelte Anführungszeichen ein. Weitere Informationen finden Sie unter Verbindungszeichenfolgen für den Speicher. Übergeben Sie -sourcePath:;impersonate, um Azure-Speicherobjekte mit benutzenden Personen aufzulisten (Autorisierung der Benutzeraufforderungen). | ✔️ |
| -managedIdentity, -mi | string |
Client-ID der verwalteten Identität (benutzer- oder systemseitig zugewiesene Identität), die für die Verbindung verwendet werden soll. Verwenden Sie „system“ für die vom System zugewiesene Identität. | |
| -azCli | bool |
Wenn festgelegt, verwendet die Azure CLI, um sich beim Kusto-Dienst zu authentifizieren. Die Azure CLI muss installiert und angemeldet sein. | |
| -ingestWithManagedIdentity, -ingestmi | string |
Client-ID der verwalteten Identität (benutzer- oder systemseitig zugewiesene Identität), die auf dem Kusto-Dienst installiert ist und aus dem Speicher heruntergeladen werden soll. Verwenden Sie „system“ für die vom System zugewiesene Identität. | |
| -connectToStorageWithManagedIdentity, -storageMi | string |
Client-ID der verwalteten Identität (benutzer- oder systemseitig zugewiesene Identität), die auf dem Client installiert ist und aus dem Speicher aufgelistet werden soll. | |
| -connectToStorageWithUserAuth, -storageUserAuth | string |
Authentifizieren Sie sich mit den Anmeldeinformationen der benutzenden Person bei dem Dienst, der die Datenquelle speichert. Die Optionen für diesen Wert sind PROMPT oder DEVICE_CODE. |
|
| -connectToStorageLoginUri, -storageLoginUri | string |
Wenn -connectToStorageWithUserAuth festgelegt ist, können Sie optional einen Anmelde-URI der Microsoft Entra ID angeben. |
|
| -prefix | string |
Wenn sich die zu erfassenden Quelldaten in Blob Storage befinden, wird dieses URL-Präfix in allen Blobs gemeinsam genutzt, mit Ausnahme des Containernamens. Wenn sich die Daten beispielsweise in MyContainer/Dir1/Dir2 befinden, sollte das Präfix Dir1/Dir2 lauten. Schließen Sie diesen Wert in doppelte Anführungszeichen ein. |
|
| -pattern | string |
Muster, nach dem Quelldateien und Blobs ausgewählt werden. Unterstützt Platzhalter. Beispiel: "*.csv". Schließen Sie diesen Wert in doppelte Anführungszeichen ein. |
|
| -zipPattern | string |
Regulärer Ausdruck, der zum Auswählen der zu erfassenden Dateien in einem ZIP-Archiv verwendet werden soll. Alle anderen Dateien im Archiv werden ignoriert. Beispiel: "*.csv". Schließen Sie diesen Wert in doppelte Anführungszeichen ein. |
|
| -format, -f | string |
Format der Quelldaten. Muss in einem der unterstützten Formate vorliegen. | |
| -ingestionMappingPath, -mappingPath | string |
Der Pfad zur lokalen Datei für die Erfassungsspaltenzuordnung. Weitere Informationen finden Sie unter Data mappings (Datenzuordnungen). | |
| -ingestionMappingRef, -mappingRef | string |
Der Name einer Aufnahmespaltenzuordnung, die Sie zuvor in der Tabelle erstellt haben. Weitere Informationen finden Sie unter Data mappings (Datenzuordnungen). | |
| -creationTimePattern | string |
Wenn das Argument festgelegt ist, wird es zum Extrahieren der CreationTime-Eigenschaft aus dem Datei- oder Blobpfad verwendet. Siehe Erfassen von Daten mithilfe von CreationTime. |
|
| -ignoreFirstRow, -ignoreFirst | bool |
Wenn festgelegt, wird der erste Datensatz jeder Datei oder jedes BLOB ignoriert. Beispiel: Wenn die Quelldaten Kopfzeilen enthalten. | |
| -tag | string |
Tags, die den erfassten Daten zugeordnet werden. Mehrere Vorkommen sind zulässig. | |
| -dontWait | bool |
Wenn das Argument auf true festgelegt ist, wird nicht auf den Abschluss der Erfassung gewartet. Nützlich beim Aufnehmen großer Mengen an Dateien und Blobs. |
|
| -Komprimierung, -cr | double | Komprimierungsverhältnis. Hilfreich beim Aufnehmen komprimierter Dateien und Blobs, um Azure Data Explorer bei der Bewertung der Rohdatengröße zu unterstützen. Wird als ursprüngliche Größe geteilt durch die komprimierte Größe berechnet. | |
| -limit, -l | integer | Wenn das Argument festgelegt ist, wird die Erfassung auf die ersten N Dateien beschränkt. | |
| -listOnly, -list | bool |
Wenn gesetzt, werden nur die Objekte angezeigt, die zur Aufnahme ausgewählt würden. | |
| -ingestTimeout | integer | Zeitlimit in Minuten für den Abschluss aller Erfassungsvorgänge. Wird standardmäßig auf 60 festgelegt. |
|
| -forceSync | bool |
Wenn das Argument festgelegt ist, wird die synchrone Erfassung erzwungen. Wird standardmäßig auf false festgelegt. |
|
| -interactive | bool |
Wenn dieser Parameter auf falsefestgelegt ist, werden keine Argumente bestätigt. Für unbeaufsichtigte Flüsse und nicht interaktive Umgebungen. Der Standardwert ist true. |
|
| -dataBatchSize | integer | Legt die Beschränkung der Gesamtgröße (MB, nicht komprimiert) für jeden Erfassungsvorgang fest. | |
| -filesInBatch | integer | Legt den Grenzwert für die Datei- und Blobanzahl der einzelnen Aufnahmevorgänge fest. | |
| -devTracing, -trace | string |
Wenn das Argument festgelegt ist, werden Diagnoseprotokolle in ein lokales Verzeichnis geschrieben (standardmäßig RollingLogs im aktuellen Verzeichnis, kann durch Festlegen des Schalterwerts geändert werden). |
Für Azure-Blobs spezifische Funktionen
Wenn Sie LightIngest mit Azure-Blobs verwenden, werden bestimmte Blobmetadateneigenschaften verwendet, um den Aufnahmeprozess zu verbessern.
| Metadateneigenschaft | Verbrauch |
|---|---|
rawSizeBytes, kustoUncompressedSizeBytes |
Bei Festlegung interpretiert LightIngest diese Eigenschaften als die nicht komprimierte Datengröße. |
kustoCreationTime, kustoCreationTimeUtc |
LightIngest interpretiert diese Eigenschaften als UTC-Zeitstempel. Wenn festgelegt, werden diese Eigenschaften verwendet, um die Erstellungszeit in Kusto außer Kraft zu setzen. Dieses Feature ist nützlich für Backfilling-Szenarien. |
Anwendungsbeispiele
In den folgenden Beispielen wird davon ausgegangen, dass Sie LightIngest-Binärdateien für Ihr Betriebssystem installiert haben. Wenn Sie LightIngest als .NET-Tool installiert haben, ersetzen Sie LightIngest durch LightIngest in den Beispielen.
Erfassen von historischen Daten mit der CreationTime-Eigenschaft
Wenn Sie Verlaufsdaten aus einem vorhandenen System in Azure Data Explorer laden, erhalten alle Datensätze das gleiche Aufnahmedatum. Verwenden Sie das -creationTimePattern Argument, um Ihre Daten zu partitionieren, indem Sie die Erstellungszeit anstelle der Erfassungszeit verwenden. Mit dem Argument -creationTimePattern wird die CreationTime-Eigenschaft aus dem Datei- oder Blobpfad extrahiert. Das Muster muss nicht den gesamten Elementpfad widerspiegeln, nur der Abschnitt, der den zu verwendenden Zeitstempel einschließt.
Die Argumentwerte müssen Folgendes enthalten:
- Konstanter Text direkt vor dem Zeitstempelformat, in einfache Anführungszeichen eingeschlossen (Präfix)
- Zeitstempelformat in der standardmäßigen .NET-DateTime-Notation
- Konstanter Text direkt nach dem Zeitstempel (Suffix)
Wichtig
Wenn Sie angeben, dass die Erstellungszeit überschrieben werden soll, stellen Sie sicher, dass die Lookback Eigenschaft in der effektiven Extents-Merge-Richtlinie der Zieltabelle mit den in Ihren Datei- oder BLOB-Pfaden angegebenen Werten übereinstimmt.
Beispiele
Ein Blobname, der Datum und Uhrzeit im folgenden Format enthält:
historicalvalues19840101.parquet. (Der Zeitstempel setzt sich aus vier Ziffern für das Jahr sowie jeweils zwei Ziffern für Monat und Tag zusammen.)Der Wert für das Argument
-creationTimePatternist Teil des Dateinamens: 'historicalvalues'yyyyMMdd'.parquet'.LightIngest "https://ingest-{Cluster name and region}.kusto.windows.net;Fed=True" -db:{Database} -table:Trips -source:"https://{Account}.blob.core.windows.net/{ROOT_CONTAINER};{StorageAccountKey}" -creationTimePattern:"'historicalvalues'yyyyMMdd'.parquet'" -pattern:"*.parquet" -format:parquet -limit:2 -cr:10.0 -dontWait:trueBei einem Blob-URI, der sich auf eine hierarchische Ordnerstruktur bezieht (etwa
https://storageaccount/mycontainer/myfolder/2002/12/01/blobname.extension):Der Wert für das Argument
-creationTimePatternist Teil der Ordnerstruktur: 'folder/'yyyy/MM/dd'/blob'.LightIngest "https://ingest-{Cluster name and region}.kusto.windows.net;Fed=True" -db:{Database} -table:Trips -source:"https://{Account}.blob.core.windows.net/{ROOT_CONTAINER};{StorageAccountKey}" -creationTimePattern:"'mycontainer/myfolder/'yyyy/MM/dd'/'" -pattern:"*.csv.gz" -format:csv -limit:2 -ignoreFirst:true -cr:10.0 -dontWait:true
Einlesen von Blobs mithilfe eines Speicherkontoschlüssels oder eines SAS-Tokens
- Erfassen von 10 Blobs unter dem angegebenen Speicherkonto
ACCOUNTim OrdnerDIRunter dem ContainerCONTund in Übereinstimmung mit dem Muster*.csv.gz - Ziel ist die Datenbank
DB, TabelleTABLE, und die ErfassungszuordnungMAPPING, die im Ziel vorab erstellt wurde. - Das Tool wartet, bis die Erfassungsvorgänge abgeschlossen wurden
- Beachten Sie die unterschiedlichen Optionen zum Angeben der Zieldatenbank und des Speicherkontoschlüssels im Vergleich zum SAS-Token
LightIngest "https://ingest-{ClusterAndRegion}.kusto.windows.net;Fed=True"
-database:DB
-table:TABLE
-source:"https://ACCOUNT.blob.core.windows.net/{ROOT_CONTAINER};{StorageAccountKey}"
-prefix:"DIR"
-pattern:*.csv.gz
-format:csv
-mappingRef:MAPPING
-limit:10
LightIngest "https://ingest-{ClusterAndRegion}.kusto.windows.net;Fed=True;Initial Catalog=DB"
-table:TABLE
-source:"https://ACCOUNT.blob.core.windows.net/{ROOT_CONTAINER}?{SAS token}"
-prefix:"DIR"
-pattern:*.csv.gz
-format:csv
-mappingRef:MAPPING
-limit:10
Erfassen aller Blobs in einem Container, ohne Headerzeilen
- Erfassen aller Blobs unter dem angegebenen Speicherkonto
ACCOUNTim OrdnerDIR1/DIR2unter dem ContainerCONTund in Übereinstimmung mit dem Muster*.csv.gz - Ziel ist die Datenbank
DB, TabelleTABLE, und die ErfassungszuordnungMAPPING, die im Ziel vorab erstellt wurde. - Die Quellblobs enthalten eine Headerzeile. Daher wird das Tool angewiesen, den ersten Datensatz jedes Blobs zu ignorieren.
- Das Tool stellt die Daten für die Erfassung bereit und wartet nicht, bis die Erfassungsvorgänge abgeschlossen wurden
LightIngest "https://ingest-{ClusterAndRegion}.kusto.windows.net;Fed=True"
-database:DB
-table:TABLE
-source:"https://ACCOUNT.blob.core.windows.net/{ROOT_CONTAINER}?{SAS token}"
-prefix:"DIR1/DIR2"
-pattern:*.csv.gz
-format:csv
-mappingRef:MAPPING
-ignoreFirstRow:true
Erfassen aller JSON-Dateien unter einem Pfad
- Einlesen aller Dateien unter dem Pfad
PATH, die dem Muster*.jsonentsprechen. - Festlegen des Ziels auf Datenbank
DB, TabelleTABLE, und Definieren der Ingestionszuordnung in der lokalen DateiMAPPING_FILE_PATH - Das Tool stellt die Daten für die Erfassung bereit und wartet nicht, bis die Erfassungsvorgänge abgeschlossen wurden
LightIngest "https://ingest-{ClusterAndRegion}.kusto.windows.net;Fed=True"
-database:DB
-table:TABLE
-source:"PATH"
-pattern:*.json
-format:json
-mappingPath:"MAPPING_FILE_PATH"
Dateien einlesen und Diagnosetracedateien schreiben
- Einlesen aller Dateien unter dem Pfad
PATH, die dem Muster*.jsonentsprechen. - Festlegen des Ziels auf Datenbank
DB, TabelleTABLE, und Definieren der Ingestionszuordnung in der lokalen DateiMAPPING_FILE_PATH - Das Tool stellt die Daten für die Erfassung bereit und wartet nicht, bis die Erfassungsvorgänge abgeschlossen wurden
- Lokales Schreiben von Diagnoseablaufverfolgungsdateien unter Ordner
LOGS_PATH
LightIngest "https://ingest-{ClusterAndRegion}.kusto.windows.net;Fed=True"
-database:DB
-table:TABLE
-source:"PATH"
-pattern:*.json
-format:json
-mappingPath:"MAPPING_FILE_PATH"
-trace:"LOGS_PATH"
Authentifizierung mit verwalteter Identität
LightIngest führt drei Aktionen aus, die verwaltete Identität für die Authentifizierung verwenden können. Die Verwendung der verwalteten Identität in jedem Schritt erfordert keine Verwendung der verwalteten Identität in anderen Schritten. Für jede Aktion wird das zugehörige Befehlszeilenargument angegeben.
Herstellen einer Verbindung mit dem Kusto-Cluster: Um die Aufnahme in die Warteschlange zu stellen, verwendet das Tool eine Verbindungszeichenfolge. Verwenden Sie das Argument „-mi“, um eine verwaltete Identität anzugeben, die auf der Client-VM installiert ist, die Erfassungsberechtigungen in der Zieldatenbank hat.
Herstellen einer Verbindung mit Azure Storage her zum Herunterzuladen von Blobs: Verwenden Sie „-ingestmi“, um eine verwaltete Identität anzugeben, die auf dem Kusto-Dienst mit Leseberechtigungen für den Speichercontainer installiert ist.
Herstellen einer Verbindung mit Azure Storage zum Auflisten von Container-Blobs: Verwenden Sie das Argument „-storageMi“, um eine verwaltete Identität anzugeben, die auf dem virtuellen Clientcomputer mit Listenrechten für den Speichercontainer installiert ist. Wenn Sie diese Methode verwenden, jedoch nicht die vorherige (Azure Storage-Verbindung zum Herunterladen von Blobs), muss die verwaltete Identität auch über Leseberechtigungen verfügen, und ein Token wird an den Kusto-Dienst übergeben, das für die Ingestion verwendet werden soll. Legen Sie alle drei Argumente fest.