# 比較 QlikView 和 Qlik Cloud 分析

本主題說明 QlikView 和 Qlik Cloud 分析 的某些關鍵相似性和差異。

## 文件和應用程式

QlikView 文件和 Qlik Cloud 分析 應用程式具有類似的架構。兩者都是物件的容器，用來呈現要分析的資料。他們都能包含資料連線、載入指令碼、資料模型、工作表、圖表、變數等。

## 開發和取用

在 QlikView 和 Qlik Cloud 分析 中，您需要先建置應用程式或文件，才能分析資料。這代表：

1. 將資料新增至新的或現有的應用程式：
   * 在 QlikView 中，這涉及建立並執行載入指令碼，這定義要將哪些資料載入應用程式中。載入指令碼從一個或多個資料來源將資料提取到應用程式中，然後建立作為所有分析基礎的資料模型。

   * 在 Qlik Cloud 中，使用者可以透過傳統的指令碼編輯器或資料管理員的拖放使用者介面，從已經在資料目錄中的資料、從資料檔案、從現有的資料連線建立應用程式。
2. 分析時需要建立使用者介面。這代表建立不同的視覺化 (例如橫條圖、圓形圖、表格)、用來定義不同 KPI 的不同運算式，以及不同的選項物件 (清單方塊、滑桿、輸入方塊等)。這也代表以視覺方式為不同的元件分組，例如工作表，以便向不熟悉內容的使用者呈現資料。

傳統上，這兩個步驟已由專業的商業智慧專家進行，他們並不是資料的主要取用者。資料的主要使用者是使用該應用程式的業務使用者。此情境通常稱為引導式分析，因為商業使用者在某種程度上是接受引導，取用要分析的資料。不過，取用者在選取選項方面並沒有接受引導。他們仍然可以完全自由地以任何順序選取應用程式中的任何內容。

Qlik Cloud 和 QlikView 都能用於引導式分析。

Qlik Cloud 分析 為各式各樣的使用者和使用案例提供領先業界的現代分析功能——從自助分析到互動式儀表板和應用程式、交談式分析、中繼資料目錄和譜系、行動分析、報告和警示。這透過 AI (人工智慧) 提供的深入資訊建議、自動化機器學習、自動化和自然語言互動來加強並增強人類直覺。這改變了 QlikView 的思考。

因此，Qlik Cloud 分析 對於自助而言是更好的工具。在 QlikView 中，某些自助內容仍然可行，但這要求使用者具有更高的技術熟練度。

## 開發工具

在 QlikView，您需要有桌面版本才能開發應用程式。開發是在本機完成的，沒有連線到QlikView伺服器。QlikView Desktop 僅在 Microsoft Windows. 執行

Qlik Cloud 分析 是雲端式共同作業環境，用來開發和共用內容及深入資訊。這代表使用者的電腦可以具有各種作業系統。使用者介面非常直覺，並提供簡易的編寫工具，協助各層級的使用者建立進階圖表和視覺化呈現。

Qlik Cloud 分析 也提供完整的原生交談分析體驗 Insight Advisor，其採用自然語言處理來理解使用者的意圖，並依每次互動隨之學習，以發掘資料內的聯結、關聯和趨勢。

## 將資料從來源移至分析

在 QlikView 和 Qlik Cloud 分析 中，會在特定時間點載入資料，然後在記憶體中分析。

分析在資料集進行，這是真實資料的快照。快照來自執行應用程式載入指令碼的時間點。分析絕對不是即時，雖然您可以更頻繁地執行載入指令碼，例如每 15 秒執行一次，達到幾乎即時的情況。

從管理觀點，這代表您先建立應用程式，然後設定排程器，以根據業務需求重新整理資料 (執行指令碼)。

在 QlikView 中，這需要將應用程式手動載入或儲存至來源資料夾，之後透過 QlikView Publisher 和 QlikView Server 排程載入。

透過 Qlik Cloud 分析，具有適當權限的使用者可以在 Qlik Cloud 環境中安全地輕鬆載入或排程應用程式載入。

## 資料連線

QlikView 沒有資料連線的物件庫。這透過 Microsoft OLE DB/ ODBC 介面運用檔案或資料庫。若要這麼做，您必須安裝驅動程式，以支援資料庫管理系統 (DBMS)，且您必須設定資料庫作為 ODBC 資料來源。這在 PC 和 Qlik 伺服器上進行。對於 Amazon S3、Snowflake 和 Azure 等 Web 連線，您必須下載和安裝 Qlik 網頁連接器。

Qlik Cloud 分析 有內建資料連線的物件庫，可用來連線至檔案、內部部署資料庫以及雲端資料來源。物件庫允許在使用者和應用程式之間共用資料來源。這也更容易對資料連線套用控管。

## 指令碼編輯器

在 QlikView 中，您沒有圖形介面可載入資料。應用程式開發人員必須在指令碼編輯器中建立載入指令碼。

在 Qlik Cloud 分析 中，您也可以在指令碼編輯器中建立載入指令碼。或者，雲端使用者可以透過傳統的指令碼編輯器或 資料管理員 拖放圖形介面，從已經在 資料目錄 中的資料、從資料檔案、從現有的資料連線建立應用程式。

## 指令碼語法

QlikView 和 Qlik Cloud 分析 中的指令碼語法大部分相同。不過，在指令碼的製作方式上，有一些值得注意的差異。

### 限制

Qlik Cloud 不支援在函數、陳述式和變數中使用 Windows 檔案系統路徑。而會使用物件庫連線，即前往資料和指令碼檔案的連線字串，例如 lib://DataFiles/myData.txt。

適用於 QlikView 和用戶端管理 Qlik Sense (在標準或舊版模式) 的數個陳述式、變數及函數在 Qlik Cloud 中不能使用，或者有使用限制。一般而言，這些限制加諸於與 Windows 檔案系統路徑相關的陳述式、變數和函數。

在資料載入指令碼中使用不受支援的陳述式會在載入指令碼執行時產生錯誤。可以在指令碼記錄檔中找到錯誤訊息。使用不受支援的變數及函數不會產生錯誤訊息或記錄檔項目。該函數會改為傳回 NULL 值。

在您編輯資料載入指令碼時，不會指明變數、陳述式或函數不受支援。

### Qlik Cloud 中變數、陳述式和函數的適用性

如果您計劃在 Qlik Cloud 中重新使用來自 QlikView 或用戶端管理 Qlik Sense 的資料載入指令碼，請查閱下列表格以了解支援哪些變數、陳述式和函數及其要求。

#### 系統變數

| 變數 | 適用性 | 定義 |
| --- | --- | --- |
| Floppy | 不支援 | 傳回所找到第一個軟碟機的磁碟機代號，通常是 a:。 |
| CD | 不支援 | 傳回所找到第一個光碟機的磁碟機代號。如果找不到 CD-ROM，則會傳回 c:。 |
| QvPath | 不支援 | 會傳回 Qlik Sense 執行檔的瀏覽字串。 |
| QvRoot | 不支援 | 會傳回 Qlik Sense 執行檔的根目錄。 |
| QvWorkPath | 不支援 | 將瀏覽字串傳回目前 Qlik Sense 應用程式。 |
| QvWorkRoot | 不支援 | 傳回目前 Qlik Sense 應用程式的根目錄。 |
| WinPath | 不支援 | 將瀏覽字串傳回 Windows。 |
| WinRoot | 不支援 | 傳回 Windows 的根目錄。 |
| $(include=...) | 受支援的輸入：使用物件庫連線的路徑 | Include/Must\_Include 變數會指定包含應該納入指令碼並且評估為指令碼之文字的檔案。它不用於新增資料。您可以將指令碼的各部分儲存在獨立文字檔中，並在數個應用程式中重複使用。這是使用者定義的變數。 |

#### 一般指令碼陳述式

| 陳述式 | 適用性 | 定義 |
| --- | --- | --- |
| [二元](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Binary.htm) | 受支援的輸入：使用物件庫連線的路徑 | binary 陳述式用來從另一個應用程式載入資料。 |
| Connect | 不支援 | CONNECT 陳述式用於定義 Qlik Sense 對一般資料庫的存取，透過 OLE DB/ODBC 介面。針對 ODBC，資料來源需要先使用 ODBC 管理員指定。 |
| [目錄](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Directory.htm) | 受支援的輸入：使用物件庫連線的路徑 | Directory 陳述式會在後續 LOAD 陳述式中定義要在其中尋找資料檔的目錄，直到發出新的 Directory 陳述式為止。 |
| Execute | 不支援 | Execute 陳述式用來在 Qlik Sense 載入資料時，執行其他程式。例如，進行必要的轉換。 |
| [從...載入](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm) | 受支援的輸入：使用物件庫連線的路徑 | LOAD 陳述式可以從檔案、指令碼中定義的資料、先前載入的表格、網頁、後續 SELECT 陳述式的結果或自動產生的資料來載入欄位。 |
| [儲存到...](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Store.htm) | 受支援的輸入：使用物件庫連線的路徑 | Store 陳述式建立 QVD、Parquet、CSV 或 TXT 檔案。 |

#### 指令碼控制陳述式

| 陳述式 | 受支援的輸入 | 傳回的輸出 | 定義 |
| --- | --- | --- | --- |
| [For each..next](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptControlStatements/For%20Each.htm)<br><br><br>filelist mask/dirlist mask | 物件庫連線 | 物件庫連線 | filelist mask 語法會對於符合 filelist mask 的目前目錄中的所有檔案產生逗號分隔清單。dirlist mask 語法會對於符合資料夾目錄名稱遮罩的目前資料夾中的所有資料夾產生逗號分隔清單。 |

#### 檔案函數

| 函數 | 受支援的輸入 | 傳回的輸出 | 定義 |
| --- | --- | --- | --- |
| [屬性](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/FileFunctions/Attribute.htm) | 物件庫連線 | 以文字形式傳回各種媒體檔案的中繼標記值。 |  |
| [ConnectString](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/FileFunctions/ConnectString.htm) | 物件庫連線名稱 | 傳回 ODBC 或 OLE DB 連線的作用中連線字串。 |  |
| [FileDir](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/FileFunctions/FileDir.htm) | 物件庫連線 | FileDir 函數會傳回一個字串，其中包含目前正在讀取之表格檔案的目錄路徑。 |  |
| [FilePath](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/FileFunctions/FilePath.htm) | 物件庫連線 | FilePath 函數會傳回一個字串，其中包含目前正在讀取之表格檔案的完整路徑。 |  |
| [FileSize](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/FileFunctions/FileSize.htm) | 物件庫連線 | FileSize 函數會傳回一個整數，其中包含檔案 filename 或 (若未指定 filename) 目前正在讀取之表格檔案的大小 (以位元組為單位)。 |  |
| [FileTime](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/FileFunctions/FileTime.htm) | 物件庫連線 | FileTime 函數會以指定檔案上次修改的 UTC 格式傳回時間戳記。若未指定檔案，函數會以目前讀取表格檔案上次修改的 UTC 傳回時間戳記。 |  |
| GetFolderPath() | 不支援 | 傳回的輸出：絕對路徑 | GetFolderPath 函數會傳回 Microsoft Windows SHGetFolderPath 函數的值。此函數會輸入 Microsoft Windows 資料夾的名稱，並傳回資料夾的完整路徑。 |
| [QvdCreateTime](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/FileFunctions/QvdCreateTime.htm) | 物件庫連線 | 此指令碼函數會從 QVD 檔案傳回 XML 標頭時間戳記 (如果呈現的話)，否則會傳回 NULL。 在時間戳記中，所提供時間為協調世界時。 |  |
| [QvdFieldName](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/FileFunctions/QvdFieldName.htm) | 物件庫連線 | 此指令碼函數會傳回 QVD 檔案中的欄位編號 fieldno 名稱。如果該欄位不存在，則會傳回 NULL。 |  |
| [QvdNoOfFields](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/FileFunctions/QvdNoOfFields.htm) | 物件庫連線 | 此指令碼函數會傳回 QVD 檔案中的欄位數。 |  |
| [QvdNoOfRecords](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/FileFunctions/QvdNoOfRecords.htm) | 物件庫連線 | 此指令碼函數會傳回 QVD 檔案中的目前記錄數。 |  |
| [QvdTableName](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/FileFunctions/QvdTableName.htm) | 物件庫連線 | 此指令碼函數會傳回 QVD 檔案中儲存的表格名稱。 |  |

#### 系統函數

| 函數 | 適用性 | 定義 |
| --- | --- | --- |
| DocumentPath() | 不支援 | 此函數會傳回一個字串，其中包含目前 Qlik Sense 應用程式的完整路徑。 |
| GetRegistryString() | 不支援 | 傳回含指定登錄路徑的具名登錄機碼值。此函數可用於類似圖表與指令碼中。僅適用於 QlikView。 |

### 自動行事曆

在 QlikView 中，應用程式開發人員必須手動建立行事曆。

在 Qlik Cloud 分析 中，行事曆由資料管理員自動建立。行事曆使用一種稱為衍生欄位的功能，這在 QlikView 中不存在。

### 從網頁檔案載入

在 QlikView 中，您可以擁有直接從網頁表格載入的 Load 陳述式。

在 Qlik Cloud 分析 中，您可從網頁檔案資料連線載入資料。

### 區段存取

區段存取可用於 QlikView 和 Qlik Cloud 分析，以定義授權。基本功能皆相同。區段存取會比較外部提供的 user ID 與授權表格的內容。

不過，此表格的內容在兩個產品之間稍有差異。

在 QlikView 中，驗證的使用者名稱應儲存在稱為 NTNAME 的欄位中。在 Qlik Cloud 分析 中，相應的欄位稱為 USERID。在這兩種情況下，此欄位可用於任何驗證的使用者，包括在未使用 Windows 整合安全性時。

在 QlikView 中，安全性群組可儲存在 NTNAME 中。在 Qlik Cloud 分析 中，安全性群組應儲存在稱為 GROUPS 的獨立欄位。

在 QlikView 中，有可用於授權的其他欄位 NTSID 和 NTDOMAINSID。兩者都稱為 Windows 的內部安全性 ID。這些欄位不存在於 Qlik Cloud 分析。

在 QlikView 中，不可使用舊版欄位 SERIAL、 USERID 和 PASSWORD，才能確保安全的環境。這些欄位不存在於 Qlik Cloud 分析。

在兩個產品中，若在伺服器發佈應用程式，則可達到適當的安全性層級。不過，若使用桌面版本開啟含有區段存取的檔案，兩個產品會有不同的行為。在 QlikView Desktop 中，會比對 NTNAME 與作業系統提供的 Windows 使用者名稱，如果正確，使用者就能開啟檔案。在 Qlik Sense Desktop 中，程式將會拒絕開啟檔案。

## 文件和內容管理

在兩個產品中，有一些應用程式或文件層級的屬性。這包括應用程式名稱、佈景主題和樣式設定。在 QlikView 中，會在文件屬性視窗中蒐集所有相關屬性。在Qlik Cloud 分析中，可以從應用程式概述存取屬性。

在 QlikView 中，有運算式概述對話方塊，這會列出應用程式的所有運算式。您可以搜尋並取代應用程式中所有運算式中的字串。

在 Qlik Cloud 分析 中，您可以使用主項目，以定義可以在應用程式中許多地方使用的維度和量值。

## 管理 活動中心

Qlik Cloud 有活動中心，用來管理授權、使用者指派、空間、佈景主題和延伸。管理活動中心不應與Qlik 管理主控台（QMC）混淆，後者用於管理QlikView。 如需更多關於 管理 的 Qlik Cloud 活動中心的資訊，請參閱[使用管理活動中心](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/management-console.htm)。

## 應用程式發佈

在 Qlik Cloud 中，會在空間內組織應用程式。空間是活動中心內儲存應用程式的區域。共享空間用於協同開發應用程式並控制應用程式的存取。 如需更多資訊，請參閱[管理空間](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-administer-spaces.htm)。

Qlik Cloud中的應用程式不會在其資料來源更新時自動更新。您可以手動重新載入應用程式或排程重新載入。 如需更多資訊，請參閱[載入應用程式資料](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/reloading-apps-cloud-hub.htm)。

## 安全性管理

Qlik Cloud 將存取權限指派至使用者和空間，以管理安全性。具有租用戶管理員角色的使用者可以為使用者新增和移除存取權。 如需更多資訊，請參閱[使用者管理](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/SaaS-user-management.htm)和 [管理空間](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-administer-spaces.htm)。如果您要維護 Qlik Cloud 和 QlikView 環境的混合式環境，請參閱[混合式環境](https://help.qlik.com/zh-TW/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/Security.htm#anchor-7)。