Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penting
Azure SQL Edge dihentikan per 30 September 2025. Untuk informasi selengkapnya dan opsi migrasi, lihat Pemberitahuan Penghentian Layanan.
Nota
Azure SQL Edge tidak lagi mendukung platform ARM64.
Objek EXTERNAL STREAM memiliki tujuan ganda dari aliran input dan output. Ini dapat digunakan sebagai input untuk mengkueri data streaming dari layanan penyerapan peristiwa seperti Azure Event Hubs, Azure IoT Hub (atau Edge Hub) atau Kafka atau dapat digunakan sebagai output untuk menentukan di mana dan cara menyimpan hasil dari kueri streaming.
ALIRAN EKSTERNAL juga dapat ditentukan dan dibuat sebagai output dan input untuk layanan seperti Azure Event Hubs atau penyimpanan Blob. Hal ini memfasilitasi skenario chaining di mana kueri streaming bertahan hasil ke aliran eksternal sebagai output dan kueri streaming lain membaca dari aliran eksternal yang sama dengan input.
Azure SQL Edge saat ini hanya mendukung sumber data berikut sebagai input dan output stream.
| Jenis sumber data | Masukan | Keluaran | Description |
|---|---|---|---|
| Azure IoT Edge | Ya | Ya | Sumber data untuk membaca dan menulis data streaming ke hub Azure IoT Edge. Untuk informasi selengkapnya, lihat IoT Edge Hub. |
| SQL Database | N | Ya | Koneksi sumber data untuk menulis data streaming ke SQL Database. Database dapat menjadi database lokal di Azure SQL Edge, atau database jarak jauh di SQL Server atau Azure SQL Database. |
| Kafka | Ya | N | Sumber data untuk membaca data streaming dari topik Kafka. |
Syntax
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
Sumber_Data
Untuk informasi selengkapnya, lihat DATA_SOURCE.
FILE_FORMAT
Untuk informasi selengkapnya, lihat FILE_FORMAT.
TEMPAT
Menentukan nama untuk data atau lokasi aktual di sumber data.
- Untuk objek stream Tepi Hub atau Kafka, lokasi menentukan nama topik Tepi Hub atau Kafka untuk dibacakan atau dituliskan.
- Untuk objek aliran SQL (SQL Server, Azure SQL Database, atau Azure SQL Edge), lokasi menentukan nama tabel. Jika stream dibuat dalam database dan skema yang sama dengan tabel tujuan, maka dengan nama Tabel sudah cukup. Jika tidak, Anda harus sepenuhnya memenuhi syarat nama tabel (
<database_name>.<schema_name>.<table_name>). - Untuk lokasi objek stream Azure Blob Storage mengacu pada pola jalur yang digunakan di dalam wadah blob. Untuk informasi selengkapnya, lihat Output dari Azure Stream Analytics.
INPUT_OPTIONS
Tentukan opsi sebagai pasangan kunci-nilai untuk layanan seperti Kafka dan IoT Edge Hubs, yang merupakan input ke kueri streaming.
PARTISI:
Jumlah partisi yang ditentukan untuk topik. Jumlah maksimum partisi yang dapat digunakan dibatasi hingga 32 (Berlaku untuk Aliran Input Kafka).
CONSUMER_GROUP:
Event dan IoT Hubs membatasi jumlah pembaca dalam satu grup konsumen (hingga 5). Membiarkan bidang ini kosong akan menggunakan kelompok konsumen '$Default'.
- Disiapkan untuk penggunaan di masa mendatang. Tidak berlaku untuk Azure SQL Edge.
TIME_POLICY:
Menjelaskan apakah akan menghilangkan peristiwa atau menyesuaikan waktu peristiwa saat peristiwa terlambat atau peristiwa yang tidak berurutan melewati nilai toleransinya.
- Disiapkan untuk penggunaan di masa mendatang. Tidak berlaku untuk Azure SQL Edge.
LATE_EVENT_TOLERANCE:
Penundaan waktu maksimum yang dapat diterima. Penundaan mewakili perbedaan antara cap waktu acara dan jam sistem.
- Disiapkan untuk penggunaan di masa mendatang. Tidak berlaku untuk Azure SQL Edge.
OUT_OF_ORDER_EVENT_TOLERANCE:
Peristiwa dapat tiba secara tidak berurutan setelah melakukan perjalanan dari input ke kueri streaming. Peristiwa ini dapat diterima apa adanya, atau Anda dapat memilih untuk berhenti sejenak selama periode yang ditetapkan untuk menyusun ulang peristiwa tersebut.
- Disiapkan untuk penggunaan di masa mendatang. Tidak berlaku untuk Azure SQL Edge.
OUTPUT_OPTIONS
Tentukan opsi sebagai pasangan kunci-nilai untuk layanan yang didukung yang merupakan output untuk kueri streaming
REJECT_POLICY: DROP | PENGULANGAN
Spesies kebijakan penanganan kesalahan data saat terjadi kesalahan konversi data.
- Berlaku untuk semua output yang didukung.
MINIMUM_ROWS:
Baris minimum diperlukan per batch yang ditulis ke output. Untuk Parket, setiap batch membuat file baru.
- Berlaku untuk semua output yang didukung.
MAXIMUM_TIME:
Waktu tunggu maksimum dalam menit per batch. Setelah waktu ini, batch akan ditulis ke output bahkan jika persyaratan baris minimum tidak terpenuhi.
- Berlaku untuk semua output yang didukung.
PARTITION_KEY_COLUMN:
Kolom yang digunakan untuk kunci partisi.
- Disiapkan untuk penggunaan di masa mendatang. Tidak berlaku untuk Azure SQL Edge.
PROPERTY_COLUMNS:
Daftar kolom output yang dipisahkan koma yang dilampirkan ke pesan sebagai properti kustom, jika disediakan.
- Disiapkan untuk penggunaan di masa mendatang. Tidak berlaku untuk Azure SQL Edge.
SYSTEM_PROPERTY_COLUMNS:
Bus LayananKumpulan pasangan nama/nilai berformat JSON untuk nama Properti Sistem dan kolom output yang akan diisikan di pesan Azure Service Bus. Contohnya,
{ "MessageId": "column1", "PartitionKey": "column2" }.- Disiapkan untuk penggunaan di masa mendatang. Tidak berlaku untuk Azure SQL Edge.
PARTITION_KEY:
Nama kolom output yang berisi kunci partisi. Kunci partisi adalah pengidentifikasi unik untuk partisi dalam tabel tertentu yang membentuk bagian pertama dari kunci utama entitas. Ini adalah nilai string yang mungkin berukuran hingga 1 KB.
- Disiapkan untuk penggunaan di masa mendatang. Tidak berlaku untuk Azure SQL Edge.
ROW_KEY:
Nama kolom output yang berisi kunci baris. Kunci baris adalah pengidentifikasi unik untuk entitas dalam partisi tertentu. Kunci baris membentuk bagian kedua dari kunci primer entitas. Kunci baris adalah nilai string yang mungkin berukuran hingga 1 KB.
- Disiapkan untuk penggunaan di masa mendatang. Tidak berlaku untuk Azure SQL Edge.
BATCH_SIZE:
Ini menunjukkan jumlah transaksi untuk penyimpanan tabel di mana maksimum dapat mencapai 100 rekaman. Untuk Azure Functions, ini menunjukkan ukuran batch dalam byte yang dikirim ke fungsi per panggilan - defaultnya adalah 256 kB.
- Disiapkan untuk penggunaan di masa mendatang. Tidak berlaku untuk Azure SQL Edge.
MAXIMUM_BATCH_COUNT:
Jumlah maksimum peristiwa yang dikirim ke fungsi per panggilan untuk Azure Function - defaultnya adalah 100. Untuk SQL Database, ini menunjukkan jumlah maksimum rekaman yang dikirim dengan setiap transaksi sisipan massal - default adalah 10.000.
- Berlaku untuk semua output berbasis SQL
STAGING_AREA: Objek SUMBER DATA EKSTERNAL ke Blob Storage
Area penahapan untuk penyerapan data throughput tinggi ke Azure Synapse Analytics
- Disiapkan untuk penggunaan di masa mendatang. Tidak berlaku untuk Azure SQL Edge.
Untuk informasi selengkapnya tentang opsi input dan output yang didukung yang sesuai dengan jenis sumber data, lihat Azure Stream Analytics - Gambaran Umum Input dan Azure Stream Analytics - Gambaran Umum Output masing-masing.
Examples
Contoh A: EdgeHub
Jenis: Input atau Output.
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'
);
Contoh B: Azure SQL Database, Azure SQL Edge, SQL Server
Tipe: Output
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'
);
Contoh C: Kafka
Tipe: Input
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'
);