全部产品
Search
文档中心

日志服务:导入Azure Blob 文件

更新时间:Mar 13, 2026

通过日志服务的数据导入功能,您可以将Azure Blob中的日志文件导入到日志服务,实现集中化的日志管理、查询和分析。目前只支持导入单个大小不超过5 GB的Azure Blob文件(压缩文件按压缩后的大小计算)。

重要

本文档为阿里云原创,知识产权归阿里云所有。由于本文档旨在介绍阿里云与第三方产品交互的服务能力,因此可能会提及第三方公司或其产品名称。

前提条件

创建数据导入配置

  1. 登录日志服务控制台

  2. 接入数据区域的数据导入页签中,选择AzureBlob - 数据导入

  3. 选择目标Project和LogStore,单击下一步

  4. 导入配置中,设置如下参数:

    参数

    说明

    任务名称

    SLS任务的唯一名称

    显示名称

    任务的显示名称

    任务描述

    导入任务的描述

    ContainerName

    Azure Blob Container名称

    AccountName

    Azure Blob 账户名称

    AccountKey

    Azure Blob 密钥

    AzureBlob Endpoint

    Azure Blob服务入口。

    说明

    非公共云环境需填入Endpoint。如:Azure中国云填入 https://<your ContainerName>.blob.core.chinacloudapi.cn

    文件路径前缀过滤

    通过文件路径前缀过滤Azure Blob文件,用于准确定位待导入的文件。例如待导入的文件都在csv/目录下,则可以指定前缀为csv/。

    如果不设置该参数,则遍历整个Azure Blob Container。

    说明

    建议设置该参数。当Container中的文件数量非常多时,全量遍历将导致数据导入效率非常低。

    文件路径正则过滤

    通过文件路径的正则表达式过滤Azure Blob文件,用于准确定位待导入的文件。只有文件名(包含文件路径)匹配该正则表达式的文件才会被导入。默认为空,表示不过滤。

    例如Azure Blob文件为testdata/csv/bill.csv,您可以设置正则表达式为(testdata/csv/)(.*)

    调整正则表达式的方法,请参见如何调试正则表达式

    文件修改时间过滤

    通过文件修改时间过滤Azure Blob文件,用于准确定位待导入的文件。

    • 所有:如果您想导入所有符合条件的文件,请选择该项。

    • 某时间开始:如果您想导入某个时间点后修改过的文件,请选择该项。

    • 特定时间范围:如果您想导入某个时间范围内修改过的文件,请选择该项。

    数据格式

    文件的解析格式,如下所示。

    • CSV:分隔符分割的文本文件,支持指定文件中的首行为字段名称或手动指定字段名称。除字段名称外的每一行都会被解析为日志字段的值。

    • 单行JSON:逐行读取Azure Blob文件,将每一行看做一个JSON对象进行解析。解析后,JSON对象中的各个字段对应为日志中的各个字段。

    • 单行文本日志:将Azure Blob文件中的每一行解析为一条日志。

    • 跨行文本日志:多行模式,支持指定首行或者尾行的正则表达式解析日志。

    压缩格式

    待导入的Azure Blob文件的压缩格式,日志服务根据对应格式进行解压并读取数据。

    编码格式

    待导入的Azure Blob文件的编码格式。目前仅支持UTF-8和GBK。

    检查新文件周期

    如果目标Azure Blob文件路径中不断有新文件产生,您可以根据需求设置检查新文件周期。设置后,导入任务会一直在后台运行,自动周期性地发现并读取新文件(后台保证不会将同一个Azure Blob文件中的数据重复写入到日志服务)。

    如果目标Azure Blob文件路径中不再产生新文件,请修改为永不检查,即导入任务读取完所有符合条件的文件后,将自动退出。

    日志时间配置

    时间字段

    当选择数据格式CSV单行JSON时,您可以设置一个时间字段,即设置为文件中代表时间的列名,用于指定导入日志到日志服务时的时间。

    提取时间正则

    您可以使用正则表达式提取日志中的时间。

    例如日志样例为127.0.0.1 - - [10/Sep/2018:12:36:49 0800] "GET /index.html HTTP/1.1"时,则您可以设置提取时间正则[0-9]{0,2}\/[0-9a-zA-Z]+\/[0-9:,]+

    说明

    针对其他类型的数据格式,如果您只需提取时间字段中的部分内容,也可通过正则表达式提取。

    时间字段格式

    指定时间格式,用于解析时间字段的值。

    • 支持Java SimpleDateFormat语法的时间格式,例如yyyy-MM-dd HH:mm:ss。时间格式的语法详情,请参见Class SimpleDateFormat。常见的时间格式,请参见时间格式

    • 支持epoch格式,包括epoch、epochMillis、epochMicro和epochNano。

    时间字段分区

    选择时间字段对应的时区。当时间字段格式为epoch类别时,不需要设置时区。

    如果解析日志时间需要考虑夏令时,可以选择UTC格式;否则,选择GMT格式。

    说明

    默认使用东八区时间。

    当选择数据格式CSV时,需要额外设置相关参数,具体说明如下表所示。

    • CSV特有参数

      参数

      说明

      分隔符

      设置日志的分隔符,默认值为半角逗号(,)。

      引号

      CSV字符串所使用的引号字符。

      转义符

      配置日志的转义符,默认值为反斜线(\)。

      日志最大跨行数

      打开首行作为字段名称开关后,将使用CSV文件中的首行作为字段名称。

      自定义字段列表

      关闭首行作为字段名称开关后,请根据需求自定义日志字段名称,多个字段名称之间用半角逗号(,)隔开。

      跳过行数

      指定跳过的日志行数。例如设置为1,则表示从CSV文件中的第2行开始采集日志。

    • 跨行文本日志特有参数

      参数

      说明

      正则匹配位置

      设置正则表达式匹配的位置,具体说明如下:

      • 首行正则:使用正则表达式匹配一条日志的行首,未匹配部分为该条日志的一部分,直到达到最大行数。

      • 尾行正则:使用正则表达式匹配一条日志的行尾,未匹配部分为下一条日志的一部分,直到达到最大行数。

      正则表达式

      根据日志内容,设置正确的正则表达式。

      调整正则表达式的方法,请参见如何调试正则表达式

      最大行数

      一条日志的最大行数。

  5. 单击预览,预览导入结果。

  6. 确认无误后,单击下一步

  7. 预览数据及创建索引,然后单击下一步

    日志服务默认开启全文索引。您也可以根据采集到的日志手动创建字段索引,或者单击自动生成索引,日志服务将自动生成字段索引。

    重要

    如果您要查询和分析日志,那么全文索引和字段索引必须至少启用一种。同时启用时,以字段索引为准。

查看导入配置

创建导入配置成功后,您可以在控制台中查看已创建的导入配置及生成的统计报表。

  1. 在Project列表区域,单击目标Project。

  2. 日志存储 > 日志库中,选择目标日志库下的数据接入 > 数据导入,单击配置名称。

  3. 查看导入配置的基本信息和统计报表。

  4. 您还可以修改配置、开始或停止导入、删除配置 。

    警告

    删除配置后不可恢复,请谨慎操作。

费用说明

日志服务不针对导入功能收取费用,但导入功能需要访问服务商API,会产生对应的流量费用和请求费用。相关计价模型如下,具体的费用以服务商账单为准。

image

字段

说明

T

每天导入的总数据量,单位:GB。

p_read

每GB数据的外网流出费用。

p_put

每万次的Put类型请求费用。

p_get

每万次的Get类型请求费用。

新文件检查周期,单位:分钟。

您可以在创建数据导入配置时,设置检查新文件周期

N

Container中根据前缀可列出的文件数量。

常见问题

问题

可能原因

解决方法

预览时显示无数据。

Azure Blob中没有文件、文件中没有数据或者没有符合过滤条件的文件。

  • 检查Container下是否存在非空文件(CSV文件是否仅包含headers行)。如果不存在有数据的文件,则可以等待文件有数据后再进行导入。

  • 调整文件路径、时间过滤等配置项。

数据中存在乱码。

数据格式、压缩格式或编码格式配置不符合预期。

确认Azure Blob文件的真实格式,然后调整数据格式、压缩格式或编码格式等配置项。

如果需要修复已有的乱码数据,请创建新的LogStore和导入配置。

日志服务中显示的数据时间和数据本身的时间不一致。

设置导入配置时,没有指定日志时间字段或者设置时间格式、时区有误。

设置指定的日志时间字段以及正确的时间格式和时区。

导入数据后,无法查询和分析数据。

  • 数据不在查询范围内。

  • 未配置索引。

  • 索引未生效。

  • 检查待查询数据的时间是否在查询时间范围内。

    如果不在查询范围内,请调整查询范围并重新查询。

  • 检查是否已为LogStore设置索引。

    如果未设置,请先创建索引

  • 如果已设置索引,且数据处理流量观测仪表盘中显示的成功导入数据量符合预期,则可能原因是索引未生效,请尝试重建索引

导入的数据条目数量少于预期。

部分文件存在单行数据大小超过3 MB的数据,导致数据在导入过程中被丢弃。更多信息,请参见采集限制

写入数据到Azure Blob文件时,避免单行数据大小超过3 MB。

文件数量和总数据量都很大,但导入数据的速度不及预期(正常情况下,可达到80 MB/s)。

LogStore Shard数量过少。更多信息,请参见性能限制

LogStore Shard数量较少时,请尝试增加Shard的个数(10个及以上),并观察延迟情况。具体操作,请参见管理Shard

部分文件没有导入。

过滤条件设置存在问题或者存在单个文件大小超出5 GB的文件。更多信息,请参见采集限制

  • 检查待导入的文件是否符合过滤条件。如果不符合,请修改过滤条件。

  • 确认待导入文件的大小都小于5 GB。

    如果超过5 GB,请缩小单个文件的大小。

多行文本日志解析错误。

首行正则表达式或尾行正则表达式设置错误。

检查首行正则表达式或尾行正则表达式的正确性。

新文件导入延迟大。

存量文件太多(即符合文件路径前缀过滤的文件数量太多)。

如果符合文件路径前缀过滤条件文件数量太多(超过100万),建议前缀设置得更加详细,同时创建多个任务来进行数据导入。否则,发现新文件的效率非常低。

错误处理机制

错误项

说明

读取文件失败

读文件时,如果遇到文件不完整的错误(例如由网络异常、文件损坏等导致),导入任务会自动重试,重试3次后仍然读取失败,将跳过该文件。

重试间隔和检查新文件周期一致。如果检查新文件周期为永不检查,则重试周期为5分钟。

压缩格式解析错误

解压文件时,如果遇到文件压缩格式无效的错误,导入任务将直接跳过该文件。

数据格式解析错误

解析数据失败时,导入任务会将原始文本内容存放到日志的content字段中。

Container不存在

导入任务会定期重试,即重建Container后,导入任务会自动恢复导入。

权限错误

从Container读取数据或者写数据到日志服务LogStore存在权限错误时,导入任务会定期重试,即修复权限问题后,导入任务会自动恢复。

遇到权限错误时,导入任务不会跳过任何文件,因此修复权限问题后,导入任务会自动将Container中还未被处理的文件中的数据导入到日志服务LogStore中。