gRPC Client

支持的管道类型:

  •  Data Collector Edge

gRPC Client源通过调用gRPC服务器方法来处理来自gRPC服务器的数据。源端可以调用Unary RPC和Server Streaming RPC方法。此源端是技术预览功能。它不适用于生产。

仅在为边缘执行模式配置的管道中使用gRPC Client源。在StreamSets Data Collector EdgeSDC Edge)上运行该管道。

配置gRPC Client源时,可以指定gRPC服务器的资源URL以及源端调用的服务方法。您还定义源端是使用Unary还是Server Streaming RPC方法来调用服务器。

您可以指定源与请求一起发送的可选标头,并配置gRPC服务器是否可以在响应中发送默认值。您还可以选择配置源,以使用SSL/TLS安全地连接到gRPC服务器。

有关安装SDC Edge,设计边缘管道以及运行和维护边缘管道的更多信息,请参阅初识 StreamSets Data Collector Edge。

先决条件

在gRPC Client源可以处理来自gRPC服务器的数据之前,您必须为服务器启用反射。

要启用服务器反射,请导入gRPC反射包,然后在gRPC服务器上注册反射服务,如gRPC服务器反射教程所述。

服务器方法类型

gRPC Client源可以使用以下方法类型之一来调用gRPC服务器:

Unary RPC method
使用一元RPC方法,源就像普通函数调用一样,将单个请求发送到gRPC服务器并接收到单个响应。
Server streaming RPC method
使用服务器流式RPC方法,源将请求发送到gRPC服务器,并接收流以读取回一系列消息。客户端从返回的流中读取,直到没有更多消息为止。

有关这些gRPC服务器方法类型的更多信息,请参见gRPC文档

数据格式

gRPC Client源根据数据格式对数据的处理方式有所不同。源端处理以下类型的数据:

Delimited
为每个分隔的行生成一条记录。您可以使用以下分隔格式类型:

  • Default CSV-包含逗号分隔值的文件。忽略文件中的空行。
  • RFC4180 CSV-严格遵循RFC4180准则的逗号分隔文件。
  • MS Excel CSV -Microsoft Excel逗号分隔文件。
  • MySQL CSV -MySQL逗号分隔文件。
  • Tab-Separated Values -包含制表符分隔的值的文件。
  • PostgreSQL CSV -PostgreSQL逗号分隔文件。
  • PostgreSQL文本 -PostgreSQL文本文件。
  • Custom -使用用户定义的分隔符,转义符和引号字符的文件。
  • Multi Character Delimited-使用多个用户定义的字符分隔字段和行以及单个用户定义的转义和引号字符的文件。
您可以将列表或列表映射根字段类型用于分隔数据,并可以选择在标题行中包括字段名称(如有)。有关根字段类型的更多信息,请参见分隔数据根字段类型。
使用标题行时,可以启用对额外列的记录处理。额外列使用自定义的前缀和顺序递增的顺序整数,如命名 _extra_1, _extra_2。当您禁止额外列时,包含额外列的记录将发送到错误。
您也可以将字符串常量替换为空值。
当一条记录超过为该阶段定义的最大记录长度时,该阶段将根据为该阶段配置的错误处理来处理对象。
JSON
为每个JSON对象生成一条记录。您可以处理包含多个JSON对象或单个JSON数组的JSON文件。
当对象超过为源端定义的最大对象长度时,源端会根据为阶段配置的错误处理来处理对象。
Text
根据自定义分隔符为每行文本或每段文本生成一条记录。
当一条线或一段超出为源端定义的最大线长时,源端会截断它。源端添加了一个名为Truncated的布尔字段,以指示该行是否被截断。
有关使用自定义分隔符处理文本的更多信息,请参见使用自定义分隔符的文本数据格式。

配置gRPC Client源

配置gRPC Client源以从gRPC服务器读取。gRPC客户端起源是技术预览功能。它不适用于生产。

  1. 在“Properties”面板的“General选项卡上,配置以下属性:
    一般属性 描述
    Name 阶段名。
    Description 可选说明。
    On Record Error 该阶段的错误记录处理:

    • Discard-放弃记录。
    • To Error-将记录发送到管道以进行错误处理。
    • Stop Pipeline-停止管道。
  2. gRPC选项卡上,配置以下属性:
    gRPC属性 描述
    Resource URL gRPC服务器的URL。
    Service Method gRPC服务器上要调用的服务方法。使用以下格式:

    <serviceName>/<methodName>
    Request Data 作为gRPC服务方法的参数发送的可选数据。以服务方法所需的格式输入数据。
    Method Type 调用gRPC服务器的方法类型:

    • Unary RPC
    • Server streaming RPC
    Polling Interval (ms) 检查新数据之前要等待的毫秒数。仅用于一元RPC服务器方法。

    默认值为5,000毫秒。

    Connect Timeout (secs) 等待连接的最大秒数。

    使用0无限期等待。默认值为10秒。

    Keep Alive Time (secs) 与gRPC服务器的连接可以保持空闲状态的最长时间(以秒为单位)。在这段时间内未收到任何响应之后,源将与服务器进行检查,以查看传输是否仍然有效。

    最小值是10秒。如果设置为小于10,则源端使用10。

    Additional Headers 要包含在请求中的可选头。使用简单或批量编辑模式,单击添加图标以添加其他头。
    Emit Defaults 使gRPC服务器发送响应的默认值。
  3. 要使用SSL/TLS,请在“TLS”选项卡上配置以下属性:
    TLS属性 描述
    Use TLS 启用TLS的使用。
    Insecure 跳过在测试或开发环境中验证受信任证书的步骤。

    StreamSets强烈建议您配置源以在生产环境中验证可信证书。

    Keystore File 密钥库文件的绝对路径。

    默认情况下,不使用任何密钥库。

    Keystore Type 密钥库文件必须使用PEM格式。结果,该属性被忽略。
    Keystore Password 密钥库文件必须使用不需要密码的PEM格式。结果,该属性被忽略。
    Keystore Key Algorithm 该属性被忽略。
    Authority 在对gRPC服务器的调用中使用的:authority HTTP / 2头的值。

    如果未输入任何值,则源使用gRPC服务器的资源URL。

    Server Name 服务器名称,用于验证从gRPC服务器返回的证书上的主机名。覆盖证书中指定的服务器名称。
    Truststore File 信任库文件的绝对路径。

    默认情况下,不使用任何信任库。

    Truststore Type 信任库文件必须使用PEM格式。结果,该属性被忽略。
    Truststore Password 信任库文件必须使用不需要密码的PEM格式。结果,此属性被忽略。
    Truststore Trust Algorithm 该属性被忽略。
    Use Default Protocols 使用默认的TLSv1.2协议。
    Transport Protocols 仅支持TLSv1.2协议。结果,此属性被忽略。
    Use Default Cipher Suites 确定执行SSL/TLS握手时要使用的默认密码套件。
    Cipher Suites 仅支持默认密码套件。结果,此属性被忽略。
  4. 在“Data Format选项卡上,配置以下属性:
    数据格式属性 描述
    Data Format 数据格式。使用以下选项之一:

    • Delimited
    • JSON
    • Text
  5. 对于分隔数据,在“Data Format选项卡上,配置以下属性:
    分隔属性 描述
    Compression Format 文件的压缩格式:

    • None-仅处理未压缩的文件。
    • Compressed File-处理受支持的压缩格式压缩的文件。
    • Archive-处理通过支持的存档格式存档的文件。
    • Compressed Archive-处理通过支持的存档和压缩格式存档和压缩的文件。

    在Data Collector Edge管道中,源仅支持未压缩和压缩的文件,不支持存档或压缩的存档文件。

    File Name Pattern within Compressed Directory 对于归档文件和压缩归档文件,使用文件名模式表示要在压缩目录中处理的文件。您可以使用UNIX样式的通配符,例如星号或问号。例如,*.json。

    默认值为*,它处理所有文件。

    Delimiter Format Type 分隔符格式类型。使用以下选项之一:

    • Default CSV-包含逗号分隔值的文件。忽略文件中的空行。
    • RFC4180 CSV-严格遵循RFC4180准则的逗号分隔文件。
    • MS Excel CSV -Microsoft Excel逗号分隔文件。
    • MySQL CSV -MySQL逗号分隔文件。
    • Tab-Separated Values -包含制表符分隔的值的文件。
    • PostgreSQL CSV -PostgreSQL逗号分隔文件。
    • PostgreSQL Text -PostgreSQL文本文件。
    • Custom -使用用户定义的分隔符,转义符和引号字符的文件。
    • Multi Character Delimited-使用多个用户定义的字符分隔字段和行以及单个用户定义的转义和引号字符的文件。
    Header Line 指示文件是否包含标题行以及是否使用标题行。
    Allow Extra Columns 使用标题行处理数据时,允许处理的记录列数超过标题行中的列数。
    Extra Column Prefix 用于任何其他列的前缀。额外的列使用前缀和顺序递增的整数来命名,如下所示: <prefix><integer>

    例如,_extra_1。默认值为 _extra_

    Max Record Length (chars) 记录的最大长度(以字符为单位)。较长的记录不会被读取。

    此属性可以受数据收集器解析器缓冲区大小的限制。有关更多信息,请参见最大记录大小。

    Delimiter Character 自定义分隔符格式的分隔符。选择一个可用选项,或使用“其他”输入自定义字符。

    您可以输入使用格式为Unicode控制符\uNNNN,其中N是数字0-9或字母AF十六进制数字。例如,输入 \u0000以使用空字符作为分隔符,或 \u2028使用行分隔符作为分隔符。

    默认为竖线字符(|)。

    Multi Character Field Delimiter 用于分隔多字符分隔符格式的字段的字符。

    默认值为两个竖线字符(||)。

    Multi Character Line Delimiter 以多字符分隔符格式分隔行或记录的字符。

    默认值为换行符(\ n)。

    Escape Character 自定义字符或多字符分隔符格式的转义字符。
    Quote Character 自定义或多字符分隔符格式的引号字符。
    Enable Comments 自定义分隔符格式允许注释的数据被忽略。
    Comment Marker 为自定义分隔符格式启用注释时,标记注释的字符。
    Ignore Empty Lines 对于自定义分隔符格式,允许忽略空行。
    Root Field Type 要使用的根字段类型:

    • List-Map-生成数据索引列表。使您能够使用标准功能来处理数据。用于新管道。
    • List-生成带有索引列表的记录,该列表带有标头和值的映射。需要使用分隔数据功能来处理数据。仅用于维护在1.1.0之前创建的管道。
    Lines to Skip 读取数据前要跳过的行数。
    Parse NULLs 将指定的字符串常量替换为空值。
    NULL Constant 代表空值的字符串常量。
    Charset 要处理的文件的字符编码。
    Ignore Control Characters 除去制表符,换行符和回车符以外的所有ASCII控制字符。
  6. 对于JSON数据,在“Data Format选项卡上,配置以下属性:
    JSON属性 描述
    Compression Format 文件的压缩格式:

    • None-仅处理未压缩的文件。
    • Compressed File-处理受支持的压缩格式压缩的文件。
    • Archive-处理通过支持的存档格式存档的文件。
    • Compressed Archive-处理通过支持的存档和压缩格式存档和压缩的文件。

    在Data Collector Edge管道中,源仅支持未压缩和压缩的文件,不支持存档或压缩的存档文件。

    File Name Pattern within Compressed Directory 对于归档文件和压缩归档文件,使用文件名模式表示要在压缩目录中处理的文件。您可以使用UNIX样式的通配符,例如星号或问号。例如,*.json。

    默认值为*,它处理所有文件。

    JSON Content JSON内容的类型。使用以下选项之一:

    • Array of Objects
    • Multiple Objects
    Maximum Object Length (chars) JSON对象中的最大字符数。

    较长的对象将转移到管道以进行错误处理。

    此属性可以受Data Collector解析器缓冲区大小的限制。有关更多信息,请参见最大记录大小。

    Charset 要处理的文件的字符编码。
    Ignore Control Characters 除去制表符,换行符和回车符以外的所有ASCII控制字符。
  7. 对于文本数据,在“Data Format选项卡上,配置以下属性:
    文字属性 描述
    Compression Format 文件的压缩格式:

    • None-仅处理未压缩的文件。
    • Compressed File-处理受支持的压缩格式压缩的文件。
    • Archive-处理通过支持的存档格式存档的文件。
    • Compressed Archive-处理通过支持的存档和压缩格式存档和压缩的文件。

    在Data Collector Edge管道中,源仅支持未压缩和压缩的文件,不支持存档或压缩的存档文件。

    File Name Pattern within Compressed Directory 对于归档文件和压缩归档文件,使用文件名模式表示要在压缩目录中处理的文件。您可以使用UNIX样式的通配符,例如星号或问号。例如,*.json。

    默认值为*,它处理所有文件。

    Max Line Length 一行中允许的最大字符数。较长的行被截断。

    在记录中添加一个布尔字段,以指示该记录是否被截断。字段名称为“Truncated”。

    此属性可以受数据收集器解析器缓冲区大小的限制。有关更多信息,请参见最大记录大小。

    Use Custom Delimiter 使用自定义分隔符来定义记录而不是换行符。
    Custom Delimiter 用于定义记录的一个或多个字符。
    Include Custom Delimiter 在记录中包括分隔符。
    Charset 要处理的文件的字符编码。
    Ignore Control Characters 除去制表符,换行符和回车符以外的所有ASCII控制字符。