<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                **1. group by 產生數據傾斜** 使用 Hive 對數據做一些類型統計的時候遇到過某種類型的數據量特別多,而其他類型數據的數據量特別少。當按照類型進行 group by 的時候,會將相同的group by 字段的 reduce 任務需要的數據拉取到同一個節點進行聚合,而當其中每一組的數據量過大時,會出現其他組的計算已經完成而這里還沒計算完成,其他節點的一直等待這個節點的任務執行完成,所以會看到一直 map 100% reduce 99%的情況。 <br/> 解決方法: (1)開啟 MapJoin,參考【Hive優化->表的優化->開啟Map Join】小節。 (2)或者根據業務,合理調整分組維度。 <br/> **2.當 HiveQL 中包含 count(distinct)時** 如果數據量非常大,執行如 ```sql select a,count(distinct b) from t group by a; ``` 類型的SQL 時,會出現數據傾斜的問題。 <br/> 解決方法: (1)使用 `sum...group by` 代替。如 ```sql select a,sum(1) from (select a, b from t group by a,b) group by a; ``` (2)在業務邏輯優化效果的不大情況下,有些時候是可以將傾斜的數據單獨拿出來處理。最后 `union` 回去。 <br/> **3. 當遇到一個大表和一個小表進行 join 操作時** 解決方法:使用 mapjoin 將小表加載到內存中,參考【Hive優化->表的優化->開啟Map Join】小節。。 <br/> **4.空值產生的數據傾斜** 遇到需要進行 join 的但是關聯字段有數據為空。 <br/> 場景:如日志中,常會有信息丟失的問題,比如日志中的 user_id,如果取其中的 user_id 和 用戶表中的 user_id 關聯,會碰到數據傾斜的問題。 數據量大時也會產生數據傾斜,如表一的 id 需要和表二的 id 進行關聯。 <br/> 解決方法: (1)id 為空的不參與關聯; ```sql select * from log a join users b on a.user_id is not null and a.user_id = b.user_id union all select * from log a where a.user_id is null; ``` (2)給空值分配隨機的 key 值; ```sql select * from log a left outer join users b on case when a.user_id is null then concat(‘hive’,rand()) else a.user_id end = b.user_id; ``` 一般分配隨機 key 值得方法更好一些。 <br/> **5. 通用的一些數據傾斜的處理方法** 合理設置 map 和 reduce 數。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看