Skip to content

Commit 9a0f142

Browse files
committed
Add feedback
1 parent 3004d3b commit 9a0f142

16 files changed

+103
-307
lines changed

articles/iot-operations/connect-to-cloud/concept-dataflow-conversions.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
---
2-
title: Convert data using data flow conversions
3-
description: Learn about data flow conversions for transforming data in Azure IoT Operations.
2+
title: Convert data using dataflow conversions
3+
description: Learn about dataflow conversions for transforming data in Azure IoT Operations.
44
author: PatAltimore
55
ms.author: patricka
66
ms.subservice: azure-data-flows
77
ms.topic: concept-article
88
ms.date: 08/03/2024
99

10-
#CustomerIntent: As an operator, I want to understand how to use data flow conversions to transform data.
10+
#CustomerIntent: As an operator, I want to understand how to use dataflow conversions to transform data.
1111
---
1212

13-
# Convert data using data flow conversions
13+
# Convert data using dataflow conversions
1414

1515
[!INCLUDE [public-preview-note](../includes/public-preview-note.md)]
1616

17-
You can use data flow conversions to transform data in Azure IoT Operations. The *conversion* element in a data flow is used to compute values for output fields. You can use input fields, available operations, data types, and type conversions in data flow conversions.
17+
You can use dataflow conversions to transform data in Azure IoT Operations. The *conversion* element in a dataflow is used to compute values for output fields. You can use input fields, available operations, data types, and type conversions in dataflow conversions.
1818

19-
The data flow *conversion* element is used to compute values for output fields:
19+
The dataflow *conversion* element is used to compute values for output fields:
2020

2121
```yaml
2222
- inputs:
@@ -219,7 +219,7 @@ Functions can be used in the conversion formula to perform various operations.
219219

220220
## Available operations
221221

222-
Data flows offer a wide range of out-of-the-box (OOTB) conversion functions that allow users to easily perform unit conversions without the need for complex calculations. These predefined functions cover common conversions such as temperature, pressure, length, weight, and volume. The following is a list of the available conversion functions, along with their corresponding formulas and function names:
222+
Dataflows offer a wide range of out-of-the-box (OOTB) conversion functions that allow users to easily perform unit conversions without the need for complex calculations. These predefined functions cover common conversions such as temperature, pressure, length, weight, and volume. The following is a list of the available conversion functions, along with their corresponding formulas and function names:
223223

224224
| Conversion | Formula | Function Name |
225225
| --- | --- | --- |

articles/iot-operations/connect-to-cloud/concept-dataflow-enrich.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
---
2-
title: Enrich data using data flows
3-
description: Use contextualization datasets to enrich data in Azure IoT Operations data flows.
2+
title: Enrich data using dataflows
3+
description: Use contextualization datasets to enrich data in Azure IoT Operations dataflows.
44
author: PatAltimore
55
ms.author: patricka
66
ms.subservice: azure-data-flows
77
ms.topic: concept-article
88
ms.date: 08/03/2024
99

10-
#CustomerIntent: As an operator, I want to understand how to create a data flow to enrich data sent to endpoints.
10+
#CustomerIntent: As an operator, I want to understand how to create a dataflow to enrich data sent to endpoints.
1111
---
1212

13-
# Enrich data using data flows
13+
# Enrich data using dataflows
1414

1515
[!INCLUDE [public-preview-note](../includes/public-preview-note.md)]
1616

articles/iot-operations/connect-to-cloud/concept-dataflow-mapping.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
---
2-
title: Map data using data flows
3-
description: Learn about the data flow mapping language for transforming data in Azure IoT Operations.
2+
title: Map data using dataflows
3+
description: Learn about the dataflow mapping language for transforming data in Azure IoT Operations.
44
author: PatAltimore
55
ms.author: patricka
66
ms.subservice: azure-data-flows
77
ms.topic: concept-article
88
ms.date: 08/03/2024
99

10-
#CustomerIntent: As an operator, I want to understand how to use the data flow mapping language to transform data.
10+
#CustomerIntent: As an operator, I want to understand how to use the dataflow mapping language to transform data.
1111
---
1212

13-
# Map data using data flows
13+
# Map data using dataflows
1414

1515
[!INCLUDE [public-preview-note](../includes/public-preview-note.md)]
1616

17-
Use the data flow mapping language to transform data in Azure IoT Operations. The syntax is a simple, yet powerful, way to define mappings that transform data from one format to another. This article provides an overview of the data flow mapping language and key concepts.
17+
Use the dataflow mapping language to transform data in Azure IoT Operations. The syntax is a simple, yet powerful, way to define mappings that transform data from one format to another. This article provides an overview of the dataflow mapping language and key concepts.
1818

1919
Mapping allows you to transform data from one format to another. Consider the following input record:
2020

@@ -104,7 +104,7 @@ Dot-notation is widely used in computer science to reference fields, even recurs
104104
- Person.Address.Street.Number
105105
```
106106

107-
However, in a data flow, a path described by dot-notation might include strings and some special characters without needing escaping:
107+
However, in a dataflow, a path described by dot-notation might include strings and some special characters without needing escaping:
108108

109109
```yaml
110110
- inputs:
@@ -120,7 +120,7 @@ However, in other cases, escaping is necessary:
120120

121121
The previous example, among other special characters, contains dots within the field name, which, without escaping, would serve as a separator in the dot-notation itself.
122122

123-
While a data flow parses a path, it treats only two characters as special:
123+
While a dataflow parses a path, it treats only two characters as special:
124124

125125
* Dots ('.') act as field separators.
126126
* Quotes, when placed at the beginning or the end of a segment, start an escaped section where dots aren't treated as field separators.
@@ -450,12 +450,12 @@ Consider a special case for the same fields to help deciding the right action:
450450

451451
An empty `output` field in the second definition implies not writing the fields in the output record (effectively removing `Opacity`). This setup is more of a `Specialization` than a `Second Rule`.
452452

453-
Resolution of overlapping mappings by data flows:
453+
Resolution of overlapping mappings by dataflows:
454454

455455
* The evaluation progresses from the top rule in the mapping definition.
456456
* If a new mapping resolves to the same fields as a previous rule, the following applies:
457457
* A `Rank` is calculated for each resolved input based on the number of segments the wildcard captures. For instance, if the `Captured Segments` are `Properties.Opacity`, the `Rank` is 2. If only `Opacity`, the `Rank` is 1. A mapping without wildcards has a `Rank` of 0.
458-
* If the `Rank` of the latter rule is equal to or higher than the previous rule, a data flow treats it as a `Second Rule`.
458+
* If the `Rank` of the latter rule is equal to or higher than the previous rule, a dataflow treats it as a `Second Rule`.
459459
* Otherwise, it treats the configuration as a `Specialization`.
460460

461461
For example, the mapping that directs `Opacity.Max` and `Opacity.Min` to an empty output has a `Rank` of zero. Since the second rule has a lower `Rank` than the previous, it's considered a specialization and overrides the previous rule, which would calculate a value for `Opacity`

articles/iot-operations/connect-to-cloud/howto-configure-dataflow-endpoint.md

Lines changed: 19 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
---
2-
title: Configure data flow endpoints in Azure IoT Operations
3-
description: Configure data flow endpoints to create connection points for data sources.
2+
title: Configure dataflow endpoints in Azure IoT Operations
3+
description: Configure dataflow endpoints to create connection points for data sources.
44
author: PatAltimore
55
ms.author: patricka
66
ms.subservice: azure-data-flows
77
ms.topic: how-to
88
ms.date: 08/03/2024
99

10-
#CustomerIntent: As an operator, I want to understand how to configure source and destination endpoints so that I can create a data flow.
10+
#CustomerIntent: As an operator, I want to understand how to configure source and destination endpoints so that I can create a dataflow.
1111
---
1212

13-
# Configure data flow endpoints
13+
# Configure dataflow endpoints
1414

1515
[!INCLUDE [public-preview-note](../includes/public-preview-note.md)]
1616

17-
To get started with data flows, you need to configure endpoints. An endpoint is the connection point for the data flow. You can use an endpoint as a source or destination for the data flow. Some endpoint types can be used as [both sources and destinations](#endpoint-types-for-use-as-sources-and-destinations), while others are for [destinations only](#endpoint-types-for-destinations-only). A data flow needs at least one source endpoint and one destination endpoint.
17+
To get started with dataflows, you need to configure endpoints. An endpoint is the connection point for the dataflow. You can use an endpoint as a source or destination for the dataflow. Some endpoint types can be used as [both sources and destinations](#endpoint-types-for-use-as-sources-and-destinations), while others are for [destinations only](#endpoint-types-for-destinations-only). A dataflow needs at least one source endpoint and one destination endpoint.
1818

1919
The following example shows a custom resource definition with all of the configuration options. The required fields are dependent on the endpoint type. Review the sections for each endpoint type for configuration guidance.
2020
```yaml
@@ -23,19 +23,22 @@ kind: DataflowEndpoint
2323
metadata:
2424
name: <endpoint-name>
2525
spec:
26-
endpointType: <endpointType> # mqtt, kafka, dataExplorer, dataLakeStorage, fabricOneLake, or localStorage
26+
endpointType: <endpointType> # mqtt, kafka, or localStorage
2727
authentication:
2828
method: <method> # systemAssignedManagedIdentity, x509Credentials, userAssignedManagedIdentity, or serviceAccountToken
2929
systemAssignedManagedIdentitySettings: # Required if method is systemAssignedManagedIdentity
3030
audience: https://eventgrid.azure.net
31-
x509CredentialsSettings: # Required if method is x509Credentials
32-
certificateSecretName: x509-certificate
33-
userAssignedManagedIdentitySettings: # Required if method is userAssignedManagedIdentity
34-
clientId: <id>
35-
tenantId: <id>
36-
audience: https://eventgrid.azure.net
37-
serviceAccountTokenSettings: # Required if method is serviceAccountToken
38-
audience: my-audience
31+
### OR
32+
# x509CredentialsSettings: # Required if method is x509Credentials
33+
# certificateSecretName: x509-certificate
34+
### OR
35+
# userAssignedManagedIdentitySettings: # Required if method is userAssignedManagedIdentity
36+
# clientId: <id>
37+
# tenantId: <id>
38+
# audience: https://eventgrid.azure.net
39+
### OR
40+
# serviceAccountTokenSettings: # Required if method is serviceAccountToken
41+
# audience: my-audience
3942
mqttSettings: # Required if endpoint type is mqtt
4043
host: example.westeurope-1.ts.eventgrid.azure.net:8883
4144
tls: # Omit for no TLS or MQTT.
@@ -69,7 +72,7 @@ spec:
6972
| mqttSettings.sharedSubscription | Shared subscription settings. No shared subscription if omitted. |
7073
| mqttSettings.sharedSubscription.groupMinimumShareNumber | Number of clients to use for shared subscription. |
7174
| mqttSettings.sharedSubscription.groupName | Shared subscription group name. |
72-
| mqttSettings.clientIdPrefix | Client ID prefix. Client ID generated by the data flow is \<prefix\>-id. No prefix if omitted.|
75+
| mqttSettings.clientIdPrefix | Client ID prefix. Client ID generated by the dataflow is \<prefix\>-id. No prefix if omitted.|
7376
| mqttSettings.retain | Whether or not to keep the retain setting. Values: *keep* or *never*. Defaults to *keep*. |
7477
| mqttSettings.sessionExpirySeconds | Session expiry in seconds. Defaults to *3600*.|
7578
| mqttSettings.qos | Quality of service. Values: *0* or *1*. Defaults to 1.|
@@ -155,7 +158,7 @@ authentication:
155158
> - Select **Certificate Subject Name** the dropdown.
156159
> - Set **Maximum client sessions per authentication name** to **3** or more
157160
>
158-
> The alternative client authentication and max client sessions options allows data flows to use client certificate subject name for authentication instead of MQTT CONNECT Username. This is important so that data flows can spawn multiple instances and still be able to connect. To learn more, see [Event Grid MQTT client certificate authentication](../../event-grid/mqtt-client-certificate-authentication.md) [multi-session support](../../event-grid/mqtt-establishing-multiple-sessions-per-client.md).
161+
> The alternative client authentication and max client sessions options allows dataflows to use client certificate subject name for authentication instead of MQTT CONNECT Username. This is important so that dataflows can spawn multiple instances and still be able to connect. To learn more, see [Event Grid MQTT client certificate authentication](../../event-grid/mqtt-client-certificate-authentication.md) [multi-session support](../../event-grid/mqtt-establishing-multiple-sessions-per-client.md).
159162

160163
System-assigned managed identity:
161164

@@ -301,85 +304,6 @@ spec:
301304

302305
## Endpoint types for destinations only
303306

304-
### Azure Data Lake (ADLSv2)
305-
306-
Azure Data Lake endpoints are used for Azure Data Lake destinations. You can configure the endpoint, authentication, table, and other settings.
307-
308-
```yaml
309-
apiVersion: connectivity.iotoperations.azure.com/v1beta1
310-
kind: DataflowEndpoint
311-
metadata:
312-
name: adls
313-
spec:
314-
endpointType: dataLakeStorage
315-
authentication:
316-
method: systemAssignedManagedIdentity
317-
systemAssignedManagedIdentitySettings: {}
318-
datalakeStorageSettings:
319-
host: example.blob.core.windows.net
320-
```
321-
322-
Other supported authentication method is SAS tokens or user-assigned managed identity.
323-
324-
```yaml
325-
spec:
326-
authentication:
327-
method: accessToken
328-
accessTokenSecretRef: <your access token secret name>
329-
# OR
330-
userAssignedManagedIdentitySettings:
331-
clientId: <id>
332-
tenantId: <id>
333-
```
334-
335-
You can also configure batching latency, max bytes, and max messages.
336-
337-
```yaml
338-
spec:
339-
endpointType: dataLakeStorage
340-
datalakeStorageSettings:
341-
batching:
342-
latencyMs: 100
343-
maxBytes: 1000000
344-
maxMessages: 1000
345-
```
346-
347-
### Azure Data Explorer (ADX)
348-
349-
Azure Data Explorer endpoints are used for Azure Data Explorer destinations. You can configure the endpoint, authentication, and other settings.
350-
351-
```yaml
352-
apiVersion: connectivity.iotoperations.azure.com/v1beta1
353-
kind: DataflowEndpoint
354-
metadata:
355-
name: adx
356-
spec:
357-
endpointType: dataExplorer
358-
authentication:
359-
method: systemAssignedManagedIdentity
360-
systemAssignedManagedIdentitySettings: {}
361-
# OR
362-
method: userAssignedManagedIdentity
363-
userAssignedManagedIdentitySettings:
364-
clientId: <id>
365-
tenantId: <id>
366-
dataExplorerSettings:
367-
host: example.westeurope.kusto.windows.net
368-
database: example-database
369-
```
370-
371-
Again, you can configure batching latency, max bytes, and max messages.
372-
373-
```yaml
374-
spec:
375-
endpointType: dataExplorer
376-
dataExplorerSettings:
377-
batching:
378-
latencyMs: 100
379-
maxBytes: 1000000
380-
maxMessages: 1000
381-
```
382-
383307
### Local storage and Edge Storage Accelerator
384308

385309
Use the local storage option to send data to a locally available persistent volume, through which you can upload data via Edge Storage Accelerator (ESA) edge volumes. In this case, the format must be parquet.

articles/iot-operations/connect-to-cloud/howto-configure-dataflow-profile.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,28 @@
11
---
2-
title: Configure data flow profile in Azure IoT Operations
3-
description: How to configure a data flow profile in Azure IoT Operations to change a data flow behavior.
2+
title: Configure dataflow profile in Azure IoT Operations
3+
description: How to configure a dataflow profile in Azure IoT Operations to change a dataflow behavior.
44
author: PatAltimore
55
ms.author: patricka
66
ms.subservice: azure-data-flows
77
ms.topic: how-to
88
ms.date: 08/03/2024
99

10-
#CustomerIntent: As an operator, I want to understand how to I can configure a a data flow profile to control a data flow behavior.
10+
#CustomerIntent: As an operator, I want to understand how to I can configure a a dataflow profile to control a dataflow behavior.
1111
---
1212

13-
# Configure data flow profile
13+
# Configure dataflow profile
1414

1515
[!INCLUDE [public-preview-note](../includes/public-preview-note.md)]
1616

17-
By default, when you deploy Azure IoT Operations, a data flow profile is created with default settings. You can configure the data flow profile to suit your needs.
17+
By default, when you deploy Azure IoT Operations, a dataflow profile is created with default settings. You can configure the dataflow profile to suit your needs.
1818

1919
```yaml
2020
apiVersion: connectivity.iotoperations.azure.com/v1beta1
2121
kind: DataflowProfile
2222
metadata:
2323
name: my-dataflow-profile
2424
spec:
25-
maxInstances: 4
25+
instanceCount: 1
2626
tolerations:
2727
...
2828
diagnostics:
@@ -47,7 +47,7 @@ spec:
4747
4848
| Field Name | Description |
4949
|-------------------------------------------------|-----------------------------------------------------------------------------|
50-
| `maxInstances` | Number of instances to spread the data flow across. Optional; automatically determined if not set. |
50+
| `instanceCount` | Number of instances to spread the dataflow across. Optional; automatically determined if not set. Currently in the preview release, set the value to `1`. |
5151
| `tolerations` | Node tolerations. Optional; see [Kubernetes Taints and Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/). |
5252
| `diagnostics` | Diagnostics settings. |
5353
| `diagnostics.logFormat` | Format of the logs. For example, `text`. |
@@ -70,7 +70,7 @@ spec:
7070

7171
## Default settings
7272

73-
The default settings for a data flow profile are:
73+
The default settings for a dataflow profile are:
7474

7575
* Instances: (null)
7676
* Log level: Info
@@ -79,14 +79,14 @@ The default settings for a data flow profile are:
7979

8080
## Scaling
8181

82-
To manually scale the data flow profile, specify the maximum number of instances you want to run.
82+
To manually scale the dataflow profile, specify the maximum number of instances you want to run.
8383

8484
```yaml
8585
spec:
8686
maxInstances: 3
8787
```
8888

89-
If not specified, Azure IoT Operations automatically scales the data flow profile based on the data flow configuration. The number of instances is determined by the number of data flows and the shared subscription configuration.
89+
If not specified, Azure IoT Operations automatically scales the dataflow profile based on the dataflow configuration. The number of instances is determined by the number of dataflows and the shared subscription configuration.
9090

9191
## Configure log level, node tolerations, diagnostic settings, and other deployment-wide settings
9292

0 commit comments

Comments
 (0)