倉庫の要約の数

 

 

 

 

 

15.1.1サブ層倉庫の数?のそれぞれを何をしますか?

1)ODS層(生データ層)

同じ治療を滞在していない、元のログデータをロードし、直接生データを保管してください。

2)DWD層(詳細レベル)

層は、ODSのデータで洗浄した(ヌル除去し、ダーティデータ、制限範囲を超えたデータ)

3)DWS層(レイヤサービスデータ)

軽度の要約のための基礎としてDWD層へ。たとえば、次のユーザーと同じ日に、機器の日、品物同じ日。

4)ADS層(アプリケーション層データ)

カスタムUDF、UDTF機能は、彼らの問題に対処するかどうかを超えるプロジェクトで15.1.2?

カスタムすぎ。

UDFの解析機能を持つパブリックフィールド; UDTF機能付き解析されたイベントフィールド。

15.1.3どのようにユーザの活動を分析するには?

起動ログで異なるデバイスの出現統計のID番号。

15.1.4どのように追加するユーザーを分析するには?

アクティブなユーザーテーブルと新しいテーブルは、ユーザーが空である新中期テーブルを追加し、ユーザーを参加残しました。

15.1.5には、どのようにユーザーに1日の保持を分析するには?

新しいアクティブユーザー1日前に留保=今日参加

ユーザー保持は=前/ 1日の新規ユーザーを保持しました

15.1.6どのようにサイレントユーザーを分析するには?

IDデバイス日本のライブグループテーブル、ログイン1によると、前の週に登録されています。

今週の還流ユーザーを分析する方法15.1.7?

今週今週は先週、新しいアクティブ先週参加し、左の参加を残し、今週、新しいIDとIDがアクティブNULLであります

15.1.8どのように顧客の損失を分析するには?

IDデバイス日本のライブグループテーブルによると、7日以内にログインしていませんでした。

15.1.9どのようにアクティブなユーザーの最後の3週間を分析するには?

周は3倍倍に等しい数をカウント、デバイスIDでグループ化されたライブ。

過去7日間以内のアクティブユーザーの3日連続を分析する方法15.1.10?

1)、アクティブユーザーの最後の7日間をチェックアウト順位と日付ユーザのアクティビティ

2)アクティブユーザの日付とランクとの間の差を計算します

3)パケットとユーザとの差が、差の数を数えます

4)3以上の同じ数の差分データを取り出し、その後、デエンファシス、それは3日連続以上のアクティブユーザであります

関係するすべてのレベルや表計算ドキュメント全体15.1.11

15.2ハイブ概要

15.2.1ハイブアーキテクチャ

 

15.2.2ハイブデータベースと比較します

ハイブと同様のクエリ言語、無類似性を有することに加えて、データベース。

1)データ記憶場所

ハイブは、HDFSに保存されています。データベースのデータは、ブロックデバイスまたはローカルファイルシステムに保存されています。

2)データの更新

ハイブは、データを書き換えることは推奨されません。データベース内のデータは通常、頻繁な変更を必要としています

3)実行遅延

ハイブ実行遅延高いです。データベースの低遅延の実行。もちろん、これはデータのサイズを条件とするハイブが明確な利点を反映計算平行、大規模なデータがデータベースに時間をかけて機能を処理する場合、小さいです。

データの4)サイズ

非常に大規模なデータ計算のためハイブ支持、より小さなデータベースのサイズがデータをサポートすることができます。

15.2.3内側および外側テーブル

1)管理テーブル:我々は、管理テーブルを削除すると、ハイブはまた、テーブル内のデータを削除します。経営陣は、共有データへのテーブルや他のツールには適していません。

2)外部表:元のデータを削除しないテーブルを削除し、メタデータテーブルを削除します

15.2.4ウィンドウ関数

1 )ウィンドウ関数:

(1)  OVER() ウィンドウ作業のサイズを指定するためのデータ分析機能、データウィンドウサイズは、ラインの変化によって変化してもよいです。一般的なことでパーティション分割によって順ソート

(2)現在の行:現在行

(3)N PRECEDING:以前のデータ行n

(4)  N FOLLOWING:次のn行

(5)UNBOUNDED:出発点は、前UNBOUNDEDは正面から出発表し、UNBOUNDED以下に後方に終了を示します

(6)  LAG(COL、N) フォワードn番目のラインデータ

(7)LEAD(COL、N) 次のn番目のラインデータ

(8)  NTILE(N) パーティションが指定されたデータ群に分配行を命じ、各グループは、この行番号がグループに属して戻り、行ごとに、1から始まる、NTILEの番号。注意:nはint型である必要があります。

2 )ソート機能:

(1)RANK()と同じ並べ替えを繰り返し、それの合計数を変更しません

(2)DENSE_RANK()同じ種類の繰り返しの総数を減少させます

(3)は、ROW_NUMBER()順序に従って計算されます

カスタムUDF、UDTF機能は、彼らの問題に対処するかどうかを超えるプロジェクトで15.2.5?

1)カスタムの前に。

2)UDFの機能と共通のフィールドを解決し、UDTF機能とイベントフィールドを解析します。

3)カスタムUDFは、以下の工程:UDF継承するクラスを定義し、オーバーライドメソッドを評価します

4)のカスタムUDTFステップ:クラス継承定義GenericUDTFは、初期化方法、及び閉鎖する方法上書き処理方法。

差によって15.2.6 4

1 並べ替えパーティションと秩序。

2 秩序グローバル発注、唯一の減速;

3 Distrbuteにより類似MR、パーティション、パーティション、併用によってソート。

4  クラスタがフィールドによってソートすることにより配布と同じ場合、モードによってクラスタを使用することができます。両方の機能に加えて、クラスタは、さらに機能によってソートで配布します。しかし、唯一のソートすることができます昇順で、あなたはASCまたはDESCの照合順序を指定することはできません。

 

15.2.7ハイブの最適化

  • 1 )MapJoin

何MapJoin MapJoinかの条件を満たしていないが、パーサはその後、ハイブが共通に変換されません場合、すなわち、操作に参加しましょう:完成を減らして、ステージに参加。データスキューが発生しやすいです。MapJoin小さなテーブルは、すべての参加最後に、メモリ・マップにロードすることができ、減速処理は避けました。

  • 2 )フィルタのランク

列のプロセス:SELECTで、唯一の目的の列を取り、そうであれば、*フィルタのパーティションを利用するため、以下を選択します。

行:パーティション内のカット、フィルタ条件は、それが次いで濾過し、会合する、最初の完全な表裏面側テーブルに書き込まれている場合、外部の会合を使用。

  • 3 サブバケットの)使用
  • 4 )を使用してパーティショニング
  • 5)設定されたマップの合理的な

(1 )通常は、ジョブによって入力されたマップまたはディレクトリの複数の生成作業を。

主な決定要因は次のとおりです:文書入力、入力ファイルのサイズ、クラスター・セットアップの総数のファイルのブロックサイズ。

(2 )マップではありません数より良いですか?

答えはノーです。タスクが(ブロックサイズよりはるかに小さい128M)多数の小さなファイルを持っている場合、各ファイルには、マップを完了するために、タスクと、小さなブロックとして扱われ、され、処理ロジックよりも有意に長いマップ初期化タスクが開始され、時間、それは資源の大きな無駄が発生します。また、実行可能なマップの数が制限されます。

(3 )各マップがされていないことを確認してくださいほぼ128メートル治療、ファイルブロックのを後ろに座るとリラックス?

答えは、必ずしもではありません。例えば、127メートルのファイルがあり、通常は完全にマップを使用しますが、ファイルは1つまたは2つだけの小さなフィールドがありますプロセスは、確かに、より複雑な論理マップ、実行するタスクとマップ、であれば、レコードの数千万人が、ありますまた、時間がかかります。

質問2と3以上の場合、我々は解決する2つの方法を取る必要があります。すなわち、マップの数を削減し、マップの数を増やすこと。

  • 6 )小さなファイルのマージ

数地図を減らし、小さなファイルの実装前に、合併の地図:CombineHiveInputFormatは、小さなファイルをマージする機能(デフォルトのフォーマット)を持っています。HiveInputFormatは小さなファイルのための機能をマージしません。

  • 7 )合理的なセットは、削減の数を

より良いではない数を減らします

(1)過度の起動と初期化の削減は、時間とリソースを消費します。

あなたは小さなたくさんのファイルを生成する場合は、次のタスクへの入力としてこれらの小さなファイルならば削減の数は、その後、あまりにも多くの小さなファイルの問題出力ファイルの数が存在します(2)また、あなたはまた、表示されます。

提供数を減らし、我々はまた、これらの2つの原則を検討する必要があります。適切に使用して大量のデータを処理して削減数を、単一であること削減適していることがデータのタスクの処理量を、

  • 8 )共通パラメータ

//小さなファイルで出力

SET hive.merge.mapfiles =真; -  デフォルトはtrueにマップのみの小さなファイルでのミッションの最後に

真のSET hive.merge.mapredfiles =; -  デフォルトではfalse 、中にマップ減らすミッションの最後に小さなファイルをマージ

= Hive.merge.size.per.task SET  268435456 ; -  デフォルトの256M

= Hive.merge.smallfiles.avgsize SETは、  16777216は、 -  出力ファイルの平均サイズがこの値未満である場合、次に別開始マップ減らすタスクファイルマージを

 

 

32ギガバイトのソリッドステートディスクメモリ+ 1TB + 1TB機械的なハードドライブ

プロジェクトデータが流れ:ユーザー行動データ(JS埋もれたログデータ)トラフィックデータ(データベースのデータ)

ユーザーの行動データ、JSによって収集されたデータは、収集ログサーバーのログデータへの水路を利用して埋没します 

2つのカテゴリに分類され、ユーザーの行動ログ:
1、ユーザーの行動ログ:基本データ、ユーザデータ操作
2、アプリ起動ログは、毎回アプリを起動し、印刷ログを起動します

:データを操作するユーザデータは、2つの部分から成り
1、基本的な公共分野:センチのAndroid携帯電話は、公共分野対応している
2を、ユーザの行動のイベントフィールド:商品リストページには、商品、商品情報、広告、メッセージ通知をクリックして
アクティブに、コメント、コレクション、親指アップ、エラーログ


ブートログとユーザー行動ログ、ファイル内部でミックス

シミュレートされたログデータ==「== node03のに集約「水路node01とnode02での使用が==収集するために収集されている」HDFS上に行くために水路node03のデータで保存されます生成するためのJavaプログラム


水路
収集時に水路が個別のログを開始し、ユーザーの行動を記録し、ログフォーマットは標準のJSONフォーマットであるかどうかを検証し、そうでない場合は標準のJSON、直接スロー離れます

カスタム水路インターセプタ、それによって識別データとETLの粗いフィルタは、フィルタがダーティデータ、別々に異なる種類のデータであります

Java用の水路インターセプタコードを書くときに、サーバーの構成node01とnode02で水路-client.confへのパッケージのアップロードをMAVEN、追加インターセプタでソースタイプは、単にインターセプタの種類を詰めています。
node01とnode02で収集ログ
源:tailDirsource支持トランザクション処理
チャネル:memoryChannel、のFileChannel(複数使用する実用的な仕事)
シンク:アブロシンク

HDFSにアップロードnode03の、node01とnode02で要約データは、LZO圧縮方法を使用し
アブロ出典:ソース
チャンネル:memorychannelのFileChannel
シンク:hdfsSink


階層データウェアハウス:
ODS元データ層:データの整合性の保全HDFS、ログテーブルを起動し、イベントログテーブル
のデータウェアハウス層DW:データ分析ODS層は、ログ解析テーブルになることを開始します
ユーザーのイベントログ、11台になる決意は、
層をDWS:主に12メートルのための種々の寸法の統計的分析のための
表示データ報告:アプリデータプレゼンテーション層

層化のメリット:彼に簡素化複雑なもの、互いに孤立して各層
行うには、倉庫作業のオフライン数は実用的な作品で、T + 1で、データ分析ニーズの結果を表し、毎日、前日のデータを分析します遅延の日


UDFはudtfが話をしたではない、前に言いました

、リソースの糸の割り当ては非常に遅いクエリの速度をスピードアップするためにハイブハイブローカルモードを開き
、設定されたhive.exec.mode.local.auto =はtrue。


「二つのテーブルは、ユーザの行動履歴テーブルのテーブルに開始==オーバー分解からODS層
:開始ODSログテーブル上層解析DWD層
       1解析==へのユーザの行動から表ODS層:ユーザ行動テーブル」をODS層のユーザーの行動テーブル、解析テーブル11はなっ
       get_json_object
       テーブルUDTF層のODSを解析するためのカスタムUDFとユーザーの行動

DWD層による統計表の様々な寸法を達成するために:

ユーザーのアクティブ寸法:統計の日、週、各デバイスのブレークダウンの月の活動 
統計毎日アクティブデバイスの詳細:ログテーブルを起動します。各デバイスは、開始時刻ブートログテーブルを持っています

==は、「コントロールへのスクリプトを使用した層DWSにDWD層
の指標のいくつかはコントロールにスクリプトを使用して広告レイヤ==」に集約== DWS層」


SQLは、によってもたらさ必要なスキル、ある
インタビューはmust-、あるフィールドそれぞれのテーブル、どのように層化、:ビジネスロジック
スキルと知識のハイブ:によってもたらされた数百回、


倉庫プロセスの全体数を確認します。ユーザーの行動データウェアハウスない
データを使用しては水路がHDFSへのデータ保存「水路概要==」=収集「ハイブODSレイヤマッピングテーブルを作成する==上に行く
UDFハイブカスタム関数の==」、 udtf、層1は、11個のテーブルになりDWS「DWD層==に」==ログおよびイベントログを解析を開始
インジケータが「==広告層の統計を引き起こします

プログラムの動作を自動化するシェルスクリプトを使用し
たログデータポイントが終了処理され埋葬されます


分類:
エンティティテーブル:マッピングデータベーステーブルの中javaBeanの類似した私たちは、ユーザーテーブル、テーブル用品、商人テーブル、テーブルの販売員を作成

ディメンションテーブルは:コード表のコードテーブルは、実際にテーブル地方及び地域辞書のいくつかの固定値であり、
注文状況注文状況{テーブル}の多くを作成する」==注文面

トランザクションファクトテーブル:データ内のテーブルには、一度になることはありません生成された
賃金を行う学生:トランザクションたらシリアル番号は変更することができないであろう
、ライブラリストレージレコードトランザクションフロー、操作ログを


実際の周期表:あなたのビジネスの発展するにつれ、データが生成するために引き続き
助成金と休暇、ローン申請、
承認のためのCEO「==承認のための部門」上司の承認==:要求処理を

ローンアプリケーション:==「==承認の第一層」第3レベル承認」==第二承認

制御カテゴリ:お使いのシステムは、分類テーブルの間になります使用します

同期ポリシーテーブル:データはする内部HDFSに同期されているどのように内側からmysqlの
テーブル全体を同期:
インクリメンタル同期:
インクリメント+修正するデータ同期

データの同期化戦略:
フルスケール:すべてのテーブルがフルタイム同期している
だけ同期新しいデータ:デルタテーブル
の追加や変更テーブル:新しいデータと改訂データが同期されている
ジッパーのテーブルは:ハイブを解決するために使用されます問題の間で単一のフィールドは、開発はそれぞれの状況、各期間のデータを詳細に観察し更新することができます

どのようにビジネスデータウェアハウスの実装:
SqoopインポートデータにHDFS ==にDWD階層要約データ(商品の分類と、この表にまとめた)「ODS層は、HDFS ==のデータ・テーブル・マッピングを作成するには、」
==「DWS層は主にデータに捧げられますデータはレイヤーを報告するための重合操作==「広告

データの可視化:ハイブ層はショーのMySQLへの報告を行うために導くことができる広告の中でsqoopデータ


プロジェクト概要:
10.2ダウン位置理論バックの数
1)分類:エンティティテーブル、ディメンションテーブル、トランザクションファクトテーブル、周期的なファクトテーブルの
同期ポリシー2)テーブル:
エンティティテーブル(全額)
ディメンション表(全額)
取引の事実テーブル(インクリメンタル)
循環的なファクト表(追加、変更、ジッパーテーブル)

4)カートリッジ次元モデリングモデルの数は、 
星型を使用してモデリング

公開された77元の記事 ウォン称賛25 ビュー9199

おすすめ

転載: blog.csdn.net/TU_JCN/article/details/104922148