Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
LightIngest é um utilitário de linha de comando para ingestão de dados ad-hoc no Azure Data Explorer. O utilitário pode extrair dados de origem de uma pasta local, um contêiner de armazenamento de blob do Azure ou um bucket do Amazon S3.
LightIngest é mais útil quando você deseja ingerir uma grande quantidade de dados, porque não há restrição de tempo na duração da ingestão. Também é útil quando você deseja consultar registros posteriormente de acordo com o tempo em que foram criados e não com o tempo em que foram ingeridos.
Para obter um exemplo de como gerar automaticamente um comando LightIngest, consulte ingerir dados históricos.
Observação
A ingestão suporta um tamanho máximo de ficheiro de 6 GB. A recomendação é ingerir arquivos entre 100 MB e 1 GB.
Pré-requisitos
- LightIngest Obtenha o LightIngest de duas maneiras:
Faça o download dos binários LightIngest para o seu sistema operacional. Certifique-se de descompactar os binários após o download.
Instale o LightIngest como uma ferramenta .NET. Esse método requer que você tenha o .NET SDK versão 6.0 ou superior instalado em sua máquina. Em seguida, execute o seguinte comando:
dotnet tool install -g Microsoft.Azure.Kusto.LightIngest
Observação
Considere usar os comandos de ingestão em fila, pois não requerem a instalação de software.
Executar LightIngest
Para executar LightIngest:
No prompt de comando, digite
LightIngestseguido pelo argumento de linha de comando relevante.Sugestão
Para obter uma lista de argumentos de linha de comando suportados, digite
LightIngest /help.Enter
ingest-seguido da cadeia de conexão para o cluster do Azure Data Explorer que gerencia a ingestão. Coloque a cadeia de conexão entre aspas duplas e siga a especificação de cadeias de conexão Kusto.Por exemplo:
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
Recomendações de desempenho
Para melhor administrar a carga de ingestão e recuperar-se de erros transitórios, utilize o ponto de extremidade de ingestão em
https://ingest-{yourClusterNameAndRegion}.kusto.windows.net.Para um desempenho de ingestão ideal, o LightIngest precisa do tamanho dos dados brutos para que possa estimar o tamanho não compactado dos arquivos locais. No entanto, o LightIngest pode não ser capaz de estimar corretamente o tamanho bruto dos blobs compactados sem primeiro baixá-los. Portanto, ao ingerir blobs compactados, defina a
rawSizeBytespropriedade nos metadados de blob como tamanho de dados não compactados em bytes.
Argumentos de linha de comando
| Argument | Tipo | Description | Obrigatório |
|---|---|---|---|
string |
Uma cadeia de conexão Kusto especificando o ponto de extremidade Kusto que manipula a ingestão. Coloque este valor entre aspas duplas. | ✔️ | |
| -base de dados, -db | string |
O nome do banco de dados do Azure Data Explorer de destino. | |
| -tabela | string |
O nome da tabela do Azure Data Explorer de destino. | ✔️ |
| -sourcePath, -source | string |
O local dos dados de origem, que podem ser um caminho de arquivo local, o URI raiz de um contêiner de blob do Azure ou o URI de um bucket do Amazon S3. Se os dados forem armazenados em blobs do Azure, o URI deverá incluir a chave da conta de armazenamento ou a Assinatura de Acesso Compartilhado (SAS). Se os dados estiverem em um bucket do S3, o URI deverá incluir a chave de credencial. Coloque este valor entre aspas duplas. Para obter mais informações, consulte Cadeias de conexão de armazenamento. Passe -sourcePath:;impersonate para listar itens de armazenamento do Azure com permissões de usuário (autorização de prompt do usuário). | ✔️ |
| -Identidade gerida, -mi | string |
ID do cliente da identidade gerenciada (atribuída pelo usuário ou atribuída pelo sistema) a ser usada para conexão. Utilize "system" para uma identidade atribuída ao sistema. | |
| -azCli | bool |
Se definido, usa a CLI do Azure para autenticar no serviço Kusto. A CLI do Azure deve ser instalada e conectada. | |
| -ingerirComIdentidadeGerida, -ingestmi | string |
ID do cliente da identidade gerenciada (atribuída pelo usuário ou atribuída pelo sistema) instalada no serviço Kusto para download do armazenamento. Utilize "system" para uma identidade atribuída ao sistema. | |
| -connectToStorageWithManaged Identity, -storageMi | string |
Identificador do cliente da identidade gerenciada (atribuída pelo utilizador ou atribuída pelo sistema) instalada no cliente para listar no armazenamento. | |
| -connectToStorageWithUserAuth, -storageUserAuth | string |
Autentique-se no serviço de armazenamento da fonte de dados com credenciais de usuário. As opções para este valor são PROMPT ou DEVICE_CODE. |
|
| -connectToStorageLoginUri, -storageLoginUri | string |
Se -connectToStorageWithUserAuth estiver definido, você pode, opcionalmente, fornecer um URI de entrada do Microsoft Entra ID. |
|
| -prefixo | string |
Quando os dados de origem a serem ingeridos residem no armazenamento de blobs, esse prefixo de URL é compartilhado por todos os blobs, excluindo o nome do contêiner. Por exemplo, se os dados estiverem em MyContainer/Dir1/Dir2, o prefixo deve ser Dir1/Dir2. Coloque este valor entre aspas duplas. |
|
| -padrão | string |
Padrão pelo qual os arquivos de origem e blobs são selecionados. Suporta curingas. Por exemplo, "*.csv". Coloque este valor entre aspas duplas. |
|
| -zipPattern | string |
Expressão regular a ser usada ao selecionar quais arquivos em um arquivo ZIP devem ser ingeridos. Todos os outros arquivos no arquivo são ignorados. Por exemplo, "*.csv". Coloque este valor entre aspas duplas. |
|
| -format, -f | string |
Formato dos dados de origem. Deve ser um dos formatos suportados | |
| -ingestionMappingPath, -mappingPath | string |
Um caminho para um arquivo local para mapeamento de coluna de ingestão. Veja mapeamentos de dados. | |
| -ingestionMappingRef, -mappingRef | string |
O nome de um mapeamento de coluna de ingestão que você criou anteriormente na tabela. Veja mapeamentos de dados. | |
| -creationTimePattern | string |
Quando definido, é usado para extrair a propriedade CreationTime do caminho de arquivo ou blob. Consulte como ingerir dados utilizando CreationTime. |
|
| -ignorarPrimeiraLinha, -ignorarPrimeiro | bool |
Se definido, o primeiro registro de cada arquivo ou blob será ignorado. Por exemplo, se os dados de origem tiverem cabeçalhos. | |
| "-etiqueta" | string |
Tags para associar aos dados ingeridos. São permitidas múltiplas ocorrências | |
| -nãoEsperar | bool |
Se definido como true, não espera pela conclusão da ingestão. Útil ao ingerir grandes quantidades de ficheiros e blobs. |
|
| -compressão, -cr | duplo | Indicação de taxa de compressão. Útil ao ingerir arquivos compactados e blobs para ajudar o Azure Data Explorer a avaliar o tamanho dos dados brutos. Calculado como tamanho original dividido pelo tamanho comprimido. | |
| -limite, -l | número inteiro | Se definido, limita a ingestão aos primeiros arquivos N . | |
| -listOnly, -list | bool |
Se definido, exibe apenas os itens que seriam selecionados para ingestão. | |
| -ingestTimeout (tempo limite de ingestão) | número inteiro | Tempo limite em minutos para a conclusão de todas as operações de ingestão. O padrão é 60. |
|
| -forceSync | bool |
Se definido, força a ingestão síncrona. O padrão é false. |
|
| -interativo | bool |
Se definido como false, não solicita a confirmação de argumentos. Para fluxos autônomos e ambientes não interativos. A predefinição é true. |
|
| -dataBatchSize | número inteiro | Define o limite de tamanho total (MB, descompactado) de cada operação de ingestão. | |
| -filesInBatch | número inteiro | Define-se o limite de contagem de ficheiros e blobs de cada operação de ingestão. | |
| -DevTracing, -trace | string |
Se definido, os logs de diagnóstico são gravados em um diretório local (por padrão, RollingLogs no diretório atual, ou podem ser modificados definindo o valor do switch). |
Recursos específicos de blob do Azure
Quando você usa o LightIngest com blobs do Azure, ele usa determinadas propriedades de metadados de blob para aprimorar o processo de ingestão.
| Propriedade de metadados | Usage |
|---|---|
rawSizeBytes, kustoUncompressedSizeBytes |
Se definido, LightIngest interpreta essas propriedades como o tamanho de dados não compactados |
kustoCreationTime, kustoCreationTimeUtc |
LightIngest interpreta essas propriedades como carimbo de data/hora UTC. Se estiver definido, ele usa essas propriedades para substituir a hora de criação no Kusto. Este recurso é útil para cenários de preenchimento retroativo. |
Exemplos de utilização
Os exemplos a seguir pressupõem que você instalou binários LightIngest para seu sistema operacional. Se você instalou o LightIngest como uma ferramenta .NET, substitua LightIngest por LightIngest nos exemplos.
Ingerir dados históricos com a propriedade CreationTime
Quando você carrega dados históricos de um sistema existente no Azure Data Explorer, todos os registros obtêm a mesma data de ingestão. Para particionar seus dados por tempo de criação em vez de tempo de ingestão, use o -creationTimePattern argumento. O -creationTimePattern argumento extrai a CreationTime propriedade do caminho de um ficheiro ou blob. O padrão não precisa refletir todo o caminho do item, apenas a seção que inclui o carimbo de data/hora que você deseja usar.
Os valores de argumento devem incluir:
- Texto fixo imediatamente anterior ao formato de carimbo de data/hora, entre aspas simples (prefixo)
- O formato de data/hora, na notação padrão .NET DateTime
- Texto constante imediatamente após o carimbo de data/hora (sufixo).
Importante
Ao especificar que o tempo de criação deve ser substituído, certifique-se de que a propriedade Lookback na política de mesclagem efetiva Extents da tabela de destino esteja alinhada com os valores nos seus caminhos de ficheiro ou blob.
Examples
Um nome de blob que contém a data e hora da seguinte forma:
historicalvalues19840101.parquet(a data é composta por quatro dígitos para o ano, dois dígitos para o mês e dois dígitos para o dia do mês).O valor para
-creationTimePatternargumento faz parte do nome do arquivo: "'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:truePara um URI de blob que se refere à estrutura hierárquica de pastas, como
https://storageaccount/mycontainer/myfolder/2002/12/01/blobname.extension,O valor para
-creationTimePatternargumento faz parte da estrutura de pastas: "'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
Ingerir blobs usando uma chave de conta de armazenamento ou um token SAS
- Ingerir 10 blobs na conta
ACCOUNT, de armazenamento especificada, na pastaDIR, no contentorCONTe que correspondem ao padrão*.csv.gz - O destino é o banco de dados
DB, a tabelaTABLEe o mapeamentoMAPPINGde ingestão é pré-criado no destino - A ferramenta aguarda até que as operações de ingestão sejam concluídas
- Observe as diferentes opções para especificar o banco de dados de destino e a chave da conta de armazenamento versus o token SAS
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
Ingerir todos os blobs num contentor, não incluindo linhas de topo
- Ingerir todos os blobs na conta
ACCOUNTde armazenamento especificada, na pastaDIR1/DIR2, no containerCONTe correspondendo ao padrão*.csv.gz - O destino é o banco de dados
DB, a tabelaTABLEe o mapeamentoMAPPINGde ingestão é pré-criado no destino - Os blobs de origem contêm linha de cabeçalho, portanto, a ferramenta é instruída a soltar o primeiro registro de cada blob
- A ferramenta publica os dados para ingestão e não espera que as operações de ingestão sejam concluídas
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
Ingerir todos os arquivos JSON de um caminho
- Ingerir todos os arquivos no caminho
PATHque correspondem ao padrão*.json - Defina o destino como banco de dados
DB, tabelaTABLEe defina o mapeamento de ingestão no arquivo localMAPPING_FILE_PATH - A ferramenta publica os dados para ingestão e não espera que as operações de ingestão sejam concluídas
LightIngest "https://ingest-{ClusterAndRegion}.kusto.windows.net;Fed=True"
-database:DB
-table:TABLE
-source:"PATH"
-pattern:*.json
-format:json
-mappingPath:"MAPPING_FILE_PATH"
Ingerir arquivos e gravar arquivos de rastreamento de diagnóstico
- Ingerir todos os arquivos no caminho
PATHque correspondem ao padrão*.json - Defina o destino como banco de dados
DB, tabelaTABLEe defina o mapeamento de ingestão no arquivo localMAPPING_FILE_PATH - A ferramenta publica os dados para ingestão e não espera que as operações de ingestão sejam concluídas
- Gravar ficheiros de rastreio de diagnóstico localmente na pasta
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"
Autenticar com identidade gerida
O LightIngest executa três ações que podem usar a identidade gerenciada para autenticação. O uso de identidade gerenciada em cada etapa não requer o uso de identidade gerenciada em outras etapas. Para cada ação, o argumento de linha de comando relacionado é fornecido.
Conectar-se ao cluster Kusto: Para enfileirar a ingestão, a ferramenta usa uma cadeia de conexão. Use o argumento "-mi" para especificar uma identidade gerenciada instalada na VM cliente que tenha privilégios de ingestão no banco de dados de destino.
Conectar-se ao Armazenamento do Azure para baixar blobs: use "-ingestmi" para especificar uma identidade gerenciada instalada no serviço Kusto que tenha privilégios de leitura no contêiner de armazenamento.
Conectar-se ao Armazenamento do Azure para listar blobs de contêiner: use o argumento "-storageMi" para especificar uma identidade gerenciada instalada na VM cliente que tenha privilégios de lista no contêiner de armazenamento. Se você usar esse método, mas não o anterior (conectar-se ao armazenamento do Azure para baixar blobs), a identidade gerenciada também deve ter privilégios de leitura e um token é passado para o serviço Kusto para ser usado para a ingestão. Defina os três argumentos.