Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Fontos
Az Azure SQL Edge 2025. szeptember 30-tól megszűnik. További információkért és a migrálási lehetőségekért tekintse meg a kivonásról szóló közleményt.
Megjegyzés:
Az Azure SQL Edge már nem támogatja az ARM64 platformot.
A KÜLSŐ STREAM objektumnak kettős célja van mind a bemeneti, mind a kimeneti streamnek. Bemenetként használható az olyan eseménybetöltési szolgáltatások streamelési adatainak lekérdezéséhez, mint az Azure Event Hubs, az Azure IoT Hub (vagy az Edge Hub) vagy a Kafka, vagy kimenetként is használható a streamelési lekérdezések eredményeinek tárolására és tárolására.
Külső STREAM is megadható és létrehozható kimenetként és bemenetként olyan szolgáltatásokhoz, mint az Event Hubs vagy a Blob Storage. Ez megkönnyíti az olyan láncolási forgatókönyveket, amikor egy streamlekérdezés kimenetként megőrzi az eredményeket a külső streamben, és egy másik streamlekérdezés ugyanazon a külső streamből olvas be, mint a bemenet.
Az Azure SQL Edge jelenleg csak a következő adatforrásokat támogatja streambemenetként és kimenetként.
| Adatforrás típusa | Bemenet | Kimenet | Description |
|---|---|---|---|
| Azure IoT Edge Hub | Y | Y | Adatforrás streamelési adatok olvasásához és írásához egy Azure IoT Edge-központba. További információ: IoT Edge Hub. |
| SQL adatbázis | N | Y | Adatforrás-kapcsolat streamelési adatok SQL Database-be való írásához. Az adatbázis lehet egy helyi adatbázis az Azure SQL Edge-ben, vagy egy távoli adatbázis az SQL Serveren vagy az Azure SQL Database-ben. |
| Kafka | Y | N | Adatforrás a streamelési adatok Kafka-témakörből való olvasásához. |
Szemantika
CREATE EXTERNAL STREAM { external_stream_name }
( <column_definition> [ , <column_definition> ] * ) -- Used for Inputs - optional
WITH ( <with_options> )
<column_definition> ::=
column_name <column_data_type>
<data_type> ::=
[ type_schema_name . ] type_name
[ ( precision [ , scale ] | max ) ]
<with_options> ::=
DATA_SOURCE = data_source_name ,
LOCATION = location_name ,
[ FILE_FORMAT = external_file_format_name ] , --Used for Inputs - optional
[ <optional_input_options> ] ,
[ <optional_output_options> ] ,
TAGS = <tag_column_value>
<optional_input_options> ::=
INPUT_OPTIONS = ' [ <input_options_data> ] '
<Input_option_data> ::=
<input_option_values> [ , <input_option_values> ]
<input_option_values> ::=
PARTITIONS: [ number_of_partitions ]
| CONSUMER_GROUP: [ consumer_group_name ]
| TIME_POLICY: [ time_policy ]
| LATE_EVENT_TOLERANCE: [ late_event_tolerance_value ]
| OUT_OF_ORDER_EVENT_TOLERANCE: [ out_of_order_tolerance_value ]
<optional_output_options> ::=
OUTPUT_OPTIONS = ' [ <output_option_data> ] '
<output_option_data> ::=
<output_option_values> [ , <output_option_values> ]
<output_option_values> ::=
REJECT_POLICY: [ reject_policy ]
| MINIMUM_ROWS: [ row_value ]
| MAXIMUM_TIME: [ time_value_minutes ]
| PARTITION_KEY_COLUMN: [ partition_key_column_name ]
| PROPERTY_COLUMNS: [ ( [ output_col_name ] ) ]
| SYSTEM_PROPERTY_COLUMNS: [ ( [ output_col_name ] ) ]
| PARTITION_KEY: [ partition_key_name ]
| ROW_KEY: [ row_key_name ]
| BATCH_SIZE: [ batch_size_value ]
| MAXIMUM_BATCH_COUNT: [ batch_value ]
| STAGING_AREA: [ blob_data_source ]
<tag_column_value> ::= -- Reserved for Future Usage
);
Arguments
ADAT_FORRÁS
További információ: DATA_SOURCE.
FÁJL_FORMÁTUM
További információ: FILE_FORMAT.
HELYSZÍN
Megadja az adatforrás tényleges adatainak vagy helyének nevét.
- Edge Hub- vagy Kafka-streamobjektumok esetén a hely adja meg annak az Edge Hubnak vagy Kafka-témakörnek a nevét, amelyből olvasni vagy írni szeretne.
- SQL Stream-objektumok (SQL Server, Azure SQL Database vagy Azure SQL Edge) esetén a hely határozza meg a tábla nevét. Ha a stream ugyanabban az adatbázisban és sémában jön létre, mint a céltábla, akkor elegendő csak a Tábla neve. Ellenkező esetben teljes mértékben meg kell jelölnie a tábla nevét (
<database_name>.<schema_name>.<table_name>). - Az Azure Blob Storage streamobjektum-helye a blobtárolón belül használandó elérésiút-mintát jelenti. További információ: Az Azure Stream Analytics kimenetei.
INPUT_OPTIONS
Adja meg a beállításokat kulcs-érték párként olyan szolgáltatásokhoz, mint a Kafka és az IoT Edge Hubs, amelyek a streamelési lekérdezések bemenetei.
PARTÍCIÓK:
A témakörhöz definiált partíciók száma. A használható partíciók maximális száma legfeljebb 32 lehet (a Kafka bemeneti streamekre vonatkozik).
CONSUMER_GROUP:
Az Event és az IoT Hubs egy fogyasztói csoportban (5-re) korlátozza az olvasók számát. Ha üresen hagyja ezt a mezőt, a "$Default" fogyasztói csoportot fogja használni.
- Jövőbeli használatra fenntartva. Nem vonatkozik az Azure SQL Edge-re.
TIME_POLICY:
Azt ismerteti, hogy az események elvetése vagy az esemény időének módosítása, amikor a késői események vagy a rendelésen kívüli események átadják a tűrésértéküket.
- Jövőbeli használatra fenntartva. Nem vonatkozik az Azure SQL Edge-re.
LATE_EVENT_TOLERANCE:
A maximális elfogadható időkésés. A késés az esemény időbélyege és a rendszer órajele közötti különbséget jelöli.
- Jövőbeli használatra fenntartva. Nem vonatkozik az Azure SQL Edge-re.
OUT_OF_ORDER_EVENT_TOLERANCE:
Az események sorrendből érkezhetnek, miután végrehajtották az utazást a bemeneti adatokból a streamelési lekérdezésbe. Ezeket az eseményeket elfogadhatja az adott időpontban, vagy dönthet úgy, hogy szünetelteti egy adott időszakra az átrendezésükhöz.
- Jövőbeli használatra fenntartva. Nem vonatkozik az Azure SQL Edge-re.
OUTPUT_OPTIONS
Adja meg a beállításokat kulcs-érték párként a támogatott szolgáltatásokhoz, amelyek streamelési lekérdezések kimenetei
REJECT_POLICY: DROP | ÚJRA
Adatkonvertálási hibák esetén az adathiba-kezelési szabályzatok fajosítása.
- Az összes támogatott kimenetre vonatkozik.
MINIMUM_ROWS:
A kimenetbe írt kötegenként szükséges minimális sorok. A Parquet esetében minden köteg létrehoz egy új fájlt.
- Az összes támogatott kimenetre vonatkozik.
MAXIMUM_TIME:
Maximális várakozási idő percekben kötegenként. Ezután a köteg akkor is a kimenetbe lesz beírva, ha a minimális sorkövetelmények nem teljesülnek.
- Az összes támogatott kimenetre vonatkozik.
PARTITION_KEY_COLUMN:
A partíciókulcshoz használt oszlop.
- Jövőbeli használatra fenntartva. Nem vonatkozik az Azure SQL Edge-re.
PROPERTY_COLUMNS:
Vesszővel tagolt lista az üzenetekhez egyéni tulajdonságokként csatolt kimeneti oszlopok nevének vesszővel tagolt listájáról, ha vannak ilyenek.
- Jövőbeli használatra fenntartva. Nem vonatkozik az Azure SQL Edge-re.
SYSTEM_PROPERTY_COLUMNS:
A Service Bus-üzenetekben feltöltendő rendszertulajdonság-nevek és kimeneti oszlopok név-érték párjainak JSON-formátumú gyűjteménye. Például:
{ "MessageId": "column1", "PartitionKey": "column2" }.- Jövőbeli használatra fenntartva. Nem vonatkozik az Azure SQL Edge-re.
PARTITION_KEY:
A partíciókulcsot tartalmazó kimeneti oszlop neve. A partíciókulcs egy adott táblán belüli partíció egyedi azonosítója, amely egy entitás elsődleges kulcsának első részét képezi. Ez egy legfeljebb 1 KB méretű sztringérték.
- Jövőbeli használatra fenntartva. Nem vonatkozik az Azure SQL Edge-re.
ROW_KEY:
A sorkulcsot tartalmazó kimeneti oszlop neve. A sorkulcs egy adott partíción belüli entitás egyedi azonosítója. Ez egy entitás elsődleges kulcsának második részét képezi. A sorkulcs egy legfeljebb 1 KB méretű sztringérték.
- Jövőbeli használatra fenntartva. Nem vonatkozik az Azure SQL Edge-re.
BATCH_SIZE:
Ez a táblatároló tranzakcióinak számát jelöli, ahol a maximális érték akár 100 rekord is lehet. Az Azure Functions esetében ez a függvénynek küldött bájtokban lévő kötegméretet jelöli hívásonként – az alapértelmezett érték 256 kB.
- Jövőbeli használatra fenntartva. Nem vonatkozik az Azure SQL Edge-re.
MAXIMUM_BATCH_COUNT:
A függvénynek küldött események maximális száma hívásonként az Azure-függvény esetében – alapértelmezés szerint 100. Az SQL Database esetében ez az összes tömeges beszúrási tranzakcióval küldött rekordok maximális számát jelenti – az alapértelmezett érték 10 000.
- Minden SQL-alapú kimenetre vonatkozik
STAGING_AREA: KÜLSŐ ADATFORRÁS-objektum a Blob Storage-hoz
A nagy átviteli sebességű adatbetöltés átmeneti területe az Azure Synapse Analyticsbe
- Jövőbeli használatra fenntartva. Nem vonatkozik az Azure SQL Edge-re.
Az adatforrás típusának megfelelő támogatott bemeneti és kimeneti lehetőségekről további információt az Azure Stream Analytics – Bemenetek áttekintése és az Azure Stream Analytics – Kimenetek áttekintése című témakörben talál.
Példák
A példa: EdgeHub
Típus: Bemenet vagy kimenet.
CREATE EXTERNAL DATA SOURCE MyEdgeHub
WITH (LOCATION = 'edgehub://');
CREATE EXTERNAL FILE FORMAT myFileFormat
WITH (FORMAT_TYPE = JSON);
CREATE EXTERNAL STREAM Stream_A
WITH (
DATA_SOURCE = MyEdgeHub,
FILE_FORMAT = myFileFormat,
LOCATION = '<mytopicname>',
OUTPUT_OPTIONS = 'REJECT_TYPE: Drop'
);
B példa: Azure SQL Database, Azure SQL Edge, SQL Server
Típus: Kimenet
CREATE DATABASE SCOPED CREDENTIAL SQLCredName
WITH IDENTITY = '<user>',
SECRET = '<password>';
-- Azure SQL Database
CREATE EXTERNAL DATA SOURCE MyTargetSQLTabl
WITH (
LOCATION = '<my_server_name>.database.windows.net',
CREDENTIAL = SQLCredName
);
--SQL Server or Azure SQL Edge
CREATE EXTERNAL DATA SOURCE MyTargetSQLTabl
WITH (
LOCATION = ' <sqlserver://<ipaddress>,<port>',
CREDENTIAL = SQLCredName
);
CREATE EXTERNAL STREAM Stream_A
WITH (
DATA_SOURCE = MyTargetSQLTable,
LOCATION = '<DatabaseName>.<SchemaName>.<TableName>',
--Note: If table is contained in the database, <TableName> should be sufficient
OUTPUT_OPTIONS = 'REJECT_TYPE: Drop'
);
C példa: Kafka
Típus: Bemenet
CREATE EXTERNAL DATA SOURCE MyKafka_tweets
WITH (
--The location maps to KafkaBootstrapServer
LOCATION = 'kafka://<kafkaserver>:<ipaddress>',
CREDENTIAL = kafkaCredName
);
CREATE EXTERNAL FILE FORMAT myFileFormat
WITH (
FORMAT_TYPE = JSON,
DATA_COMPRESSION = 'org.apache.hadoop.io.compress.GzipCodec'
);
CREATE EXTERNAL STREAM Stream_A (
user_id VARCHAR,
tweet VARCHAR
)
WITH (
DATA_SOURCE = MyKafka_tweets,
LOCATION = '<KafkaTopicName>',
FILE_FORMAT = myFileFormat,
INPUT_OPTIONS = 'PARTITIONS: 5'
);