Freigeben über


Erfassung aus dem Speicher

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

Mit dem Befehl .ingest into werden Daten in einer Tabelle erfasst, indem die Daten aus Cloudspeicherdateien gepullt werden. Beispielsweise kann der Befehl 1.000 CSV-formatierte Blobs aus Azure Blob Storage abrufen, diese analysieren und in einer einzelnen Zieltabelle zusammen aufnehmen. Daten werden ohne Auswirkungen auf vorhandene Datensätze und ohne Änderung des Tabellenschemas an die Tabelle angefügt.

Hinweis

Diese Aufnahmemethode ist für Die Erforschung und Prototyperstellung vorgesehen. Verwenden Sie sie nicht in Produktions- oder Volumenszenarien.

Hinweis

Diese Aufnahmemethode ist für Die Erforschung und Prototyperstellung vorgesehen. Verwenden Sie sie nicht in Produktions- oder Volumenszenarien. Weitere Informationen zu Aufnahmeoptionen finden Sie unter Datenaufnahmeübersicht.

Berechtigungen

Sie müssen mindestens über Die Berechtigungen "Table Ingestor " verfügen, um diesen Befehl auszuführen.

Syntax

.ingest [async] intotableTableNameSourceDataLocator [with(IngestionPropertyName=IngestionPropertyValue [, ...] )]

Erfahren Sie mehr über Syntaxkonventionen.

Parameter

Name Type Erforderlich Beschreibung
async string Wenn angegeben, gibt der Befehl sofort zurück und setzt die Aufnahme im Hintergrund fort. Die Ergebnisse des Befehls enthalten einen OperationId Wert, der dann mit dem .show operation Befehl verwendet werden kann, um den Status und die Ergebnisse des Aufnahmeabschlusses abzurufen.
TableName string ✔️ Der Name der Tabelle, in die Daten aufgenommen werden sollen. Der Tabellenname ist immer relativ zur Datenbank im Kontext. Wenn kein Schemazuordnungsobjekt bereitgestellt wird, wird das Schema der Datenbank im Kontext verwendet.
SourceDataLocator string ✔️ Eine einzelne oder durch Kommas getrennte Liste von Speicher Verbindungszeichenfolge s. Eine einzelne Verbindungszeichenfolge muss auf eine einzelne Datei verweisen, die von einem Speicherkonto gehostet wird. Die Erfassung mehrerer Dateien kann durch Angeben mehrerer Verbindungszeichenfolge oder durch Aufnahme aus einer Abfrage einer externen Tabelle erfolgen.

Hinweis

Es wird empfohlen, verschleierte Zeichenfolgenliterale für die SourceDataLocators zu verwenden. Der Dienst bereinigt Anmeldeinformationen in internen Ablaufverfolgungen und Fehlermeldungen.

Erfassungseigenschaften

Wichtig

In der Warteschlange gespeicherte Erfassungsdaten 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.

In der folgenden Tabelle werden die unterstützten Eigenschaften aufgelistet und beschrieben und Beispiele bereitgestellt:

Eigenschaft Beschreibung Beispiel
ingestionMapping Ein Zeichenfolgenwert, der angibt, wie Daten aus der Quelldatei den tatsächlichen Spalten in der Tabelle zugeordnet werden sollen. Definieren Sie den Wert format mit dem entsprechenden Zuordnungstyp. Weitere Informationen finden Sie unter Data mappings (Datenzuordnungen). with (format="json", ingestionMapping = "[{\"column\":\"rownumber\", \"Properties\":{\"Path\":\"$.RowNumber\"}}, {\"column\":\"rowguid\", \"Properties\":{\"Path\":\"$.RowGuid\"}}]")
(veraltet: avroMapping, csvMapping, jsonMapping)
ingestionMappingReference Ein Zeichenfolgenwert, der angibt, wie Daten aus der Quelldatei den tatsächlichen Spalten in der Tabelle zugeordnet werden sollen (unter Verwendung eines benannten Zuordnungsrichtlinienobjekts). Definieren Sie den Wert format mit dem entsprechenden Zuordnungstyp. Weitere Informationen finden Sie unter Data mappings (Datenzuordnungen). with (format="csv", ingestionMappingReference = "Mapping1")
(veraltet: avroMappingReference, csvMappingReference, jsonMappingReference)
creationTime Der datetime-Wert (formatiert als ISO8601-Zeichenfolge), der zum Zeitpunkt der Erstellung der erfassten Datenerweiterungen verwendet werden soll. Wenn nicht angegeben, wird der aktuelle Wert (now()) verwendet. Das Überschreiben des Standardwerts ist beim Aufnehmen älterer Daten hilfreich, sodass die Aufbewahrungsrichtlinie ordnungsgemäß angewendet wird. Achten Sie bei Angabe eines Werts darauf, dass die Eigenschaft Lookback in der effektiven Richtlinie für die Zusammenführung von Blöcken der Zieltabelle auf den angegebenen Wert abgestimmt ist. with (creationTime="2017-02-13")
extend_schema Ein boolescher Wert, der den Befehl anweist, das Schema der Tabelle zu erweitern (Standardwert: false). Diese Option betrifft nur die Befehle .append und .set-or-append. Die einzigen zulässigen Schemaerweiterungen verfügen über weitere Spalten, die der Tabelle am Ende hinzugefügt werden. Wenn das ursprüngliche Tabellenschema (a:string, b:int) lautet, wäre (a:string, b:int, c:datetime, d:string) eine gültige Schemaerweiterung, (a:string, c:datetime) dagegen nicht.
folder Für ingest-from-query-Befehle der Ordner, der der Tabelle zugewiesen werden soll. Wenn die Tabelle bereits vorhanden ist, setzt diese Eigenschaft den Ordner der Tabelle außer Kraft. with (folder="Tables/Temporary")
format Das Datenformat (siehe Unterstützte Datenformate). with (format="csv")
ingestIfNotExists Ein Zeichenfolgenwert, der eine erfolgreiche Erfassung verhindert, wenn die Tabelle bereits Daten enthält, die mit einem Tag vom Typ ingest-by: mit identischem Wert gekennzeichnet sind. Dadurch wird die idempotente Datenerfassung sichergestellt. Weitere Informationen finden Sie unter ingest-by: Tags. Die Eigenschaften with (ingestIfNotExists='["Part0001"]', tags='["ingest-by:Part0001"]') geben an, dass die aktuelle Erfassung nicht ausgeführt werden soll, wenn bereits Daten mit dem Tag ingest-by:Part0001 vorhanden sind. Sind noch keine vorhanden, wird das Tag für diese neue Erfassung festgelegt (für den Fall, dass bei einer zukünftigen Erfassung versucht wird, die gleichen Daten zu erfassen).
ignoreFirstRecord Ein boolescher Wert. Bei true wird bei der Erfassung jeweils der erste Datensatz der Datei ignoriert. Diese Eigenschaft ist hilfreich bei Dateien im CSV-Format und ähnlichen Formaten, wenn es sich beim ersten Datensatz in der Datei um die Spaltennamen handelt. Standardmäßig wird false verwendet. with (ignoreFirstRecord=false)
policy_ingestiontime Ein boolescher Wert, der angibt, ob die IngestionTime-Richtlinie für eine Tabelle aktiviert werden soll, die durch diesen Befehl erstellt wird. Der Standardwert lautet true. with (policy_ingestiontime=false)
recreate_schema Ein boolescher Wert, der angibt, ob der Befehl das Schema der Tabelle neu erstellen darf. Diese Eigenschaft gilt nur für den Befehl .set-or-replace. Sie hat Vorrang vor der extend_schema-Eigenschaft, wenn beide festgelegt sind. with (recreate_schema=true)
tags Eine Liste der Tags, die den erfassten Daten zugeordnet werden sollen (formatiert als JSON-Zeichenfolge). with (tags="['Tag1', 'Tag2']")
TreatGzAsUncompressed Ein boolescher Wert, der, falls festgelegt true, angibt, dass Dateien mit der Erweiterung .gz nicht komprimiert werden. Diese Kennzeichnung wird manchmal benötigt, wenn Sie von Amazon AWS S3 aufgenommen werden. with (treatGzAsUncompressed=true)
validationPolicy Eine JSON-Zeichenfolge, die angibt, welche Überprüfungen während der Erfassung von Daten ausgeführt werden sollen, die im CSV-Format dargestellt werden. Eine Beschreibung der verschiedenen Optionen finden Sie unter Datenerfassung. with (validationPolicy='{"ValidationOptions":1, "ValidationImplications":1}') (dies ist die Standardrichtlinie)
zipPattern Verwenden Sie diese Eigenschaft, wenn Sie Daten aus einem Speicher erfassen, der ein ZIP-Archiv enthält. Dieser Zeichenfolgenwert gibt den regulären Ausdruck an, der zum Auswählen der zu erfassenden Dateien im ZIP-Archiv verwendet werden soll. Alle anderen Dateien im Archiv werden ignoriert. with (zipPattern="*.csv")

Authentifizierung und Autorisierung

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 Aufnahme durchzuführen.

In der folgenden Tabelle sind die unterstützten Authentifizierungsmethoden und die Berechtigungen aufgeführt, die zum Aufnehmen von Daten aus externem Speicher erforderlich sind.

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.
Verwaltete Identität Leser von Speicherblobdaten Leser

Gibt zurück

Das Ergebnis des Befehls ist eine Tabelle mit so vielen Datensätzen, wie Datenshards („Blöcke“) vom Befehl generiert werden. Wenn keine Datensharders generiert wurden, wird ein einzelner Datensatz mit einer leeren (nullwertigen) Erweiterungs-ID zurückgegeben.

Name Type Beschreibung
ExtentId guid Der eindeutige Bezeichner für den vom Befehl generierten Datenshard
ItemLoaded string Mindestens eine Speicherdatei, die mit diesem Datensatz verknüpft ist
Duration timespan Zeit für die Ausführung der Erfassung
HasErrors bool Gibt an, ob dieser Datensatz einen Aufnahmefehler darstellt.
OperationId guid Eine eindeutige ID, die den Vorgang darstellt. Kann mit dem Befehl .show operation verwendet werden.

Hinweis

Mit diesem Befehl wird das Schema der Tabelle, in die aufgenommen wird, nicht geändert. Bei Bedarf werden die Daten während der Erfassung in dieses Schema „umgewandelt“, nicht umgekehrt. (Zusätzliche Spalten werden ignoriert, und fehlende Spalten werden als NULL-Werte behandelt.)

Beispiele

Azure Blob Storage mit freigegebener Zugriffssignatur

Im folgenden Beispiel wird Ihre Datenbank angewiesen, zwei Blobs aus Azure Blob Storage als CSV-Dateien zu lesen und deren Inhalt in eine Tabelle Taufzunehmen. ... stellt eine Azure Storage Shared Access Signature (SAS) dar, die Lesezugriff auf jedes Blob gewährt. Verschleierte Zeichenfolgen (die h vor den Zeichenfolgenwerten) werden verwendet, um sicherzustellen, dass die SAS nie aufgezeichnet wird.

.ingest into table T (
    h'https://contoso.blob.core.windows.net/container/file1.csv?...',
    h'https://contoso.blob.core.windows.net/container/file2.csv?...'
)

Azure Blob Storage mit verwalteter Identität

Das folgende Beispiel zeigt, wie Sie eine CSV-Datei aus Azure Blob Storage lesen und deren Inhalte mithilfe der verwalteten Identitätsauthentifizierung in eine Tabelle T aufnehmen. Die Authentifizierung verwendet die verwaltete Identitäts-ID (Objekt-ID), die azure Blob Storage in Azure zugewiesen ist. Weitere Informationen finden Sie unter Erstellen einer verwalteten Identität für Speichercontainer.

.ingest into table T ('https://StorageAccount.blob.core.windows.net/Container/file.csv;managed_identity=802bada6-4d21-44b2-9d15-e66b29e4d63e')

Azure Data Lake Storage Gen2

Das folgende Beispiel dient zum Aufnehmen von Daten aus Azure Data Lake Storage Gen 2 (ADLSv2). Die hier verwendeten Anmeldeinformationen (...) sind die Anmeldeinformationen des Speicherkontos (gemeinsam verwendeter Schlüssel), und die Zeichenfolgenverschleierung wird nur für den geheimen Teil der Verbindungszeichenfolge verwendet.

.ingest into table T (
  'abfss://myfilesystem@contoso.dfs.core.windows.net/path/to/file1.csv;...'
)

Azure Data Lake Storage

Im folgenden Beispiel wird eine einzelne Datei aus Azure Data Lake Storage (ADLS) aufgenommen. Dabei werden die Anmeldeinformationen des Benutzers für den Zugriff auf ADLS genutzt (sodass der Speicher-URI nicht so behandelt werden muss, als enthielte er ein Geheimnis). Außerdem wird gezeigt, wie Erfassungseigenschaften angegeben werden.

.ingest into table T ('adl://contoso.azuredatalakestore.net/Path/To/File/file1.ext;impersonate')
  with (format='csv')

Amazon S3 mit zugriffstaste

Im folgenden Beispiel wird eine einzelne Datei von Amazon S3 mithilfe einer Zugriffstasten-ID und eines geheimen Zugriffsschlüssels aufgenommen.

.ingest into table T ('https://bucketname.s3.us-east-1.amazonaws.com/path/to/file.csv;AwsCredentials=AKIAIOSFODNN7EXAMPLE,wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY')
  with (format='csv')

Amazon S3 mit einer vorsignierten URL

Im folgenden Beispiel wird eine einzelne Datei von Amazon S3 mithilfe einer preSigned-URL aufgenommen.

.ingest into table T ('https://bucketname.s3.us-east-1.amazonaws.com/file.csv?<<pre signed string>>')
  with (format='csv')