主要内容

ImportOptions

导入事件流的选项

    这个对象要求MATLAB流数据框架®生产服务器™

    描述

    一个ImportOptions对象指定MATLAB如何从事件流导入表格数据。该对象包含控制数据导入过程的属性,包括错误和丢失数据的处理。

    创建

    您可以创建ImportOptions对象,可以使用detectImportOptions函数或eventStreamImportOptions函数。首选的方法是使用detectImportOptions

    • 使用detectImportOptions方法指定的事件流的内容来检测和填充导入属性

      选择= detectImportOptions(流)

    • 使用eventStreamImportOptions通过将导入选项指定为名称-值参数来创建导入属性。

      选择= eventStreamImportOptions (Name1 = Value1,…,以=家)

    属性

    全部展开

    要导入的变量的子集,指定为字符向量、字符串标量、字符向量的单元格数组或字符串数组。

    SelectedVariableNames中包含的名称的子集VariableNames财产。默认情况下,SelectedVariableNames控件中的所有变量名VariableNames属性,这意味着将导入所有变量。

    使用SelectedVariableNames属性只导入感兴趣的变量。方法指定变量的子集SelectedVariableNames属性和使用readtimetable函数只导入该子集。

    例子:选择。SelectedVariableNames = " x "只导入变量x从事件流中获取readtimetable将事件流数据导入时间表。

    数据类型:字符|字符串

    变量名,指定为字符向量的单元格数组或字符串数组。的VariableNames属性包含将变量从事件流导入时间表时要使用的名称。

    这些变量名必须存在于流中。如果修改后的变量名不在流中,导入操作将失败。

    例子:io。VariableNames返回事件流中的当前变量名。

    例子:io.VariableNames(3) ={'质量'}将第三个变量的名称更改为质量

    数据类型:细胞|字符串

    变量的数据类型,指定为字符向量的单元格数组或包含一组有效数据类型名称的字符串数组。的VariableTypes属性指定将变量从事件流导入时间表时要使用的数据类型。

    导入操作试图将流中的值转换为这些类型。只有当基元类型之间的转换已知且无歧义时,该操作才能成功,例如:

    • 整数到字符串的转换

    • 目标类型的构造函数可以接受流中该类型的变量的转换

    更新VariableTypes属性,使用setvartype函数。

    例子:io。VariableTypes返回流变量导入MATLAB时间表后所具有的数据类型,即对应时间表列的类型。

    例子:io = setvartype (io,“vMotor”、“int32”)对象的数据类型vMotor变量来int32

    数据类型:细胞|字符串

    事件流中键变量的名称,指定为字符串标量或字符向量。默认值为关键

    数据类型:字符串|字符

    对象的功能

    setvartype 将用于导入和导出变量的数据类型设置为流

    例子

    全部折叠

    假设你有一个卡夫卡®服务器运行在网络地址kafka.host.com: 9092这是有主题的三角形带有json编码的事件值”{“三角形”:{“x”:“3”、“y”:“4”、“z”:“5”}}”.每个事件值都包含一个变量“三角形”,这是一个边长结构“x”“y”,“z”.边长是整数,但被编码为字符串。readtimetable创建一个三角形表该变量的列,并将列值设置为如下结构:

    三角形=具有字段的结构:x: "3" y: "4" z: "5"
    ImportOptions使您能够更改导入结构中的值的类型,并选择要导入的字段。

    创建一个KafkaStream对象连接到三角形的话题。

    ks = kafkaStream (“kafka.host.com”, 9092,“三角形”);

    创建一个ImportOptions对象从Kafka流对象。每条边长的数据类型为字符串

    选择= detectImportOptions (ks)
    ["triangle/x" "triangle/y" "triangle/z"] VariableTypes: ["string" "string" "string"] KeyVariable: "key" SelectedVariableNames: ["triangle/x" "triangle/y" "triangle/z"]

    要对导入的数据执行数学运算,请将变量的数据类型更新为.因为边长变量嵌套在里面“三角形”,使用正斜杠(“/”)来指定这些变量的路径。

    Opts = setvartype(Opts, [“三角形/ x”“三角形/ y”“三角形/ z”),“替身”
    ["triangle/x" "triangle/y" "triangle/z"] VariableTypes: ["double" "double" "double"] KeyVariable: "key" SelectedVariableNames: ["triangle/x" "triangle/y" "triangle/z"]

    更新ImportOptions财产的KafkaStream对象。

    ks。ImportOptions =选择
    ks = KafkaStream属性:主题:"Triangles"组:"85c42e39-695d-467a-86f0-f0095792e7de" Order: EventTime Host: "kafka.host.com" Port: 9092 ConnectionTimeout: 30 RequestTimeout: 61 ImportOptions: "Import to MATLAB types" ExportOptions: "Source: function eventSchema" PublishSchema: "true" WindowSize: 50 KeyVariable: "key" KeyEncoding: "utf16" KeyType: "text" KeyByteOrder: "BigEndian" BodyEncoding: "utf8" BodyFormat: "JSON" ReadLimit: "Size" TimestampResolution: "Milliseconds"

    导入三角形时,readtimetable将边长转换为值。

    tt = readtimetable (ks);tt .triangle (1:)
    Ans =字段为:x: 3 y: 4 z: 5的struct

    通过指定在导入过程中要使用的变量名及其数据类型,创建从事件流导入数据到MATLAB的模式。

    名称= [“x”“象征”];类型= [“替身”“字符串”];

    构造一个ImportOptions对象使用此数据导入模式。

    选择= eventStreamImportOptions (VariableNames =名字,VariableTypes =类型)
    opts = ImportOptions: VariableNames: ["x" "symbol"] VariableTypes: ["double" "string"] KeyVariable: [0×0 string] SelectedVariableNames: ["x" "symbol"]

    类时应用导入选项KafkaStream对象。

    ks = kafkaStream (“kafka.host.com”, 9092,“Your_Kafka_Topic”ImportOptions =选择);

    导入数据。的“Your_Kafka_Topic”主题必须有恰好两个变量的事件,x而且象征.此外,这些变量的类型必须分别转换为double和string。否则,readtimetable抛出一个错误。

    tt = readtimetable (ks);

    版本历史

    介绍了R2022b

    Baidu
    map