Skip to content

Commit 7919826

Browse files
authored
Merge pull request #114241 from SQLSourabh/patch-7
Update create-external-stream-transact-sql.md
2 parents 56c5ad2 + 13a0729 commit 7919826

File tree

1 file changed

+123
-136
lines changed

1 file changed

+123
-136
lines changed

articles/azure-sql-edge/create-external-stream-transact-sql.md

Lines changed: 123 additions & 136 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ ms.topic: conceptual
88
author: SQLSourabh
99
ms.author: sourabha
1010
ms.reviewer: sstein
11-
ms.date: 05/04/2020
11+
ms.date: 05/06/2020
1212
---
1313

1414
# CREATE EXTERNAL STREAM (Transact-SQL)
@@ -60,7 +60,7 @@ WITH
6060

6161
- [EXTERNAL DATA SOURCE](/sql/t-sql/statements/create-external-data-source-transact-sql/)
6262
- [EXTERNAL FILE FORMAT](/sql/t-sql/statements/create-external-file-format-transact-sql/)
63-
- **LOCATION**: Specifies the name for the actual data or location in the data source.
63+
- **LOCATION**: Specifies the name for the actual data or location in the data source. In case of an Edge Hub or Kafka stream object, location specifies the name of the Edge Hub or Kafka topic to read from or write to.
6464
- **INPUT_OPTIONS**: Specify options as key-value pairs for services such as Event and IOT Hubs that are inputs to streaming queries
6565
- CONSUMER_GROUP:
6666
Event and IoT Hubs limit the number of readers within one consumer group (to 5). Leaving this field empty will use the '$Default' consumer group.
@@ -112,118 +112,93 @@ WITH
112112

113113
## Examples
114114

115-
### Example 1 - Event Hub
115+
### Example 1 - EdgeHub
116116

117117
Type: Input or Output<br>
118118
Parameters:
119-
- Input or Output:
119+
- Input or Output
120120
- Alias
121-
- Service Bus namespace
122-
- Event Hub name
123-
- Event Hub policy name
124-
- Event Hub policy key
125121
- Event serialization format
126122
- Encoding
127123
- Input only:
128-
- Event Hub consumer group
129124
- Event compression type
130-
- Output only:
131-
- Partition key column
132-
- Property columns
133125

134126
Syntax:
135127

136128
```sql
137-
CREATE DATABASE SCOPED CREDENTIAL eventHubCredName
138-
WITH IDENTITY = 'Shared Access Signature’,
139-
SECRET = '<policyName>';
140-
141-
CREATE EXTERNAL DATA SOURCE MyEventHub_tweets
142-
WITH
143-
(
144-
LOCATION = 'sb://my-sb-namespace.servicebus.windows.net’,
145-
CREDENTIAL = eventHubCredName
129+
CREATE EXTERNAL DATA SOURCE MyEdgeHub
130+
WITH
131+
(
132+
LOCATION = 'edgehub://'      
146133
);
147134

148-
CREATE EXTERNAL FILE FORMAT myFileFormat
149-
WITH (
150-
FORMAT_TYPE = 'CSV',
151-
DATA_COMPRESSION = 'GZIP',
152-
ENCODING = ‘UTF-8’,
153-
DELIMITER = ‘|’
135+
CREATE EXTERNAL FILE FORMAT myFileFormat
136+
WITH (
137+
FORMAT_TYPE = 'JSON',
154138
);
155139

156-
157-
CREATE EXTERNAL STREAM Stream_A (user_id VARCHAR, tweet VARCHAR)
158-
WITH
159-
(
160-
DATA_SOURCE = MyEventHub_tweets,
161-
LOCATION =<topicname>’,
162-
--JSON: Format, CSV: Delimiter and Encoding, AVRO: None
163-
EXTERNAL_FILE_FORMAT = myFileFormat,
164-
165-
INPUT_OPTIONS =
166-
‘CONSUMER_GROUP: FirstConsumerGroup’,
167-
168-
OUTPUT_OPTIONS =
169-
‘REJECT_TYPE: Drop,
170-
PARTITION_KEY_COLUMN: ,
171-
PROPERTY_COLUMNS: ()’
140+
CREATE EXTERNAL STREAM Stream_A
141+
WITH
142+
(
143+
DATA_SOURCE = MyEdgeHub,
144+
EXTERNAL_FILE_FORMAT = myFileFormat,
145+
LOCATION =<mytopicname>’,
146+
OUTPUT_OPTIONS =
147+
‘REJECT_TYPE: Drop’
172148
);
173149
```
174150

175151

176-
### Example 2 - IOT Hub
152+
### Example 2 - Azure SQL Database, Azure SQL Edge, SQL Server
177153

178-
Type: Input<br>
154+
Type: Output<br>
179155
Parameters:
180-
181-
- Input alias
182-
- IoT Hub
183-
- Endpoint
184-
- Shared access policy name
185-
- Shared access policy key
186-
- Consumer group
187-
- Event serialization format
188-
- Encoding
189-
- Event compression type
156+
- Output alias
157+
- Database (required for SQL Database)
158+
- Server (required for SQL Database)
159+
- Username (required for SQL Database)
160+
- Password (required for SQL Database)
161+
- Table
162+
- Merge all input partitions into a single write or Inherit partition scheme of previous query step or input (required for SQL Database)
163+
- Max batch count
190164

191165
Syntax:
192166

193167
```sql
194-
CREATE DATABASE SCOPED CREDENTIAL IoTHubCredName
195-
WITH IDENTITY = 'Shared Access Signature’,
196-
SECRET = '<policyName>';
168+
CREATE DATABASE SCOPED CREDENTIAL SQLCredName
169+
WITH IDENTITY = '<user>’,
170+
SECRET = '<password>';
197171
198-
CREATE EXTERNAL DATA SOURCE MyIoTHub_tweets
172+
-- Azure SQL Database
173+
CREATE EXTERNAL DATA SOURCE MyTargetSQLTabl
199174
WITH
200175
(
201-
LOCATION = ' iot://iot_hub_name.azure-devices.net’,
202-
CREDENTIAL = IoTHubCredName
203-
);
204-
205-
176+
LOCATION = ' <my_server_name>.database.windows.net’,
177+
CREDENTIAL = SQLCredName
178+
);
206179

207-
CREATE EXTERNAL FILE FORMAT myFileFormat
208-
WITH (
209-
FORMAT_TYPE = 'CSV', --Event serialization format
210-
DATA_COMPRESSION = 'GZIP',
211-
ENCODING = ‘UTF-8
180+
--SQL Server or Azure SQL Edge
181+
CREATE EXTERNAL DATA SOURCE MyTargetSQLTabl
182+
WITH
183+
(
184+
LOCATION = ' <sqlserver://<ipaddress>,<port>’,
185+
CREDENTIAL = SQLCredName
212186
);
213187
214-
CREATE EXTERNAL STREAM Stream_A (user_id VARCHAR, tweet VARCHAR)
188+
--SQL Database/Edge
189+
CREATE EXTERNAL STREAM Stream_A
215190
WITH
216191
(
217-
DATA_SOURCE = MyIoTHub_tweets,
218-
LOCATION =<name>’,
192+
DATA_SOURCE = MyTargetSQLTable,
193+
LOCATION = ‘<DatabaseName>.<SchemaName>.<TableName>’
194+
--Note: If table is container in the database, <TableName> should be sufficient
195+
--Note: Do not need external file format in this case
219196
EXTERNAL_FILE_FORMAT = myFileFormat,
220-
INPUT_OPTIONS =
221-
‘ENDPOINT: Messaging,
222-
CONSUMER_GROUP: ‘FirstConsumerGroup’
197+
OUTPUT_OPTIONS =
198+
‘REJECT_TYPE: Drop
223199
);
224200
```
225201
226-
227202
### Example 3 - Kafka
228203
229204
Type: Input<br>
@@ -261,13 +236,11 @@ WITH
261236
LOCATION =<KafkaTopicName>’,
262237
--JSON: Format, CSV: Delimiter and Encoding, AVRO: None
263238
EXTERNAL_FILE_FORMAT = myFileFormat,
264-
265239
INPUT_OPTIONS =
266240
‘PARTITIONS: 5
267241
);
268242
```
269243

270-
271244
### Example 4 - Blob storage
272245

273246
Type: Input or Output<br>
@@ -332,98 +305,114 @@ WITH
332305
);
333306
```
334307
335-
336-
### Example 5 - EdgeHub
308+
### Example 5 - Event Hub
337309
338310
Type: Input or Output<br>
339311
Parameters:
340-
- Input or Output
312+
- Input or Output:
341313
- Alias
314+
- Service Bus namespace
315+
- Event Hub name
316+
- Event Hub policy name
317+
- Event Hub policy key
342318
- Event serialization format
343319
- Encoding
344320
- Input only:
321+
- Event Hub consumer group
345322
- Event compression type
323+
- Output only:
324+
- Partition key column
325+
- Property columns
346326
347327
Syntax:
348328
349329
```sql
350-
CREATE EXTERNAL DATA SOURCE MyEdgeHub
351-
WITH
352-
(
353-
LOCATION = 'edgehub://'      
330+
CREATE DATABASE SCOPED CREDENTIAL eventHubCredName
331+
WITH IDENTITY = 'Shared Access Signature’,
332+
SECRET = '<policyName>';
333+
334+
CREATE EXTERNAL DATA SOURCE MyEventHub_tweets
335+
WITH
336+
(
337+
LOCATION = 'sb://my-sb-namespace.servicebus.windows.net’,
338+
CREDENTIAL = eventHubCredName
354339
);
355340
356-
CREATE EXTERNAL FILE FORMAT myFileFormat
357-
WITH (
358-
FORMAT_TYPE = 'CSV',
359-
EVENT_COMPRESSION_TYPE = 'NONE',
360-
ENCODING = ‘UTF-8’,
361-
FIELD_TERMINATOR =,
341+
CREATE EXTERNAL FILE FORMAT myFileFormat
342+
WITH (
343+
FORMAT_TYPE = 'CSV',
344+
DATA_COMPRESSION = 'GZIP',
345+
ENCODING = ‘UTF-8’,
346+
DELIMITER = ‘|
362347
);
363348
364-
CREATE EXTERNAL STREAM Stream_A
365-
WITH
366-
(
367-
DATA_SOURCE = MyEdgeHub,
368-
EXTERNAL_FILE_FORMAT = myFileFormat,
369-
LOCATION =<mytopicname>’,
370-
OUTPUT_OPTIONS =
371-
‘REJECT_TYPE: Drop’
349+
350+
CREATE EXTERNAL STREAM Stream_A (user_id VARCHAR, tweet VARCHAR)
351+
WITH
352+
(
353+
DATA_SOURCE = MyEventHub_tweets,
354+
LOCATION = ‘<topicname>’,
355+
--JSON: Format, CSV: Delimiter and Encoding, AVRO: None
356+
EXTERNAL_FILE_FORMAT = myFileFormat,
357+
358+
INPUT_OPTIONS =
359+
‘CONSUMER_GROUP: FirstConsumerGroup’,
360+
361+
OUTPUT_OPTIONS =
362+
‘REJECT_TYPE: Drop,
363+
PARTITION_KEY_COLUMN: ,
364+
PROPERTY_COLUMNS: ()’
372365
);
373366
```
374367
368+
### Example 6 - IOT Hub
375369
376-
### Example 6 - SQL Database, SQL Edge, SQL Server
377-
378-
Type: Output<br>
370+
Type: Input<br>
379371
Parameters:
380-
- Output alias
381-
- Database (required for SQL Database)
382-
- Server (required for SQL Database)
383-
- Username (required for SQL Database)
384-
- Password (required for SQL Database)
385-
- Table
386-
- Merge all input partitions into a single write or Inherit partition scheme of previous query step or input (required for SQL Database)
387-
- Max batch count
372+
373+
- Input alias
374+
- IoT Hub
375+
- Endpoint
376+
- Shared access policy name
377+
- Shared access policy key
378+
- Consumer group
379+
- Event serialization format
380+
- Encoding
381+
- Event compression type
388382
389383
Syntax:
390384
391385
```sql
392-
CREATE DATABASE SCOPED CREDENTIAL SQLCredName
393-
WITH IDENTITY = '<user>’,
394-
SECRET = '<password>';
395-
396-
--SQL Database/Edge
397-
CREATE EXTERNAL DATA SOURCE MyTargetSQLTabl
398-
WITH
399-
(
400-
LOCATION = ' <my_server_name>.database.windows.net’,
401-
CREDENTIAL = SQLCredName
402-
);
386+
CREATE DATABASE SCOPED CREDENTIAL IoTHubCredName
387+
WITH IDENTITY = 'Shared Access Signature’,
388+
SECRET = '<policyName>';
403389

404-
--SQL Server
405-
CREATE EXTERNAL DATA SOURCE MyTargetSQLTabl
390+
CREATE EXTERNAL DATA SOURCE MyIoTHub_tweets
406391
WITH
407392
(
408-
LOCATION = ' <sqlserver://<ipaddress>,<port>’,
409-
CREDENTIAL = SQLCredName
393+
LOCATION = ' iot://iot_hub_name.azure-devices.net’,
394+
CREDENTIAL = IoTHubCredName
395+
);
396+
397+
CREATE EXTERNAL FILE FORMAT myFileFormat
398+
WITH (
399+
FORMAT_TYPE = 'CSV', --Event serialization format
400+
DATA_COMPRESSION = 'GZIP',
401+
ENCODING = ‘UTF-8’
410402
);
411403
412-
--SQL Database/Edge
413-
CREATE EXTERNAL STREAM Stream_A
404+
CREATE EXTERNAL STREAM Stream_A (user_id VARCHAR, tweet VARCHAR)
414405
WITH
415406
(
416-
DATA_SOURCE = MyTargetSQLTable,
417-
LOCATION = ‘<DatabaseName>.<SchemaName>.<TableName>’
418-
--Note: If table is container in the database, <TableName> should be sufficient
419-
--Note: Do not nejkked external file format in this case
407+
DATA_SOURCE = MyIoTHub_tweets,
408+
LOCATION = ‘<name>’,
420409
EXTERNAL_FILE_FORMAT = myFileFormat,
421-
OUTPUT_OPTIONS =
422-
‘REJECT_TYPE: Drop
410+
INPUT_OPTIONS =
411+
‘ENDPOINT: Messaging,
412+
CONSUMER_GROUP: ‘FirstConsumerGroup’
423413
);
424414
```
425415
426-
427416
### Example 7 - Azure Synapse Analytics (formerly SQL Data Warehouse)
428417
429418
Type: Output<br>
@@ -624,8 +613,6 @@ WITH (
624613
);
625614
```
626615

627-
628-
629616
### Example 12 - Azure function
630617

631618
Type: Output<br>

0 commit comments

Comments
 (0)