@@ -8,7 +8,7 @@ ms.topic: conceptual
8
8
author : SQLSourabh
9
9
ms.author : sourabha
10
10
ms.reviewer : sstein
11
- ms.date : 05/04 /2020
11
+ ms.date : 05/06 /2020
12
12
---
13
13
14
14
# CREATE EXTERNAL STREAM (Transact-SQL)
60
60
61
61
- [ EXTERNAL DATA SOURCE] ( /sql/t-sql/statements/create-external-data-source-transact-sql/ )
62
62
- [ 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.
64
64
- ** INPUT_OPTIONS** : Specify options as key-value pairs for services such as Event and IOT Hubs that are inputs to streaming queries
65
65
- CONSUMER_GROUP:
66
66
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
112
112
113
113
## Examples
114
114
115
- ### Example 1 - Event Hub
115
+ ### Example 1 - EdgeHub
116
116
117
117
Type: Input or Output<br >
118
118
Parameters:
119
- - Input or Output:
119
+ - Input or Output
120
120
- Alias
121
- - Service Bus namespace
122
- - Event Hub name
123
- - Event Hub policy name
124
- - Event Hub policy key
125
121
- Event serialization format
126
122
- Encoding
127
123
- Input only:
128
- - Event Hub consumer group
129
124
- Event compression type
130
- - Output only:
131
- - Partition key column
132
- - Property columns
133
125
134
126
Syntax:
135
127
136
128
``` 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://'
146
133
);
147
134
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' ,
154
138
);
155
139
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’
172
148
);
173
149
```
174
150
175
151
176
- ### Example 2 - IOT Hub
152
+ ### Example 2 - Azure SQL Database, Azure SQL Edge, SQL Server
177
153
178
- Type: Input <br >
154
+ Type: Output <br >
179
155
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
190
164
191
165
Syntax:
192
166
193
167
``` 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 > ' ;
197
171
198
- CREATE EXTERNAL DATA SOURCE MyIoTHub_tweets
172
+ -- Azure SQL Database
173
+ CREATE EXTERNAL DATA SOURCE MyTargetSQLTabl
199
174
WITH
200
175
(
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
+ );
206
179
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
212
186
);
213
187
214
- CREATE EXTERNAL STREAM Stream_A (user_id VARCHAR , tweet VARCHAR )
188
+ --SQL Database/Edge
189
+ CREATE EXTERNAL STREAM Stream_A
215
190
WITH
216
191
(
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
219
196
EXTERNAL_FILE_FORMAT = myFileFormat,
220
- INPUT_OPTIONS =
221
- ‘ENDPOINT: Messaging,
222
- CONSUMER_GROUP: ‘FirstConsumerGroup’
197
+ OUTPUT_OPTIONS =
198
+ ‘REJECT_TYPE: Drop
223
199
);
224
200
```
225
201
226
-
227
202
### Example 3 - Kafka
228
203
229
204
Type: Input<br>
@@ -261,13 +236,11 @@ WITH
261
236
LOCATION = ‘< KafkaTopicName> ’,
262
237
-- JSON: Format, CSV: Delimiter and Encoding, AVRO: None
263
238
EXTERNAL_FILE_FORMAT = myFileFormat,
264
-
265
239
INPUT_OPTIONS =
266
240
‘PARTITIONS: 5 ’
267
241
);
268
242
```
269
243
270
-
271
244
### Example 4 - Blob storage
272
245
273
246
Type: Input or Output<br >
@@ -332,98 +305,114 @@ WITH
332
305
);
333
306
```
334
307
335
-
336
- ### Example 5 - EdgeHub
308
+ ### Example 5 - Event Hub
337
309
338
310
Type: Input or Output<br>
339
311
Parameters:
340
- - Input or Output
312
+ - Input or Output:
341
313
- Alias
314
+ - Service Bus namespace
315
+ - Event Hub name
316
+ - Event Hub policy name
317
+ - Event Hub policy key
342
318
- Event serialization format
343
319
- Encoding
344
320
- Input only:
321
+ - Event Hub consumer group
345
322
- Event compression type
323
+ - Output only:
324
+ - Partition key column
325
+ - Property columns
346
326
347
327
Syntax:
348
328
349
329
```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
354
339
);
355
340
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 = ‘| ’
362
347
);
363
348
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: ()’
372
365
);
373
366
```
374
367
368
+ ### Example 6 - IOT Hub
375
369
376
- ### Example 6 - SQL Database, SQL Edge, SQL Server
377
-
378
- Type: Output<br >
370
+ Type: Input<br>
379
371
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
388
382
389
383
Syntax:
390
384
391
385
```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>' ;
403
389
404
- -- SQL Server
405
- CREATE EXTERNAL DATA SOURCE MyTargetSQLTabl
390
+ CREATE EXTERNAL DATA SOURCE MyIoTHub_tweets
406
391
WITH
407
392
(
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’
410
402
);
411
403
412
- --SQL Database/Edge
413
- CREATE EXTERNAL STREAM Stream_A
404
+ CREATE EXTERNAL STREAM Stream_A (user_id VARCHAR, tweet VARCHAR)
414
405
WITH
415
406
(
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>’,
420
409
EXTERNAL_FILE_FORMAT = myFileFormat,
421
- OUTPUT_OPTIONS =
422
- ‘REJECT_TYPE: Drop
410
+ INPUT_OPTIONS =
411
+ ‘ENDPOINT: Messaging,
412
+ CONSUMER_GROUP: ‘FirstConsumerGroup’
423
413
);
424
414
```
425
415
426
-
427
416
### Example 7 - Azure Synapse Analytics (formerly SQL Data Warehouse)
428
417
429
418
Type: Output<br>
@@ -624,8 +613,6 @@ WITH (
624
613
);
625
614
```
626
615
627
-
628
-
629
616
### Example 12 - Azure function
630
617
631
618
Type: Output<br >
0 commit comments