Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
✅ Azure Stream Analytics ✅ Fabric Eventstream
Varje post har en relaterad datatyp. En datatyp beskriver (och begränsar) den uppsättning värden som en post av den typen kan innehålla eller ett uttryck av den typen kan generera.
Observera att det är poster som har en typ och inte kolumner. Varje post i en kolumn kan ha en annan typ. Om detta blir transparent för de flesta program möjliggör det enkel hantering av schemaavvikelsescenarier och andra ovanliga skrivmönster.
Datatyper som stöds
Nedan visas listan över datatyper som stöds.
| Datatyp | Beskrivning | 
|---|---|
| Bigint | Heltal i intervallet -2^63 (-9 223 372 036 854 775 808) till 2^63-1 (9 223 372 036 854 775 807). | 
| flyta/sväva | Flyttalsnummer i intervallet - 1,79E+308 till -2,23E-308, 0 och 2,23E-308 till 1,79E+308. Decimalvärden med flyttalstecken har vanligtvis ingen exakt binär representation. Förlust av precision kan upplevas. Detta är inte specifikt för Azure Stream Analytics men sker i alla implementeringar av flyttalsnummer. | 
| nvarchar(max) | Textvärden, som består av Unicode-tecken. Obs! Ett annat värde än max stöds inte. | 
| tidpunkt | Definierar ett datum som kombineras med en tid på dagen med bråksekunder (7 siffror, 100 nanosekunders precision) som baseras på en 24-timmarsklocka och i förhållande till UTC (tidszonsförskjutning 0). | 
| lite grann | Ett heltal som kan ta värdet 1, 0 eller NULL. Detta stöds i kompatibilitetsnivå 1.2 och senare. | 
| rekord | Uppsättning namn/värdepar. Värden måste vara av datatyp som stöds. | 
| array | Ordnad samling värden. Värden måste vara av datatyp som stöds. | 
Du kan ansluta till (eller jämföra) en bigint och en flyttalsdatatyp. Det fungerar korrekt i alla fall förutom för de mycket stora bigint-värden som inte kan representeras.
Anmärkning
När du läser bigint-datatyper utanför intervallet, stöder Azure Stream Analytics, ditt Stream Analytics-jobb skulle misslyckas med att deserialisera händelserna med felmeddelandet: InputDeserializationError. Du kan förbearbeta data och konvertera dem till sträng. Ett alternativ är att använda Azure-funktioner för att förbearbeta data och konvertera sådana stora heltal till sträng.
Typkonverteringar
Det här är reglerna för datatypskonverteringar:
- Konvertering utan precisionsförlust under läs- och utdataskrivningsåtgärder är implicit och lyckas alltid
- Precisionsförlust och spill i skrivåtgärder för utdata hanteras av konfigurerad felprincip (inställd på antingen Släpp eller Försök igen)
- Typkonverteringsfel som inträffar under skrivåtgärder för utdata hanteras av felprincipen
- Typkonverteringsfel som inträffar under läsåtgärder för indata gör att jobbet släpper händelsen
En förlust av precision kan inträffa vid konvertering av värden till flyttal. Det är inte specifikt för Azure Stream Analytics utan för typen av flyttaldata i allmänhet. Därför anses det inte vara ett fel. Om varje siffra behöver sparas ska data läsas som sträng.
Gjutning av data
Det finns fyra funktioner i det strömmande SQL-språket som är användbara för att observera och justera datatypen för dina data.
- CAST : omvandla en enskild kolumn till en viss typ – misslyckas jobbet om konverteringsfel uppstår
- 
              TRY_CAST : omvandla en enskild kolumn till en viss typ – fel släpps igenom som NULL. Se indataverifiering för bästa användning TRY_CAST
- SKAPA TABELL : definiera ett enda explicit schema för indata. Rader med konverteringsfel tas bort från strömmen
- GetType : returnerar typen av en kolumn
För de flesta användningsfall är det rekommenderade alternativet att använda TRY_CAST. Den här funktionen skyddar nedströmsbearbetningen genom att säkerställa utdatatypen, samtidigt som dataförlusten förhindras genom att värdet i fel ersätts med NULL. Raden tas inte bort och det ursprungliga värdet kan fortfarande projiceras i en annan kolumn.
För starka garantier är det rekommenderade alternativet att använda CREATE TABLE. Med den här metoden kan du informera jobbet om schemat för en viss indata, utan risk för avvikelse. Kompromissen är att endast ett enda schema kan definieras för en viss indata och att icke-kompatibla rader tas bort.
Om möjligt bör alla gjutningsåtgärder utföras explicit via dessa funktioner i stället för implicit (tyst) i andra funktioner. På så sätt undviks typmatchningar, oväntade beteenden och infogningsfel för starkt inskrivna utdata som SQL-databaser. Se indataverifiering för hur du skyddar huvudfrågelogik från sådana fel.
Konvertering till bit
Värden konverteras mellan flyttal och bit med följande regler:
| Från | Till | 
|---|---|
| (BIT) 1 | (FLOAT) 1.0 | 
| (BIT) 0 | (FLOAT) 0.0 | 
| (BIT) NOLL | (FLOAT) NOLL | 
| (FLOAT) 0.0 | (BIT) 0 | 
| (FLOAT) andra värden | (BIT) 1 | 
| (FLOAT) NOLL | (BIT) NOLL | 
Skriv mappningar och serialiseringsformat
| Datatyp | CSV i | CSV ut | JSON i | JSON ut | Avro i | Avro ut | 
|---|---|---|---|---|---|---|
| bigint | sträng konverterad till 64-bitars signerat heltal | 64-bitars signerat heltal konverterat till sträng med hjälp av jobbkultur | tal: heltal konverterat till 64-bitars signerat heltal; Booleskt värde: i kompatibilitetsnivå 1.1 och under "false" konverteras till 0 konverteras "true" till 1 | tal: heltal | långt och int konverterat till 64-bitars signerat heltal; Booleskt värde: i kompatibilitetsnivå 1.1 och under false konverteras till 0 konverteras sant till 1 | lång | 
| sväva | sträng konverterad till 64 bitars signerat flyttalsnummer | 64-bitars signerat flyttalsnummer konverterat till sträng med hjälp av jobbkultur | tal: bråk konverterat till 64-bitars signerat flyttalsnummer | tal: bråk | dubbel och flyttal konverterad till 64 bitars signerat flyttalsnummer | dubbel | 
| nvarchar(max) | snöre | snöre | snöre | snöre | snöre | snöre | 
| datetime | sträng konverterad till datetime efter ISO 8601 standard | sträng med ISO 8601 standard | sträng konverterad till datetime efter ISO 8601 standard | datetime konverteras till sträng med ISO 8601 standard | sträng konverterad till datetime efter ISO 8601 standard | datetime konverteras till sträng med ISO 8601 standard | 
| bit (kompatibilitetsnivå 1.2 och senare) | strängen "true", "false" eller "null" konverteras till heltalsvärdet 1, 0 eller null på motsvarande sätt | konverteras till strängen "true" eller "false" | Booleskt värde: "false" konverteras till 0, "true" konverteras till 1 | Booleskt värde: booleskt värde | Booleskt värde: false konverteras till 0, sant konverteras till 1 | booleskt | 
| post | Inte tillgänglig | Stöds inte, "Record"-strängen matas ut | JSON-objekt | JSON-objekt | Avro-posttyp | Avro-posttyp | 
| samling | Inte tillgänglig | Det går inte att mata ut matrissträngen | JSON-objekt | JSON-objekt | Avro-posttyp | Avro-posttyp | 
Anmärkning
Ingen datatypkonvertering krävs för Parquet.
Skriv mappning när du skriver till strukturerade datalager
| Datatyp | SQL | Power BI | Azure Cosmos DB | PostgreSQL | Azure-datautforskaren | 
|---|---|---|---|---|---|
| bigint | bigint, int, smallint, tinyint, alla strängtyper (ntext, nvarchar, char, ...) | Ja | numeriskt: heltal | Bigint Om kolumntypen är smallint eller heltal uppstår felet "felaktigt binärt dataformat". | dynamisk, int, lång | 
| sväva | float, real, decimal, numerisk, alla strängtyper ( ntext, nvarchar, char, ...) | Ja | tal: bråk | dubbel precision, numeriskt. Begränsad till 1,78E+308 Om kolumntypen är verklig uppstår felet "felaktigt binärt dataformat". | dynamisk, verklig, dubbel | 
| nvarchar(max) | Alla strängtyper (ntext, nvarchar, char, uniqueidentifier...) | Ja | snöre | tecken varierande, text | dynamisk, sträng | 
| datetime | datetime, datetime2, datetimeoffset, alla strängtyper ( ntext, nvarchar, char, ...) | Ja | datetime konverteras till sträng med ISO 8601 standard | timestamptz för UTC-tidsstämpel, tidsstämpel annars | dynamic, string, datetime | 
| bit (kompatibilitetsnivå 1.2 och senare) | bigint, int, smallint, tinyint, bit, alla strängtyper (ntext, nvarchar, char, ...) | Ja | booleskt värde: 1 konverteras till sant, 0 konverteras till false | lite grann | dynamisk, bool | 
| post | Stöds inte, "Record"-strängen matas ut | Stöds inte, "Record"-strängen matas ut | JSON-objekt | Stöds inte | dynamic, bool, long, datetime, byte array, real, double, string | 
| samling | Det går inte att mata ut matrissträngen | Det går inte att mata ut matrissträngen | JSON-objekt | Stöds inte | dynamisk, sträng |