<code id="okdk5"></code><strike id="okdk5"><small id="okdk5"><samp id="okdk5"></samp></small></strike>

    <tr id="okdk5"><sup id="okdk5"></sup></tr><strike id="okdk5"></strike>

  1. <code id="okdk5"></code>
    <code id="okdk5"></code><strike id="okdk5"><sup id="okdk5"></sup></strike>
  2. 主頁 > 超兔理念 > 數據報表引擎的原子抽象

    數據報表引擎的原子抽象

    一、數據分析引擎的演化過程

    數據報表引擎,最早起源于:大型商業數據庫的開發工具。大概在90年代中期,類似PowerBuilder 這類的數據開發軟件 ,就提供內嵌數據報表引擎。隨著報表生成器在商業應用過程中的不斷演進,過去幾年,隨著數據大屏熱潮出現的帆軟FineBI 、百度SugarBI……這類BI工具內嵌數據分析表引擎,可連接多種數據庫,可生成各種大屏的圖表組件。

    先有報表引擎,后有圖表引擎。畫圖的本質是信息傳達。圖形化思維模型表現數據的「關系」「結構」「步驟」「概念」「方針」等關系,在數據的表達上會更直觀,有利于輔助思考。圖形引擎在數據大屏項目中廣泛落地。

    【優勢】:綜合來看,數據大屏基于圖表引擎,圖表引擎來的數據結果基于報表引擎,報表引擎的原始數據來自數據庫(大屏>圖表>報表>原始數據)。只要結果數據的業務含義足夠精準明確,可快速實現表現豐富、內部組件聯動的高級動態大屏。

    【劣勢】:數據分析引擎大多面向統計結果,而面向明細的實現非常復雜,普通用戶較難操作,最關鍵的是:與數據庫(DataBase)之間存在巨大的業務含義的鴻溝。在業務數據處理中,業務表關系/字段關系/表關聯關系各種約束和制約關系,從這些數據的梳理出具有統計價值的報表,即便是非常熟悉數據結構的技術人員,也要投入大量的時間精力,更何況企業用戶,在實際操作過程中會面臨非常復雜的:業務邏輯到數據邏輯的翻譯工作。

    二、基于業務的數據報表引擎

    由此可知:“報表引擎直連DataBase,直連業務,即:業務系統內嵌的數據引擎,緊貼業務的數據分析;企業用戶在[完整業務邏輯的表關系]基礎上配置數據報表”的方案會更有利于一線企業用戶的應用。

    優勢:業務直連DataBase,無需業務訴求翻譯到數據結構。

    超兔報表引擎對數據的處理邏輯:

    1.取數據:1)數據篩選、獲取;2)清洗,數據加工。

    2.形成二維表形式的中間數據,我們把這個數據形式叫作:“Base”。

    數據報表引擎的原子抽象

    Base數據的關鍵在【滿格二維表】,數據特征:

    ①“最簡”:最簡單的二維表結構(x,y);

    ②“滿格”:每個單元格都賦值,字符型無值填空,數字型無值填0,滿格處理是為了在后面生成匯總時更容易滿足各種計算方式;

    ③“純數據”所有數據均無業務含義,行與行、列與列相互獨立,無從屬關系、無排序,利于整行與整列數據的變換。

    【問題1】:這里有一個反常識的問題,為何要沒有業務含義的純數據?我們不是希望把報表引擎賦予業務含義才做這個開發設計嗎?

    對,數據沒有業務含義,報表就毫無價值。數據的業務特征在第一步取數據的過程中完成。在去取數據模塊中,同樣是引擎化設計,根據超兔豐富的業務數據表,提取出幾十種內聯邏輯的業務表,這些業務表的內聯關系無需用戶關心,只需指定:主表、關聯表,兩個參數,即可通過內部邏輯自動形成獲取復雜關聯數據的SQL。

    【問題2】:為何是簡單二維表作為Base?

    維度和度量(指標)是數據分析領域常用的概念,也是滿格二維表計算的內在基本邏輯:

    維度,是數據的觀察角度,即從哪個角度去分析問題,看待問題,翻譯為數據要求即為:用哪個角度去做匯總和計算。

    度量,指的是需要匯總和計算的:值。

    舉個簡單的例子,“上海男性互聯網從業人數”,這里面有三個維度:城市、性別、行業;度量指的是:從業人數。

    維度與度量最基本的方式是按照原值分布。在原值的基礎上增加計算方法,就可以生成更多差異化的、更符合常規業務邏輯的組合。這里的計算是廣義的概念,指處理方法。例如,度量時常見計算方式:求和、求平均、求中位數;維度時常見計算方式:直等、分組、數據桶。另外,還有特殊的數據處理,比如日期,可以按日、按月、按季度、按年,進行數據分組。

    3.生成報表。

    超兔的報表引擎,生成報表的數據處理過程有4步:

    ① 填數據。獲取Base數據。

    ② 排序。從外向內維度排序,并填入數據。

    ③ 插入分層小計行:上下相等隔開。

    ④ 縱向合并相等。

    這四個步驟看起來不復雜,也意味著開發過程的復雜度可控。這就是優秀的業務抽象帶來的優秀設計結果。我們把這四個環節,叫做數據報表引擎的原子抽象。

    韩国专线福二区