Gå till huvudinnehåll Gå till ytterligare innehåll

Hantera datatyper

När du ändrar datatypen eller datatypstorleken för en kolumn kan detta få konsekvenser för de uppgifter som använder datamängden.

Datatyper som stöds och konverteringar varierar beroende på målplattform. För specifik dokumentation för din målplattform, se Konfigurera kopplingar till mål.

Förstå effekten av att ändra en datatyp

Det finns två vanliga användningsfall för att ändra datatypstorlek eller att byta till en annan datatyp.

  • Mata in data som inte passar i den aktuella datatypen.
  • Ett krav för större numerär noggrannhet. Exempelvis att ändra SMALLINT till DECIMAL (p,s).

I de flesta fall leder ändring av datatyp till en ALTER TABLE-åtgärd vilket förhindrar dataförlust. Om exempelvis föregående datatyp var STRING (25) och den nya datatypen är STRING (50) kommer data i kolumnen med den nya datatypen att uppdateras utan problem. Men i vissa fall leder ändring av datatyp till att resultat i tabellen släpps och återskapas. Om exempelvis föregående kolumndatatyp var NUMBER och du ändrar den till DATE kommer tabellen att släppas och återskapas med siffervärden eftersom transformering till datum inte är möjligt. På samma sätt, om målplattformen inte har stöd för ALTER tabellåtgärder (som Databricks) släpps tabellen och återskapas.

Det förekommer vissa fall där det är teoretiskt möjligt att ändra en tabell men på grund av underliggande komplexitet kommer datauppgiften att släppas och återskapa tabellen. Slutligen finns det fall där potentiell dataförlust i stället för faktisk dataförlust löser ut ett släpp och en åtgärd för att återskapa. Om du exempelvis ändrar STRING(25) till STRING(1) kommer det att leda till dataförlust om inmatad data inte passar i STRING(1). Men det är möjligt att STRING(25) alltid kommer att behålla enbart ett tecken så i praktiken sker ingen dataförlust men tabellen släpps ändå för att återskapas på grund av potentiell dataförlust.

Ändringar av datatyp som kräver att tabellen släpps och återskapas oberoende av målplattform

Ändra följande datatyper leder till att tabellen släpps och återskapas.

  • BYTES
  • BLOB
  • CLOB
  • NCLOB

Målplattformar som har stöd för ändringar av datatypstorlek utan att släppa och återskapa tabellen

När du arbetar med Snowflake, Google BigQuery, Amazon Redshift, Microsoft SQL Server och Azure Synapse Analytics kan du ändra storlek på vissa datatyper utan att tabellen släpps och återskapas. Följande tabell listar vilka datatyper som stöds för var och en av föregående plattformar.

Datatyp Snowflake Google BigQuery Azure Synapse Analytics Microsoft SQL Server Amazon Redshift

INT1

Nej

Ja

Ja

Ja

Nej

INT2

Nej

Ja

Ja

Ja

Nej

INT4

Nej

Ja

Ja

Ja

Nej

INT8

Nej

Ja

Ja

Ja

Nej

REAL4

Nej

Nej

Ja

Ja

Nej

REAL8

Nej

Nej

Ja

Ja

Nej

UINT1

Nej

Ja

Ja

Ja

Nej

UINT2

Nej

Ja

Ja

Ja

Nej

UNIT4

Nej

Ja

Ja

Ja

Nej

UNIT8

Nej

Ja

Ja

Ja

Nej

NUMERIC

Ja

Ja

Ja

Ja

Nej

sträng

Ja

Ja

Ja

Ja

Ja

WSTRING

Nej

Ja

Ja

Ja

Nej

Målplattformar som har stöd för ändringar av datatyper till STRING utan att tabellen släpps och återskapas

När du flyttar data till Microsoft SQL Server och Azure Synapse Analytics kan du ändra följande datatyper till STRING utan att tabellen släpps och återskapas:

  • BOOLEAN
  • DATE
  • TIME
  • DATETIME
  • INT1
  • INT2
  • INT4
  • INT8
  • REAL4
  • REAL8
  • UINT1
  • UINT2
  • UNIT4
  • UNIT8
  • NUMERIC
  • WSTRING (stöds enbart med Azure Synapse Analytics)

Hantera JSON-data

Qlik introducerade stöd för JSON-datatypen 2025. Stöd för JSON-datatyp är inte tillgängligt i uppgifter som skapats före introduktionen. I nya uppgifter kommer kolumner med JSON-data att konverteras till den datatyp som anges för målplattformen. Data Movement gateway 2024.11.78 eller högre krävs för att upptäcka JSON-datatyp i mellanlagringsuppgifter om du använder en klienthanterad gateway.

När JSON-data konverteras kan dessa nya globala transformeringsregler skapas.

  • QLIK__PARSE_TO_JSON

    Denna regel skapas i Snowflake-projekt där mellanlagring laddar data till sjömellanlagring. Regeln läggs till i lagringsuppgiften efter mellanlagringen för att tolka alla JSON-kolumner till JSON i Snowflake.

  • QLIK__JSON_AS_VARCHAR

    Denna regel skapas i Snowflake-projekt där data mellanlagras till Snowflake, och lagringen skapar Snowflake-hanterade Iceberg-tabeller. Regeln konverterar JSON till Varchar eftersom Iceberg inte stöder Variant-typen.

Hantera befintliga JSON-data i uppgifter som skapats innan stöd för JSON-datatypen introducerades

  • Om du har befintliga uppgifter med JSON-, VARIANT- eller SUPER-data i dataplattformen som konverterats till en annan datatyp, till exempel BLOB, kanske du vill överväga att konvertera kolumner till den datatyp som används för JSON i målplattformen. Du kan utföra detta med en transformeringsregel. Detta kan krävas om du behöver använda nya kolumner tillsammans med befintliga kolumner i nedströmsuppgifter.

  • Ett annat alternativ är att konvertera kolumnerna i den nya uppgiften till samma datatyp som används i befintliga datatyper för att bibehålla bakåtkompatibilitet.

Var den här sidan till hjälp för dig?

Om du stöter på några problem med den här sidan eller innehållet på den, t.ex. ett stavfel, ett saknat steg eller ett tekniskt fel – meddela oss!