對資料載入與維度建置進行除錯

Essbase 資料載入與維度建置的問題包含不正確的載入或失敗的程序。來源可能包含不明的成員或遺漏 / 無效的欄位、載入規則可能無效,或沒有伺服器或來源資料的連線。錯誤日誌可協助您進行除錯。

如果資料來源未正確載入至 Essbase 伺服器,請確定您已連線至適當的應用程式和資料庫,且您正在載入正確的資料來源。

如果仍然遇到問題,請參閱下列主題:

在您更正問題後,可以重新載入錯誤日誌,以重新載入未載入的記錄。請參閱:從維度建置載入與資料載入錯誤日誌

確認 Essbase 伺服器可用

如果您無法載入資料,請確定 Essbase 伺服器正在執行中。嘗試存取 Essbase 伺服器以進行其他作業。

例如,確認您可以連線至 Essbase 應用程式進行擷取:嘗試在 Smart View 中執行查詢。

驗證來源資料是否可用

如果 Essbase 無法存取您要載入的來源資料,請確定 (如果是檔案) 已解除鎖定,且路徑和副檔名是正確的。如果來源資料是外部資料庫,請確定來源資料在執行中,而且您可以連線。

檢查下列有關來源資料的詳細資訊。

  • 來源資料未開啟 (例如,是否有人編輯來源資料?)。

    Essbase 只能載入未被其他使用者或應用程式鎖定的來源資料。

  • 來源資料具有正確的副檔名。

    文字檔的副檔名必須是 .txt;規則檔的副檔名必須是 .rul

  • 來源資料檔名稱與路徑名稱是正確的。

    檢查拼字錯誤。

  • 來源資料位於指定的位置。

    確定沒有人移動或刪除來源資料檔。

  • 如果您使用 SQL 資料來源:

    • 連線詳細資訊 (例如使用者名稱、密碼以及資料庫名稱) 正確無誤。

    • 您可以在不使用 Essbase 的情況下連線至 SQL 來源資料。

檢查錯誤日誌

執行資料載入或維度建置時,最好將 Essbase 寫入錯誤日誌,因為日誌是寶貴的除錯工具。它會列出在維度建置或資料載入期間發生的錯誤,並包含無法載入的記錄。

修正錯誤之後,您可以從錯誤日誌重新載入。如果沒有錯誤日誌,請檢查下列條件是否存在:

  • 執行資料載入或維度建置工作的人員已設定錯誤日誌。執行資料載入或維度建置時,您可以告知 Essbase 在發生錯誤時中止資料載入,或將錯誤寫入 / 附加至日誌。

    Essbase 為維度建置或資料載入建立錯誤日誌時,會在立方體目錄中建立該日誌。檔案格式為 err_<databasename>_<number>.txt

  • 資料來源與 Essbase 伺服器皆可使用。

    請參閱驗證 Essbase 伺服器是否可用驗證來源資料是否可用

  • Essbase 伺服器在資料載入期間當機。

    如果是,您可能會在用戶端上收到網路逾時錯誤。

  • 應用程式日誌已存在。

如果錯誤日誌存在但為空白,則 Essbase 不認為載入時發生錯誤。檢查下列條件是否存在:

解決資料載入不正確的問題

如果 Essbase 資料載入沒有錯誤,但資料似乎錯誤,請先檢查來源資料,然後針對隱含的共用、資料調整、簽署翻轉,以及載入規則的其他潛在問題執行檢查。

檢查下列項目以疑難排解載入的資料:

  • 您已載入正確的資料來源。

    如果是,請再次檢查資料來源,確定資料來源包含正確的值。

  • 來源資料的格式正確。

    • 所有範圍皆已正確設定。

    • 資料是乾淨的資料。例如,在處理資料來源時, Essbase 會辨識成員名稱並知道其所屬的維度。如果資料來源記錄不小心包含維度的成員,而該維度在標頭記錄中有具名成員,則新成員名稱會取代該維度的標頭記錄成員。在下列範例資料來源中, Essbase 會將 Florida 識別為 Market 維度的成員。最後四個記錄中的值會解譯為 Florida 值,而非 Texas 值。

      Jan  Actual  Texas  Sales
         "100-10"   51.7
         "100-20"   102.5
         "100-20"   335.0
         Florida    96.7
         "200-20"   276.0
         "200-20"   113.1
         "200-10"   167.0
  • 您未感知的任何隱含共用成員 (當父項和子項共用相同的資料值時)?

    當父項和子項共用相同的資料值時,會出現隱含的共用成員。如果父項只有一個子項,或只有一個累加到父項的子項,就會發生這種情況。

  • 您已新增傳入資料至現有資料,而不是以現有資料取代傳入資料。

    請參閱新增至現有值或從現有值減去

  • 您已選取或拒絕任何您不打算選取或拒絕的記錄。

    請參閱選取及拒絕記錄

  • 符號會反轉 (例如,減號而非加號),以及您是否對任何 UDA 執行符號翻轉。

    請參閱翻轉欄位標誌

  • 您清除了您不打算清除的資料組合。

    請參閱在資料載入期間清除現有資料值

  • 您未正確調整內送值的大小。

    請參閱縮放資料值

  • 所有成員與別名的長度少於 79 個字元。

您可以從智慧型檢視報表寫入器執行查詢來檢查資料。

建立檔案標記結束的拒絕條件

SQL 資料來源可能有一個檔案標記的結尾,該標記是由特殊字元所組成,導致 Essbase 資料載入或維度建置失敗。若要修正此問題,請定義拒絕準則以拒絕問題記錄。

定義拒絕準則:

  1. 尋找 SQL 資料來源中的檔案標記結尾。
  2. 使用 Essbase 搜尋命令,決定如何搜尋檔案標記結尾。

    此工作可能很困難,因為檔案標記的結尾可能是由一或多個特殊字元所組成。請參閱忽略字串

  3. 定義拒絕檔案標記結尾的拒絕準則。請參閱選取並拒絕記錄

Essbase 處理載入規則的方式

有時候,您可以透過瞭解 Essbase 如何初始化 / 驗證載入規則,以及在處理來源資料中的記錄時執行作業的順序,來追蹤維度建置的問題。

Essbase 會執行下列步驟來初始化載入規則:

  1. 根據相關聯的大綱驗證載入規則。

  2. 驗證維度。此程序包含確保建置方法與欄位類型相容,且每個維度名稱都是唯一的。成員名稱必須為唯一或共用。

  3. 將載入規則中定義的新維度新增至大綱。

  4. 讀取來源資料中指定的表頭記錄。

然後, Essbase 會在資料載入或維度建置期間,對來源資料的每個記錄執行下列作業:

  1. 設定所有記錄的檔案分隔符號。

  2. 以載入規則中定義的作業順序,對資料套用現場作業。

    欄位作業包括結合、移動、分割,以及使用文字和結合建立欄位。若要瞭解載入規則中欄位作業定義的順序,請參考在欄位上執行作業

  3. Essbase 會為每個欄位套用所有特性,並在繼續進行 field2 之前將所有特性套用至 field1。Essbase 會依下列順序套用欄位特性:

    1. 忽略資料載入期間要忽略的欄位。

    2. 忽略設定在維度建置時忽略的欄位。

    3. 標示資料欄位。

    4. 套用欄位名稱。

    5. 套用欄位層代。

    6. 以載入規則中定義的順序執行所有取代。

    7. 刪除前端和後端空格。

    8. 將空格轉換為底線。

    9. 套用字尾和字首操作。

    10. 調整資料值。

    11. 將文字轉換成小寫。

    12. 將文字轉換為大寫。

  4. 將成員或成員資訊 (或兩者) 新增至大綱。

  5. 如果您選擇略過行, Essbase 會略過您指定的行數;否則, Essbase 會繼續進行第一筆記錄。

  6. Essbase 會依準則在載入規則中的定義順序來執行選取或拒絕準則。Essbase 會根據指定的準則載入或拒絕來源資料的個別記錄。

Essbase 在資料載入期間如何處理遺漏或無效的欄位

如果在資料載入期間缺少成員欄位, Essbase 會使用其先前的值,但如果沒有,則會停止載入。未知的成員名稱會導致拒絕記錄。如果有無效的資料欄位,資料載入會停止,導致部分資料載入。

如需在發生這類問題後重新啟動資料載入的資訊,請參考從維度建置和資料載入錯誤日誌載入

遺漏維度或成員欄位

如果缺少維度或成員欄位, Essbase 會使用先前用於該維度或成員欄位的值。如果沒有先前的值, Essbase 會停止資料載入。

例如,當您將下列檔案載入 Sample.Basic 資料庫時, Essbase 會將 Ohio 成員欄位對應至所有記錄的 Market 維度,包括 Product 維度中具有 Root Beer 與 Diet Cola 的記錄。

Jan  Sales  Actual  Ohio
                    Cola          25
                    "Root Beer"   50
                    "Diet Cola"   19

如果先前沒有記錄包含遺漏成員欄位的值, Essbase 就會停止資料載入。例如,如果您嘗試將下列檔案載入 Sample.Basic 資料庫,則資料載入會停止,因為未指定 Market 維度 (Ohio,在上一個範例中)。

Jan  Sales  Actual
            Cola          25
           "Root Beer"    50
           "Diet Cola"    19

不明的成員欄位

如果您正在執行資料載入,且遇到未知的成員名稱,則會拒絕整個記錄。如果缺少的成員欄位有成員名稱的前一筆記錄, Essbase 會繼續下一筆記錄。如果沒有先前的記錄,則會停止資料載入。例如,當您將下列檔案載入 Sample Basic 資料庫時,包含 Ginger Ale 的記錄會被拒絕,因為它不是有效的成員名稱。已載入包含 Cola、Root Beer 及 Cream Soda 的記錄。不過,如果 Ginger Ale 是第一筆記錄,則資料載入將會停止。

Jan, Sales, Actual
Ohio   Cola          2
       "Root Beer"   12
       "Ginger Ale"  15
       "Cream Soda"  11

附註:

如果您正在執行維度建置,您可以將新成員新增至資料庫。請參閱執行資料載入或維度建置

無效的資料欄位

如果您正在執行資料載入,如果遇到無效的資料欄位,資料載入就會停止。所有在無效欄位之前讀取的欄位都會載入立方體,導致部分資料載入。例如,在下列檔案中,資料載入會在遇到 15- 資料值時停止。1 月與 2 月銷售記錄會載入,但不會載入三月與四月銷售記錄。

East   Cola   Actual
Sales         Jan    $10
              Feb    $21
              Mar    $15-
              Apr    $16

從維度建置與資料載入錯誤日誌載入

如果 Essbase 維度建置或資料載入失敗,您只能透過從錯誤日誌載入而失敗的記錄。僅重新載入失敗的記錄會比重新載入每筆記錄快得多。

若要從錯誤日誌重新載入,

  1. 如果您從伺服器載入,請將副檔名從 .err 變更為 .txt。例如,將 dataload.err 檔案變更為 dataload.txt

    如果您從從屬端載入,可以保留 .err 副檔名。

  2. 修正造成維度建置或資料載入失敗的問題。修正問題可能牽涉到變更大綱、變更錯誤日誌中的某些文字,或編輯載入規則。

    檢查下列條件是否為真:

  3. 使用適當的載入規則載入錯誤日誌。