COMP5338:高度なデータモデル


コンピュータ科学科
COMP5338:高度なデータモデル2.Sem./2019
プロジェクト:NoSQLのスキーマ設計とクエリワークロードの
実装
グループワーク:20%が2019年9月20日
1はじめに
この割り当てでは、あなたはMongoDBの両方で動作することが可能であることを実証します
そして、適切なスキーマを設計し、実用的なクエリを記述の面でのNeo4j。あなたもなり
ますがに対する各システムの強さと弱さを理解していることを実証し
、特定のクエリのワークロードの特徴。あなたは質問では、実世界のデータセットを与えられたとされる
エリアとターゲットクエリのセットを回答します。
次のようにタスクの概要は以下のとおりです。
•データとクエリ機能に基づいて、各ストレージ・システムのスキーマを設計します。
•各システム内のすべてのクエリを実装します。
•各システムについて、代替実装を提供するために、2つのクエリを選択します。比較
2つの実装の実行パフォーマンスを。
•レポート内の文書スキーマ設計、クエリのデザインと性能分析。
2データが設定され
、あなたが使用するデータを最新のダンプです:人工の(発行日2018年6月5日)
インテリジェンススタック為替質問と回答サイト(://ai.stackexchange。HTTPS
COM /)。https://archive.org/:ダンプはstackexchangeによって解放され、維持されます

COMP5338作业代写、SQL程序语言作业调试
詳細/ stackexchange。オリジナルのダンプはXML形式で多数のファイルが含まれています。割り当ては
5つのCSVファイルに格納されたデータのサブセットを使用しています。データファイルと説明
(README.TXT)は、キャンバスからダウンロードすることができます。
割り当てデータセットは、以下のファイルが含まれています:
•Posts.csvは、ポストについての情報を格納します。各行は可能性があり、ポスト表し、
質問または回答
Users.csvを格納し、ユーザーのプロファイル•を。各行はユーザを表し、ユーザが作成者であることができる
ポストまたは答え。
1つの
•Comments.csv店コメントメタデータ。各行はできコメント表し
PostIdによって識別質問や回答を行うことを
各行は投票表し•Votes.csv店にポストに関する詳細な投票情報を、
投票の種類を含むが、この投票が行われた日付およびその他のいくつかの情報
Tags.csv•このサイトでは、タグの使用状況の概要が含まれています。
多くのクエリの記述に表示される2つの概念があります。トピックとユーザー。
•トピック:各質問には、いくつかのトピックに属していてもよいです。質問のトピック(複数可)している
Posts.csvのタグ欄のキーワードのリストとして記録します。どちらの回答や
コメントは、この質問に属している質問と同じトピック(複数可)を持っています。
•ユーザー:質問、回答やコメントは、すべての登録ユーザーによって作られています。ユーザーはされている
様々なCSVファイルでユーザーIDフィールドによって識別されます。一部のユーザーは、様々なために削除されます
理由。削除されたユーザは、もはやIDを持っていないし、すべてのクエリで無視されるべきである
3ターゲットクエリ
•[Q1]与えられたトピックの中で最も議論を引き付ける質問を探します。私たちは、測定
問題の答えとコメントの総数によって、議論の強さを。
•[Q2]は、与えられたトピックの最高UpVote番号を持つユーザーを探すユーザーの返却
名とUpVote番号を。質問を掲載しているすべてのユーザー、答えや
このトピックのコメントは、候補ユーザーです。
•特定のトピックについては[Q3]は、答えるために最も困難です質問を発見します。ここでは、
それが受け入れ答えを受け取るためにかかる時間によって問題の難易度を測定します。
受け入れ答えを持っていない質問は無視されます。
•[Q4]は議論の余地が受け入れ答えと質問を発見します。ユーザーは両方にupVoteを与えることができ
、質問と回答。通常、質問の受け入れ答えは、最高の受信
この質問の全ての回答の中でupVoteの数を。まれな場合には、別の答え(複数可)は
受け入れ答えのupVoteカウントよりカウント高いupVoteを受信することができます。では
このクエリは、その受け入れ答え少なくあり、このような質問を発見するように要求されている
そのほかの回答のupVote数よりupVoteを。私たちは、にのみ関心があるに注意してください
少なくとも5つの答えと質問。
•開始日と終了によって示されるように、[Q5]の時間を考えると、トップ5見つける
その期間内のトピックを。その中で当社は、ユーザーの数で話題をランキングに参加
期間中の話題。、質問を投稿答えるか、全く考慮されているコメント
の参加など。
2
•[Q6]与えられたユーザの上位5共著者を探します。関与するすべてのユーザーを検討
共著者として質問を。これにより、ユーザーは、質問を投稿質問に答える含める
かのどちらか質問や回答にコメントを作ります。与えられたユーザのために、我々は、ランク付け
、このユーザーおよび共著者が一緒に表示される質問の数だけ共著者を。
4つのタスクの詳細
あなたのタスクが含まれます:
MongoDBのとのNeo4jのための•スキーマ設計
の各ストレージオプション最高のクエリおよびサポートする適切なスキーマ設計のための
データセットの機能を。各スキーマ・バージョンについては、必ずストレージの機能を利用します
このようように、インデックス、集約、発注、フィルタリング、などのシステム。
元のデータセットは、リレーショナル構造に従います。それはそうではありませんデータ含むことが
有益またはクエリに関与していないが。スキーマ設計の際には、データ破棄してもよい
必要とされていませんが。あなたは、スキーマ設計、次の元のデータを複製することがあります。
•クエリの設計および実装は、
両方のシステムに(いくつかの必要なpreporocessing後の)データセットをロードし、設定
対象のクエリで使用される適切なインデックスを。設計し、すべてのクエリ実装し
、各システムでは。あなたは、シェルコマンド(例えばのMongoDB使用してクエリを実行すること
で単独のシェルまたはサイファークエリ)、またはJavaScriptの組み合わせとシェルコマンドを
MongoDBののやPython / Javaプログラムとしてケース。プログラミング言語をされた場合に
使用、データベース側で処理の大半を行うことを確認してください。クライアント
側の処理は、以前からの出力を収集などの活動を制限する必要があり
、データベースのクエリとその後の1にあるように、出力を送信します。特に、あなたは
、並べ替えのフィルタリングとクライアント側のクエリの出力をグループ化することは避けてください。
•パフォーマンス分析
各ストレージオプション(MongoDBはとのNeo4j)の場合は、パフォーマンスのように2つのクエリ選ぶ
解析対象のクエリを。クエリごとに異なる実装を設計します。そして、収集し
た各実施の実行統計を、サイドの比較に並べて作ります。
成果および提出ガイドライン
これは、各グループには、最大2人の生徒を持つことができ、グループのプロジェクトです。各グループは、生産する必要があり
、次の
報告書を•します。
報告書は、5つのセクションが含まれている必要があります。最初のセクションはの簡単な紹介である
プロジェクト。セクション2と3は、ストレージオプションそれぞれをカバーする必要があります。第4
図3は、
要約と二つのストレージシステムの簡単な比較を提供する必要があります。
5は、サンプルの結果については、付録でなければなりません。
セクション1に割り当てられても意味がありません。レポートが完全にするために含まれています。
だから、短いそれを保管してください。
第2および3それぞれは、以下の3つのサブセクションが含まれている必要があります
-スキーマ設計
このセクションでは、特定のシステムに対してスキーマを記述する。あなたの
説明は、「表」および「列」レベルの情報、ならびに含めるべきである
ことが可能主キー/行キーとセカンダリインデックスを。あなたは、サンプル表示されるはず
スキーマに基づいてデータを。たとえば、あなたはのサンプルドキュメント表示される場合があり
、それぞれのMongoDBのコレクションは、すべてのノードの種類と関連するサンプル特性グラフ
のNeo4jのための関係タイプを。
-クエリデザインは、
このセクションでは、各クエリの実装を記述します。あなたは含める必要があり
、全体のコマンドおよび/またはコードを。各クエリについて、簡単に動作を説明します。
MongoDBのクエリの記述の例は、週2とweek3ラボで見つけることができます
指示。
- パフォーマンス分析
このセクションでは、パフォーマンス分析のために選択した2つのクエリをリストアップ。
各クエリに対して、全体のコマンド/または各実装するためのコードを含みます。
表形式やスクリーンショットなどの実行統計を表示します。簡単に与える
重要な実行の違いを強調することによって比較を。
セクション4では、簡単に使用、の容易性に関して二つのストレージシステムを比較する
クエリデザインとスキーマの違い。また、中に遭遇した問題を説明することができ
スキーマ設計またはクエリのデザインを。
セクション5では、サンプルクエリの結果だけでなく、それぞれの引数(複数可)ドキュメント
引数を取るクエリに使用します。これが含まれます:Q1でサンプル「話題」、
Q2、Q3を。Q5でのサンプル期間、Q6でシンプルなuserIdを。
•システムのデモは、
各グループには、週に10ラボのデモをします。あなたは上で、自分のマシン上でデモを実行することができ
、ラボ機や一部のクラウドサーバー上で。あなたが前にデータを準備していることを確認してください
デモ。マーカーは、データのロード手順を参照する必要はありません。マーカーがされます
、データモデルの概要を取得するには、いくつかのランダムに選択されたクエリを実行するように依頼
し、クエリのデザインを。グループのすべてのメンバーがデモに参加する必要があります。
マーカーは、それぞれの貢献を確立するために、各メンバーにいくつかの質問を聞いてきます
プロジェクトにします。同じグループのメンバーは、自分に応じて、異なるマークを得ることができます
個々の寄与。
4
•ソースコード/スクリプトやレポート提出のソフトコピー
スクリプト(zipファイル)とする報告書(PDFファイル)の提出のための異なるリンクがあります
盗用検出を容易にします。スクリプトの提出は、zipファイル(なしRAR、7Z)である必要があり
、次のものがあります
-各オプションのクエリスクリプトやプログラムコード
-データ・ロード・スクリプトを。
-データ・ロード・スクリプトおよびターゲットクエリを実行する方法のReadmeドキュメント。
マーカーはすぐに準備するための命令が十分に詳細に説明する必要がある
データをクエリを実行します。たとえば、あなたが場所を示す必要があり、どのように
実行時の引数が供給されています。あなたがでのみ利用できる特別な機能を使用する場合
、特定のバージョンや環境を、とも示しています。
唯一のスクリプトまたはソースコードとread.meファイルが含まれなければならない、覚えておいてください。そこだろう
提出のデータファイルを含むためのペナルティこと。

プロ、とても信頼できるので。必要であれば、追加してください QQを 99515681 またはEメール:[email protected] 

マイクロ手紙: codehelp

おすすめ

転載: www.cnblogs.com/weljavat/p/11700058.html