3.3.16.9 Record: ChannelMetadataRecord

Topic Version1Published10/31/2016
For StandardETP v1.1

Describes metadata for one channel and corresponds roughly to the LogCurveInfo structure in WITSML v1.4.1.1. The ChannelMetadata message sends an array of these.

Avro Schema

{

      "type": "record",

      "namespace": "Energistics.Datatypes.ChannelData",

      "name": "ChannelMetadataRecord",

      "fields":

     [

         { "name": "channelUri", "type": "string" },

         { "name": "channelId", "type": "long" },

         {

          "name": "indexes",

          "type": { "type": "array", "items": "Energistics.Datatypes.ChannelData.IndexMetadataRecord" }

     },

         { "name": "channelName", "type": "string" },

         { "name": "dataType", "type": "string" },

         { "name": "uom", "type": "string" },

         { "name": "startIndex", "type": ["null", "long"] },

         { "name": "endIndex", "type": ["null", "long"] },

         { "name": "description", "type": "string" },

         { "name": "status", "type": "Energistics.Datatypes.ChannelData.ChannelStatuses" },

         { "name": "contentType", "type": ["null", "string"] },

         { "name": "source", "type": "string" },

         { "name": "measureClass", "type": "string" },

         { "name": "uuid", "type": ["null", "string"] },

         { "name": "customData", "type": { "type": "map", "values": "Energistics.Datatypes.DataValue" } },

         { "name": "domainObject", "type": ["null", "Energistics.Datatypes.Object.DataObject"] }

     ]

}

Attribute

Description

Data Type

Min

Max

channelUri

A URI for the channel. It MUST be unique within the context of a server.

string

1

1

channelId

A producer-defined integer identifier for the channel. Channel IDs are only unique or meaningful within a given session. If you start a new session, the same channel URI may result in a different channel ID.

long

1

1

indexes

The metadata for the indexes associated with this channel.

  • The array MUST have a length of at least 1.
  • The first element in the array is considered the primary index.
  • The values of the primary index MUST be unique within the channel.
  • Secondary indexes MAY NOT be used in range queries.
  • IA value for secondary indexes is NOT required on every data point.

IndexMetadataRecord

1

n

channelName

The name for the channel. In WITSML v1.4.1, this corresponds directly to the mnemonic in LogCurveInfo.

string

1

1

dataType

The fully-qualified name of the Avro data type for the channel (i.e., double, float, int, etc.) To use logicalType, as defined by the Avro spec for dates, times, etc. See the notes under the customData field of ChannelMetadataRecord.

string

1

1

uom

The unit of measure for the channel. All DataItems and DataRows send data using this UOM. The ChannelData protocol does not support conversion to a consumer-requested system of measurement.

string

1

1

startIndex

The first (lowest) recorded primary index value for the channel.

long

0

1

endIndex

The last (highest) recorded primary index value for the channel. For active channels, this value is only good at the time the metadata is sent.

long

0

1

description

Human-readable description of the channel. It maps to the Description field of the Citation element of the Channel XML object.

string

1

1

status

Current status of this channel; any changes to this status during a session results in ChannelStatusChange notification.

ChannelStatuses

1

1

contentType

  • If the channel data points are structured objects (e.g., TrajectoryStation), then this string is the contentType of the data points, as defined in the Energistics Identifier Specification (e.g., "application/x-witsml+xml;version=2.0;type=part_TrajectoryStation").
  • If this value is not null or empty, then the dataType field MUST be bytes.

string

0

1

source

Source of the data in the channel. For WITSML, this contains the contractor name.

string

1

1

measureClass

For WITSML, it is the PWLS class of the channel.

string

1

1

uuid

The UUID of the channel object in the store. For WITSML, this normally is the UUID of a channel. However, in the case of streaming complex objects over Protocol 1 (i.e., TrajectoryStation or WBGeometrySection) there is no corresponding channel object, and this is the UUID of the parent trajectory, etc.

string

0

1

customData

Name-Value pair (implemented as an Avro map) of custom values for the ChannelMetadata. This may contain both well-known (and thus, reserved) values as well as application and vendor-specific values. Names are case sensitive. The following are currently defined:

logicalType: String Value. Used to define logical types in channel data, as permitted by the Avro specification (https://avro.apache.org/docs/1.8.0/spec.html#Logical+Types ). Specifically, these values are supported: decimal, date, time-millis, time-micros, timestamp-millis, timestamp-micros, and duration.

precision: Integer value. Used for the precision of a decimal logicalType.

scale - Integer value. Used for the scale of a decimal logicalType.

DataValue

0

n

domainObject

Optional domain-specific data object describing the channel. This allows more complete channel metadata (such as a complete description of dimensions for an array channel) to be passed to the consumer. The field is optional for ETP. Individual ML implementations may require this field in certain circumstances.

DataObject

0

1