本文档介绍通过logstash-input-tunnel插件,实现从MaxCompute读取离线表的数据到其他数据源中。

安装logstash-input-tunnel插件

  1. 进入Logstash实例管理页面
  2. 单击左侧导航栏的插件配置
  3. 系统默认插件列表中,单击logstash-input-tunnel右侧的安装安装logstash-input-tunnel插件
    警告 安装logstash-input-tunnel插件会触发集群重启,请确认后再执行以下步骤。
  4. 操作提示对话框中,认真阅读系统提示,单击确认确认安装

    确认后,Logstash实例会进行重启,重启过程中可在任务列表中查看任务进度详情。重启成功后,即可完成logstash-input-tunnel插件的安装。

    安装成功后,如果不再使用,可单击logstash-input-tunnel插件右侧的卸载,使用同样的方式进行卸载。
    注意 卸载插件也会触发集群重启,请确认后操作。

使用方式

  1. 开通阿里云MaxCompute产品、创建项目、创建表并导入数据。

    详情请参见MaxCompute官方文档的准备工作快速入门章节。

  2. 安装logstash-input-tunnel插件
  3. 在Logstash控制台的管道管理页面,通过配置文件管理方式配置管道。

    配置脚本如下,相关参数说明请参见参数说明

    input {
        tunnel {
            access_id => "Your accessId"
            access_key => "Your accessKey"
            endpoint => "maxcompute service endpoint"
            project_name => "Your project"
            table_name => "Your table name"
            partition => "pt='p1',dt='d1'"
            thread_num => 1
            dirty_data_file => "/ssd/1/tmp/xxxxx"
        }
    }
    
    output {
        stdout {
            codec => rubydebug
        }
    }
    注意
    • 阿里云Logstash目前只支持同一VPC下的数据传输,如果源端数据在公网下,请参考NAT公网数据传输配置,通过公网访问Logstash。
    • logstash-input-tunnel插件读取MaxCompute的数据后,会全量同步所有数据。

参数说明

logstash-input-tunnel插件支持的参数如下。
参数 类型 是否必选 说明
endpoint string MaxCompute对外服务的访问域名,详情请参见开通MaxCompute服务的Region和服务连接对照表
access_id string 阿里云账号的AccessKey ID。
access_key string 阿里云账号的Access Key Secret。
project_name string MaxCompute的项目名称。
table_name string MaxCompute的表名称。
partition string 分区字段。分区表按照字段来定义,例如:sale_date='201911'region='hangzhou'
thread_num number 线程数,默认为1。
retry_interval number 重试的间隔,单位为秒。
dirty_data_file string 指定文件,用于记录处理失败的日志。