Skip to content

Commit 24ce935

Browse files
committed
udf overview
1 parent 8ba3301 commit 24ce935

File tree

2 files changed

+61
-7
lines changed

2 files changed

+61
-7
lines changed

articles/stream-analytics/TOC.yml

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,14 +59,18 @@
5959
href: stream-analytics-sql-output-perf.md
6060
- name: Blob custom path patterns
6161
href: stream-analytics-custom-path-patterns-blob-storage-output.md
62-
- name: User-defined functions
62+
- name: Extend queries with functions
6363
items:
64-
- name: Machine learning UDF
65-
href: machine-learning-udf.md
66-
- name: C# UDF
67-
href: stream-analytics-edge-csharp-udf-methods.md
64+
- name: Functions overview
65+
href: functions-overview.md
6866
- name: JavaScript UDF
6967
href: stream-analytics-javascript-user-defined-functions.md
68+
- name: JavaScript UDA
69+
href: stream-analytics-javascript-user-defined-aggregates.md
70+
- name: C# UDF
71+
href: stream-analytics-edge-csharp-udf-methods.md
72+
- name: Machine learning UDF
73+
href: machine-learning-udf.md
7074
- name: Optimize your Stream Analytics job
7175
items:
7276
- name: Understand and adjust Streaming Units
@@ -138,8 +142,6 @@
138142
href: stream-analytics-edge.md
139143
- name: Toll booth sensor data analysis
140144
href: stream-analytics-build-an-iot-solution-using-stream-analytics.md
141-
- name: Run a JavaScript UDA
142-
href: stream-analytics-javascript-user-defined-aggregates.md
143145
- name: High-frequency trading
144146
href: stream-analytics-high-frequency-trading.md
145147
- name: Process IoT streaming data
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
---
2+
title: User-defined functions in Azure Stream Analytics
3+
description: This article is an overview of
4+
author: mamccrea
5+
ms.author: mamccrea
6+
ms.service: stream-analytics
7+
ms.topic: conceptual
8+
ms.date: 04/07/2020
9+
---
10+
11+
# User-defined functions in Azure Stream Analytics
12+
13+
The SQL-like query language in Azure Stream Analytics makes it easy to implement real-time analytics logic on streaming data. Stream Analytics provides additional flexibility through custom functions that are invoked in your query. The following code example is a UDF called `sampleFunction` that accepts one parameter, each input record the job receives, and the result is written to the output as `sampleResult`.
14+
15+
```sql
16+
SELECT
17+
UDF.sampleFunction(InputStream) AS sampleResult
18+
INTO
19+
output
20+
FROM
21+
InputStream
22+
```
23+
24+
## Types of functions
25+
26+
Azure Stream Analytics supports the following four function types:
27+
28+
* Javascript user-defined functions
29+
* Javascript user-defined aggregates
30+
* C# user-defined functions (using Visual Studio)
31+
* Azure Machine Learning
32+
33+
You can use these functions for scenarios such as real-time scoring using machine learning models, string manipulations, complex mathematical calculations, encoding and decoding data.
34+
35+
## Limitations
36+
37+
User-defined functions are stateless, and the return value can only be a scalar value. You cannot call out to external REST endpoints from these user-defined functions, as it will likely impact performance of your job.
38+
39+
Azure Stream Analytics does not keep a record of all functions invocations and returned results. To guarantee repeatability - for example, re-running your job from older timestamp produces the same results again - do not to use functions such as `Date.GetData()` or `Math.random()`, as these functions do not return the same result for each invocation.
40+
41+
## Diagnostic logs
42+
43+
Any runtime errors are considered fatal and are surfaced through activity and diagnostic logs. It is recommended that your function handles all exceptions and errors and return a valid result to your query. This will prevent your job from going to a [Failed state](job-states.md).
44+
45+
46+
## Next steps
47+
48+
* [JavaScript user-defined functions in Azure Stream Analytics](stream-analytics-javascript-user-defined-functions.md)
49+
* [Azure Stream Analytics JavaScript user-defined aggregates](stream-analytics-javascript-user-defined-aggregates.md)
50+
* [Develop .NET Standard user-defined functions for Azure Stream Analytics jobs](stream-analytics-edge-csharp-udf-methods.md)
51+
* [Integrate Azure Stream Analytics with Azure Machine Learning](machine-learning-udf.md)
52+

0 commit comments

Comments
 (0)