大家好!
我們已經開始在我們的項目中使用統一目錄,我看到奇怪的行為模式從外部表導入到數據磚。在數據瀏覽器擴展一些表時,我看到這些特定表的模式是錯誤的,而原始的SQL服務器上(錯誤的列名稱和類型)。當我試著運行一個複雜的查詢使用這些表操作失敗的消息”指定的模式不匹配實際的模式”但是我們沒有定義手動模式,而我們讓磚從源表導入它。當我運行一個簡單的“SELECT * FROM表”或“create Table”中涉及到的表查詢並再次運行查詢(所有在筆記本)它將正常工作。模式得到更新和我沒有問題。這個問題顯然是斷斷續續的,因為如果我分離集群用於查詢和附加一遍並嚐試再次運行查詢直接它不工作,我必須跑個人的所有表的SELECT *再次使它工作。
以前有人遇到過這個問題嗎?還是一個已知的問題仍然是固定的嗎?我很欣賞統一目錄剛剛發布完全所以我假設可能會有一些錯誤。
謝謝!
看來你遇到一個問題的模式映射在導入外部表統一目錄在磚。
排除thisBased在你提供的信息,這聽起來像你經曆的問題可能與磚的方式解釋外部表的模式從SQL Server進口。
當外部表導入通過統一編目數據磚,磚將嚐試自動推斷模式基於底層表的元數據。然而,可能有情況下,元數據是不完整的,過時的,或者不符合實際的表模式,導致問題的查詢。
為了解決這個問題,您可能需要手動指定模式的外部表數據磚在創建它們,而不是依靠磚來推斷它的元數據。你可以通過指定的模式作為一個列表StructFields定義表時使用CREATE table語句。
這裏有一個例子如何定義一個外部表在磚與特定的模式:
在這個示例中,您可以定義外部表通過指定外部表類型,選項,位置,和表屬性。然後,您可以使用作為選擇語句來創建一個空表中數據磚基於SQL Server的表的模式和使用ALTER TABLE添加的列名稱和數據類型查詢相關數據磚。這種方法應該確保外部表的數據磚的模式是符合實際的表模式在SQL Server。
如果問題持續,可能有助於審查磚日誌是否有任何錯誤消息或不一致性相關模式推理的過程。你也可以接觸到磚支持團隊與故障診斷這一問題進一步的援助。