Migrera QlikView-dokument
På den här sidan beskrivs hur man migrerar QlikView-dokument och relaterat innehåll. Här finns också metodtips, begränsningar och överväganden.
Begränsningar för appar
I följande tabell visas de grundläggande appstorlekar som tillåts med Qlik Cloud beroende på ditt abonnemang.
Apptyp | Appstorlek som stöds (i minnet) | Maximalt minne under schemalagda omladdningar | Maximalt minne under manuella omladdningar |
---|---|---|---|
Standardnivå | Upp till 5 GB | Upp till 15 GB | Upp till 10 GB |
Kapacitet för stora appar | Upp till 50 GB | Beror på den inköpta kapaciteten | Beror på den inköpta kapaciteten |
Fastställande av appstorlek
Du kan mäta appens storlek på två sätt:
-
Storlek i minnet senast appen laddades om
-
Storlek på disken
Använd följande verktyg för att bestämma storleken på en app:
-
Styrningspanelen i QlikView, Komplexitets (endast på engelska)ark – Det här arket anger storlek på disk.
-
QlikView to SaaS Migration App i Qlik Cloud-migrationsverktygen har ett dedikerat delavsnitt på fliken Migrationsverktyg under UtvärderaQlik Cloud som uppskattar grundläggande RAM-fotavtryck och identifierar appar som förväntas hamna på standardnivån eller inte.
Minska problem med appstorlek
Om du får problem med hög minnesallokering på grund av stora appstorlekar finns det två huvudsakliga tillvägagångssätt som du kan använda för att minska problemen.
-
Granska och uppdatera dataladdningsskriptet i förekommande fall:
-
Ta bort oanvända fält och rader så att de inte laddas.
-
Slopa tabeller när de inte längre behövs i databehandlingen.
-
Implementera inkrementella laddningar för att optimera volymen data som behandlas.
-
Använd optimerade QVD-laddningar.
-
-
Lägg till mer kapacitet till klientorganisationen för att möjliggöra tyngre arbetsbelastningar. Se Stöd för stora appar.
Andra begränsningar och överväganden
Molnimplementeringar ger vanligtvis inte tillgång till värdens eller serverns filsystem, använd därför dessa ändringar av laddningsskriptet när du migrerar laddningsskriptet från en app lokalt till Qlik Cloud.
Komplement
QlikView-komplement fungerar inte i Qlik Cloud. Detta gäller både serverkomplement och dokumentkomplement.
Se webbplatsen för Qlik Cloud-utvecklare för anpassat utvecklingsrelaterat innehåll, inklusive API-referenser och verktyg.
I Qlik Cloud finns det vissa begränsningar när det gäller tillägg jämfört med Qlik Sense Enterprise Client-Managed. Mer information finns i Hantering av tillägg.
Du måste lägga till förfrågningar om externa resurser i listan över tillåtna resurser i Hanteringskonsol > Content Security Policy. Se Hantera Content Security Policy.
Teman
Formatinställingar för appar kan inte migreras från QlikView till Qlik Cloud. Se Formatera en app för information om formatinställningar för appar på en Qlik Cloud-app och om anpassade teman.
GeoAnalytics
Funktionalitet för QlikView GeoAnalytics-komplementobjekt har införlivats i det interna Qlik Sense-Mapobjektet. Qlik Sense-appar kan inte redigeras med de här föråldrade objekten och objekten måste byggas om med det interna Qlik Sense-Mapobjektet.
Migrera från GeoAnalytics-koppling till Qlik GeoOperations
Qlik GeoOperations i Qlik Cloud ger liknande funktioner och operationer som GeoAnalytics-koppling gör i QlikView. De stöder också många av de samma dataformaten. De skiljer sig från varandra på följande sätt:
- Qlik GeoOperations är en Avancerad analysintegrering (AAI) som är bättre lämpad för att skicka ut och bearbeta data är en koppling.
- Skriptsyntaxen för Avancerad analysintegrering är annorlunda än för kopplingar.
- Vissa GeoOperations kan också användas i diagramuttryck.
- Qlik GeoOperations ger en enda tabell. I jämförelse med vad GeoAnalytics-koppling returnerar är tabellerna gemensamma i Qlik GeoOperations.
- Vissa fält och parametrar har döpts om i Qlik GeoOperations för att vara mer konsekventa.
Följande beskriver hur du konverterar skriptet som skapats av GeoAnalytics-koppling-guiden till Qlik GeoOperations:
- I Skriptredigeraren, i GeoAnalytics-koppling-skriptkoden, kopierar du allting efter SQL fram till andra SELECT eller ";", beroende på vilken som kommer först.
- Ersätt alla ' i GeoAnalytics-koppling-skriptet med ".
-
Lägg till utvalda fältnamn från den sekundära SELECT-satsen i GeoAnalytics-koppling-skriptet till den första SELECT-satsen i GeoOperations-skriptet. Hoppa över fält som redan finns där. Lägg till namnet på källtabellen bland fältnamnen och avskilj dem med en punkt. Till exempel table.field. Det här skapar en enda gemensam tabell istället för flera olika tabeller.
-
Granska referensdokumentationen för operationen och datauppsättningen. Anpassa parametrar och fältnamn där det behövs.
En sammanfattning av de viktigaste skillnaderna finns i Fältskillnader mellan GeoOperations och GeoAnalytics
-
Lägg till följande i början av GeoOperations-skriptet:
Load * Extension GeoOperations.ScriptEval('
-
Lägg till följande i slutet av GeoOperations-skriptet:
');
Om du använder en laddad tabell med GeoAnalytics-koppling skickar du den som den andra parametern till GeoOperations.ScriptEval istället.
Eftersom Qlik GeoOperations returnerar en gemensam tabell kommer endast fältvärden som har ett motsvarande värde i den primära tabellen att returneras i de sekundära tabellerna. Om du till exempel vill hitta de närmaste flygplatserna i Tyskland för några punkter visas bara data om de flygplatser som ligger närmast punkterna. Om du vill ha alla flygplatser i Tyskland behöver de laddas separat med en LOAD-operation.
Om du laddar från en SQL-databas med en koppling borde data istället laddas med en av databaskopplingarna som till exempel ODBC-kopplingen. Se till att ladda geometrin som WKT (applicera en funktion som oftast heter st_asText() i SQL-frågan). Konvertera sedan WKT-fältet genom att skicka tabellen till Qlik GeoOperations. Det kommer att generera ett fält med geometri i formatet Qlik Sense.
Exempel på en skriptkonvertering
Exemplet på en skriptkonvertering kommer att använda följande GeoAnalytics-koppling-skript:
Gör följande:
-
Ta skriptet mellan SQL och den andra SELECT-satsen.
SELECT [LocationDbId], [Clusters_ClusterID] FROM Cluster(distance='10000', points='Points') DATASOURCE Points LOCATIONSERVICE geometry='POINT', type='XIATA', country='de', serviceName='default' -
Ersätt citationstecknen:
SELECT [LocationDbId], [Clusters_ClusterID] FROM Cluster(distance="10000", points="Points") DATASOURCE Points LOCATIONSERVICE geometry="POINT", type="XIATA", country="de", serviceName="default" -
Lägg till fält från sekundära tabeller:
SELECT [LocationDbId], [Clusters_ClusterID], [Clusters.Clusters_ClusterCenter] FROM Cluster(distance="10000", points="Points") DATASOURCE Points LOCATIONSERVICE geometry="POINT", type="XIATA", country="de", serviceName="default" -
Justera parametrarna och fältnamnen:
SELECT [LocationDbId], [ClusterID], [Clusters.ClusterPoint] as [Clusters_ClusterCenter] FROM Cluster(distance="10000", points="Points") DATASOURCE Points LOCATIONSERVICE geometry="POINT", type="XIATA", country="de", serviceName="default" -
Omslut med standardkoden:
Load * Extension GeoOperations.ScriptEval(' SELECT [LocationDbId], [ClusterID], [Clusters.ClusterPoint] as [Clusters_ClusterCenter] FROM Cluster(distance="10000", points="Points") DATASOURCE Points LOCATIONSERVICE geometry="POINT", type="XIATA", country="de", serviceName="default" ');
Den här skriptkoden kan nu användas med Qlik GeoOperations.
Fältskillnader mellan GeoOperations och GeoAnalytics
Standardfälten skiljer sig åt mellan GeoOperations- och GeoAnalytics-skript, vanligen avseende prefix. När du migrerar dina GeoAnalytics-skript till GeoOperations kan det hända att du behöver justera vissa av fältnamnen.
AddressToPoint
GeoOperations och GeoAnalytics returnerar följande fält:
-
GeoOperations: <id>, Address, AddressPoint, CountryIso2, Adm1, City, PostalCode, Street, HouseNumber, Match
-
GeoAnalytics: [<id>], [Dataset_Address], [Dataset_Geometry], [CountryIso2], [Dataset_Adm1], [Dataset_City], [Dataset_PostalCode], [Dataset_Street], [Dataset_HouseNumber], [Dataset_Match]
GeoAnalytics och GeoOperations skiljer sig från varandra på följande sätt:
-
GeoAnalytics fält har prefix från datauppsättningen.
-
Dataset_Geometry benämns AddressPoint in GeoOperations.
Samla
GeoOperations och GeoAnalytics returnerar följande fält:
-
GeoOperations: <id>, BinId, BinTable.BinPolygon, BinTable.CenterPoint
-
GeoAnalytics: [<id>], [RH2W3], [RH2W3_CenterPoint]
GeoAnalytics och GeoOperations skiljer sig från varandra på följande sätt:
-
I GeoAnalytics är RH2W3 polygonfältet och dess namn genereras baserat på rutnätsstorlek/-förhållande. I GeoOperations är fältet BinTable.BinPolygon.
-
GeoAnalytics har inte något BinId-fält.
Närmaste
GeoOperations och GeoAnalytics returnerar följande fält:
-
GeoOperations: dataset_dataset2_RelationId, dataset.<ds1 id>, dataset2.<ds2 id>, Distance
-
GeoAnalytics: [Dataset1_Dataset2_RelationId], [Dataset1.<ds1 id>], [Dataset2.<ds2 id>], [Dataset1_Dataset2_Distance]
GeoAnalytics och GeoOperations skiljer sig från varandra på följande sätt:
-
GeoOperations har inga prefix för Distance-fältet.
Kluster
GeoOperations och GeoAnalytics returnerar följande fält:
-
GeoOperations: <id>, ClusterID, Clusters.ClusterPoint, Clusters.PointCount
-
GeoAnalytics: [<id>], [Clusters_ClusterID], [Clusters_ClusterCenter], [Clusters_PointCount]
GeoAnalytics och GeoOperations skiljer sig från varandra på följande sätt:
-
Prefixen skiljer sig åt mellan GeoOperations och GeoAnalytics.
Lös upp
GeoOperations och GeoAnalytics returnerar följande fält:
-
GeoOperations: <id>, DissolvedPolygon
-
GeoAnalytics: [<id>], [<id>_Geometry]
GeoAnalytics och GeoOperations skiljer sig från varandra på följande sätt:
-
Namnet på geometrikolumnen
Intersektioner
GeoOperations och GeoAnalytics returnerar följande fält:
-
GeoOperations: dataset_dataset2_RelationId, dataset.<dataset1 id>, dataset2.<dataset2 id>, dataset.RelativeOverlap, dataset2.RelativeOverlap
-
GeoAnalytics: [Dataset1_Dataset2_RelationKey], [Dataset1.<ds1 id>], [Dataset2.<ds1 id>], [Dataset1_RelativeOverlap], [Dataset2_RelativeOverlap]
GeoAnalytics och GeoOperations skiljer sig framför allt från varandra på följande sätt:
-
Prefixen skiljer sig åt mellan GeoOperations och GeoAnalytics.
IpLookup
GeoOperations och GeoAnalytics returnerar följande fält:
-
GeoOperations: <id>, IpPoint, CountryIso2, Adm1Code, City
-
GeoAnalytics: [<id>], [IpTable_Geometry], [CountryIso2], [IpTable_Adm1Code], [IpTable_City]
GeoAnalytics och GeoOperations skiljer sig från varandra på följande sätt:
-
IpTable_Geometry in GeoAnalytics is IpPoint in GeoOperations.
-
Prefixen skiljer sig åt mellan GeoOperations och GeoAnalytics.
Load (plats datauppsättning)
GeoOperations och GeoAnalytics returnerar följande fält:
-
GeoOperations (area): LocationDbId, LocationPolygon, Name, CountryIso2, Adm1Code, Adm2Code, LocationDbType
-
GeoOperations (point): LocationDbId, LocationPoint, Name, CountryIso2, Adm1Code, Adm2Code, LocationDbType
-
GeoAnalytics: [LocationDbId], [Dataset_Geometry], [Dataset_Name], [CountryIso2], [Dataset_Adm1Code], [Dataset_Adm2Code], [LocationDbType]
GeoAnalytics och GeoOperations skiljer sig från varandra på följande sätt:
-
Geometrifälten (LocationPolygon och LocationPoint i GeoAnalytics är Dataset_Geometry in GeoOperations.
-
Prefixen skiljer sig åt mellan GeoOperations och GeoAnalytics.
PointToAddress
GeoOperations och GeoAnalytics returnerar följande fält:
-
GeoOperations: <id>, Address, AddressPoint, CountryIso2, Adm1, City, PostalCode, Street, HouseNumber, Distance
-
GeoAnalytics: [<id>], [Dataset_Address], [Dataset_Geometry], [CountryIso2], [Dataset_Adm1], [Dataset_City], [Dataset_PostalCode], [Dataset_Street], [Dataset_HouseNumber], [Dataset_Distance]
GeoAnalytics och GeoOperations skiljer sig från varandra på följande sätt:
-
Prefixen skiljer sig åt mellan GeoOperations och GeoAnalytics.
Vägar
GeoOperations och GeoAnalytics returnerar följande fält:
-
GeoOperations: <id>, Distance, Duration, Status, LowResLine
-
GeoAnalytics: [<id>], [Dataset_Distance], [Dataset_Duration], [Dataset_Status], [Dataset_PathLowRes]
GeoAnalytics och GeoOperations skiljer sig från varandra på följande sätt:
-
Geometrifältet Dataset_PathLowRes i GeoAnalytics är LowResLine in GeoOperations.
-
Prefixen skiljer sig åt mellan GeoOperations och GeoAnalytics.
Förenkla
GeoOperations och GeoAnalytics returnerar följande fält:
-
GeoOperations: <id>, Simplified_<geo field name>
-
GeoAnalytics: [<id>], [Dataset_Simplified_Geometry]
.GeoAnalytics och GeoOperations skiljer sig från varandra på följande sätt:
-
Namnen på geometrifälten skiljer sig åt mellan GeoOperations och GeoAnalytics.
TravelAreas
GeoOperations och GeoAnalytics returnerar följande fält:
-
GeoOperations: <id>, TravelArea, Cost, CostUnit, Status
-
GeoAnalytics: [<id>], [Dataset_TravelArea], [Dataset_Origin], [Dataset_Cost], [Dataset_CostUnit], [Dataset_Status]
GeoAnalytics och GeoOperations skiljer sig från varandra på följande sätt:
-
GeoOperations har inte något ursprungsfält.
-
Prefixen skiljer sig åt mellan GeoOperations och GeoAnalytics.
Inom
GeoOperations och GeoAnalytics returnerar följande fält:
-
GeoOperations: dataset_dataset2_RelationId, dataset.<dataset1 id>, dataset2.<dataset2 id>
-
GeoAnalytics: [Enclosed_Enclosing_RelationId], [Enclosed.<dataset 1/2 id>], [Enclosing.<datasets 1/2 id>]
GeoAnalytics och GeoOperations skiljer sig från varandra på följande sätt:
-
I GeoOperations-prefix ingår namn på datauppsättning, men i GeoAnalytics ingår också prefixet Enclosed.
Migrera dokumenten
Följ denna procedur när du migrerar dina QlikView-dokument till Qlik Sense-appar som du kan använda i Qlik Cloud.
Gör följande:
-
Utvärdera, identifiera och prioritera QlikView-dokument inför migreringen av dem. Du kan använda komplexitets (endast på engelska)arket i Styrningspanelen i QlikView eller funktionen utforska objekt på fliken Migrationsverktyg på QlikView to SaaS Migration App.
-
Konvertera QlikView-dokumenten till en Qlik Sense-app med QlikView-konverterare. Se följande exempel:
-
Ladda upp de konverterade QlikView-dokumenten till Qlik Cloud.
Anteckning om informationDu kan ladda upp de konverterade QlikView-dokumenten till Qlik Cloud med CLI-skriptet 7_migrateapps.ps1 som är tillgängligt tillsammans med Qlik Cloud-migreringsverktygen. När du refererar till appen i importen ska du utelämna filtillägget .qvf från "QSAppName"-värdet i exports/apps.csv.
Ladda uppgifter
Ladda uppgifter måste skapas om manuellt i Qlik Cloud.
Använd QlikView to SaaS Migration App för att identifiera laddningsuppgifterna. Du hittar laddningsuppgifterna i tabellen Information om QVPR-uppgiftsaktivering som finns på skärmen Utforska QVPR på fliken Migreringsverktyg.
Anteckna alla uppgiftsdetaljer och återskapa sedan dessa uppgifter manuellt i din Qlik Cloud-klientorganisation.
Se Schemalägga laddning av appdata för information om hur du skapar laddningsuppgifter.
Om du har uppgiftskedjor måste du använda Qlik Application Automation (QAA), läs mer i Uppgiftskedjor: introduktionskurs.
Metodtips för att konvertera QlikView-dokument
Tänk på följande när du planerar konverteringen.
QlikView-konverterare
QlikView-konverterare är ett verktyg för konvertering av QlikView-dokument till Qlik Sense-appar. Med verktyget kan du flytta en del av värdet som byggts upp i QlikView-dokument till en Qlik Sense-app.
Konverteringsverktyget kan användas med Qlik Sense Desktop. Med QlikView-konverterare kan du inte konvertera dokument som tar upp mer än 500 MB på enheten. Du kan minska dokumentets storlek utan att förlora resurser genom att minska datamängden i dokumentet eller spara det utan data. Mer information finns i Qlik Sense Desktop.
Med QlikView-konverterare kan du flytta de flesta objekt till Qlik Sense, inklusive:
- Skript
- De flesta variabler. Se QlikView variabler uteslutna från export.
- Listboxar
- Diagram och tabeller
Det finns vissa objekt som konverteraren inte kan konvertera. Följande är exempel på objekt som inte kan konverteras:
- Behållare
- Utlösare
- Makron
- Villkorssatser
- Textrutor
- Objektskikt
- Anpassade diagramfärger
- Uttryck i listboxar
Många av objekten ovan kan återskapas manuellt i Qlik Sense. Till exempel, även om utlösare inte konverteras kan utlösarens beteende när appen öppnas återskapas med standardbokmärken i Qlik Sense.
I konverteraren visas vissa, men inte alla, objekt som inte konverteras. Vi rekommenderar att du skapar en förteckning över alla dina objekt i QlikView, ark efter ark, och jämför den förteckningen med objekten som listas i konverteraren.
QlikView-konverterare (endast på engelska)
Dataladdningsskript
QlikView-skript och dataladdningsskript är i allmänhet kompatibla, men det finns vissa skillnader som du kan behöva väga in, och anpassa skriptet i Skriptredigeraren innan du kan ladda data.
QlikView använder absoluta eller relativa filsökvägar som inte stöds i Qlik Sense-standardläget, så man behöver använda mappdataanslutningar för att hänvisa till filplatserna i stället.
QlikView-syntax
Qlik Sense-syntax
Flikar med dold skriptkod
När ett QlikView-dokument med dolt skript konverteras, ignoreras delen med det dolda skriptet och det tas inte med i Qlik Sense-skriptet. Innan du konverterar dokumentet bör du öppna det i Skriptredigeraren i QlikView. Kopiera sedan koden från flikarna med dolt skript och klistra in den på vanliga skriptflikar. Observera att du inte kan dölja skriptkod i Qlik Sense.
Standardläge
Flera satser och funktioner kan inte användas, eller har begränsningar i standardläget. Mer information finns i dokumentationen om begränsning av åtkomst till filsystem.
Avsnittsåtkomst
Ett QlikView-dokument med section access kan inte importeras till Qlik Sense, eftersom det finns skillnader när det gäller format och funktioner som stöds.
Vid konvertering av dokument med section access krävs följande steg:
- Ta bort section access-koden i Skriptredigeraren i QlikView innan dokumentet konverteras.
- Konvertera dokumentet.
- Tillämpa section access i Qlik Sense-appen igen.
Tänk på vissa saker som är annorlunda i Qlik Sense:
- Användarautentiseringen har ändrats. Fältet USERID används för att autentisera alla användare, och fälten NTNAME och PASSWORD stöds inte.
- Section access tillämpas med hjälp av strikt undantag i Qlik Sense. Det innebär att du endast kan se data som du har fått specifik åtkomst till.
Om du har åtkomst till skriptet med inte till data kan du öppna appen utan data och redigera skriptet, däribland section access.
Mer information finns i Hantera säkerhet med Section Access.
Citatnotation i set-analys
I äldre QlikView-dokument, och i dokument som skapas med äldre versioner av QlikView, är citatnotationen annorlunda än i Qlik Sense. Du kan behöva ändra vissa set-analys-uttryck i Qlik Sense.
Gammal notation
Enkla och dubbla citattecken tolkas likadant i den gamla notationen. Både enkla och dubbla citattecken tolkas som en sökning. Jokertecken (*, ?) kan användas.
Ny notation
Enkla och dubbla citattecken tolkas olika i den nya notationen.
Enkla citattecken tolkas som en exakt strängjämförelse. Bara ett fältvärde hittas och jokertecken tillåts inte i söksträngen. Till exempel tolkas en asterisk som en asterisk.
Dubbla citattecken tolkas som en sökning. Jokertecken och relationsoperatorer är tillåtna och flera fältvärden kan hittas.
Till exempel kan Sum({$<Country={'Austr*'}>}Sales) behöva ändras till Sum({$<Country={"Austr*"}>}Sales)
På ett liknande sätt kan du behöva ändra numeriska jämförelser och variabeljämförelser. Till exempel kan Duration={'>3'} behöva ändras till Duration={">3"}
QlikView variabler uteslutna från export
Ett antal variabler exporteras inte från ett QlikView-dokument eftersom de bara är relevanta för QlikView eller hanteras annorlunda i Qlik Sense.
Följande variabler exporteras inte:
- Alla variabler som börjar med CD
- Alla variabler som börjar med FLOPPY
- QvPath, QvRoot, QvWorkPath, QvWorkRoot
- WinPath, WinRoot
- ErrorMode
- StripComments
- ScriptErrorCount, ScriptError
- ThousandSep, DecimalSep, MoneyThousandSep, MoneyDecimalSep, MoneyFormat
- TimeFormat, DateFormat, TimestampFormat
- MonthNames, DayNames
- ScriptErrorDetails, ScriptErrorList
- OpenUrlTimeout
- HidePrefix
- FirstWeekDay
- BrokenWeeks
- ReferenceDay
- FirstMonthOfYear
- CollationLocale
- LongMonthNames, LongDayNames