促銷活動:Redshift欄在促銷活動資料載入(RDBMS)中不可見

當Adobe Campaign使用具有Amazon Redshift ODBC連線的資料載入(RDBMS)活動時,表格或檢視欄可能不會顯示在欄選擇對話方塊中。 當欄清單保持空白時,表格選擇器可以正常運作。

說明 description

針對Redshift資料來源設定資料載入(RDBMS)活動時,會發生此問題:

  • 選取Redshift連線。
  • 選取表格或檢視。
  • 選擇選取要擷取的資料行,或開啟查詢資料行選擇器。
  • 不會傳回任何欄。

使用相同連線的其他表格可能會正確顯示其欄。 一般SQL查詢也可以繼續運作,這表示連線和表格層級的資料存取不一定失敗。

調查中受影響的物件包括:

  • 使用分配和排序鍵定義的Redshift表格。
  • 在多個資料庫中使用UNION ALL建置的檢視,包括透過資料流樣式參照公開的物件。

解決方法 resolution

根本原因

資料表中繼資料已由Redshift結構描述許可權隱藏

Campaign使用Redshift ODBC中繼資料路徑,查詢SVV_COLUMNS以擷取欄定義。

在受影響的案例中:

  • 對資料表的一般查詢成功。
  • 資料庫使用者可以存取表格資料。
  • SVV_COLUMNS查詢執行時沒有SQL錯誤。
  • SVV_COLUMNS傳回零列。
  • 因此,Campaign未收到要顯示的欄中繼資料。

可能的原因是許可權不對稱:使用者擁有表格的SELECT存取權,但沒有上層結構描述的USAGE許可權。 當架構使用未獲授權時,Redshift可在從SVV_COLUMNS篩選中繼資料時允許表格讀取。

複雜的跨資料庫檢視不會透過SVV_COLUMNS公開

此外,受影響的檢視會合併來自多個資料庫的表格並使用資料集樣式參照。 Redshift ODBC聯結器使用的中繼資料機制依賴SVV_COLUMNS,但此系統檢視不會公開該型別跨資料庫檢視的欄。

因此,即使檢視定義本身有效,Campaign仍無法填入欄選擇器。

這種情況被視為不支援或不完整的中繼資料功能,需要增強功能才能使用其他Redshift中繼資料來源,例如更廣的系統檢視或ODBC驅動程式的原生中繼資料API。

資料表的解析度

請要求Redshift資料庫管理員確認,在Campaign外部帳戶上設定的相同資料庫使用者,擁有上層結構描述的USAGE許可權。

對失敗的資料庫使用者使用下列唯讀檢查:

選取
    current_database(),
    current_user;

選取
    has_schema_privilege(
        current_user,
        '< schema_name> ',
        ‘使用狀況’
    ) AS has_schema_usage;

選取
    column_name,
    data_type
從svv_columns
WHERE table_schema = '< schema_name>
  AND table_name = '< table_name> ';

如果缺少綱要用途,請將其授與Campaign資料庫使用者:

授權使用情況
在結構描述< schema_name>
< campaign_db_user>

例如,使用者仍必須保留必要的表格層級許可權:

授與SELECT
在資料表< schema_name>上。< table_name>
< campaign_db_user>

許可權變更後,請重新開啟或重新整理資料載入(RDBMS)活動,並確認欄清單已填入。

在架構上授予USAGE可讓使用者參照該架構中的物件。 它本身不會授予表格資料的存取權。

複雜檢視的解決方法或因應措施

對於未在SVV_COLUMNS中表示的檢視,請使用下列其中一種方法:

  • 使用支援的基底資料表或結構描述,而非複雜檢視。
  • 使用可直接提供SQL的查詢活動或外部查詢機制。
  • 要求資料庫團隊透過支援的表格或較簡單的檢視來公開所需的資料。
  • 追蹤跨資料庫或資料流支援檢視作為產品增強功能的支援。

在另一個客戶測試中,使用一般ODBC連線路徑,讓驅動程式的原生SQLColumns()中繼資料API傳回Redshift特定連線路徑未傳回的欄。 這可能是個有用的診斷或臨時解決方法,但在建議作為永久解決方案之前,應該針對特定環境驗證它。

recommendation-more-help
experience-cloud-kcs-help-kbarticles