-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinstall.html
More file actions
286 lines (175 loc) · 13.4 KB
/
Copy pathinstall.html
File metadata and controls
286 lines (175 loc) · 13.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Install — MultiCategory 0.0.1 documentation</title>
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/language_data.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="Tutorial" href="tutorial.html" />
<link rel="prev" title="Welcome to MultiCategory’s documentation!" href="index.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="index.html" class="icon icon-home"> MultiCategory
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<p class="caption"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="#">Install</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#multicategory-with-haskell-backend">MultiCategory with Haskell backend</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#install-first-haskell-part-of-the-backend">Install first Haskell part of the backend</a></li>
<li class="toctree-l3"><a class="reference internal" href="#start-the-java-spring-server">Start the Java Spring server</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#multicategory-with-python-backend">MultiCategory with Python backend</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="tutorial.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="data_sets.html">Data sets</a></li>
<li class="toctree-l1"><a class="reference internal" href="reference.html">Reference</a></li>
<li class="toctree-l1"><a class="reference internal" href="theoretical_background.html">Theoretical background</a></li>
<li class="toctree-l1"><a class="reference internal" href="license.html">Lisence</a></li>
<li class="toctree-l1"><a class="reference internal" href="citing.html">Citing</a></li>
<li class="toctree-l1"><a class="reference internal" href="bibliography.html">Bibliography</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">MultiCategory</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> »</li>
<li>Install</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/install.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="install">
<h1>Install<a class="headerlink" href="#install" title="Permalink to this headline">¶</a></h1>
<div class="section" id="multicategory-with-haskell-backend">
<h2>MultiCategory with Haskell backend<a class="headerlink" href="#multicategory-with-haskell-backend" title="Permalink to this headline">¶</a></h2>
<p>You can download the whole demo with all the necessary demo data included from its release page <a class="reference external" href="https://github.com/valterUo/MultiCategory-demo-system/releases">MultiCategory</a>. The version contains all necessary libraries and example data to run MultiCategory. Before running the demo, you need to have Stack tool installed: <a class="reference external" href="https://docs.haskellstack.org/en/stable/README/">Stack Tool for Haskell</a> and Java version 11 or higher. Stack needs to be in PATH. At the moment MultiCategory runs on Windows and Mac.</p>
<div class="section" id="install-first-haskell-part-of-the-backend">
<h3>Install first Haskell part of the backend<a class="headerlink" href="#install-first-haskell-part-of-the-backend" title="Permalink to this headline">¶</a></h3>
<p>Install first the Haskell part of the program. Unzip the file that you loaded from the release page of this Github repository and navigate to the folder called MultiCategory. This folder contains source code for the Haskell part of the program. Start the Haskell program by calling stack:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">stack</span> <span class="n">ghci</span>
</pre></div>
</div>
<p>First, all the necessary packages are downloaded and after that, the program is compiled. The first run takes some time especially if the stack tool has not been used before. If the execution fails, run the command again. When the execution is successfully finished, you should have REPL open in the console. You can now close the console.</p>
</div>
<div class="section" id="start-the-java-spring-server">
<h3>Start the Java Spring server<a class="headerlink" href="#start-the-java-spring-server" title="Permalink to this headline">¶</a></h3>
<p>Navigate to the folder which contains MultiCategory-backend-0.0.1-SNAPSHOT.jar file and execute the command</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>java -jar MultiCategory-backend-0.0.1-SNAPSHOT.jar
</pre></div>
</div>
<p>This starts the server. You can open the page <a class="reference external" href="http://localhost:8080/">http://localhost:8080/</a>. Now you see the graphical interface of MultiCategory and you can study the demo.</p>
</div>
</div>
<div class="section" id="multicategory-with-python-backend">
<h2>MultiCategory with Python backend<a class="headerlink" href="#multicategory-with-python-backend" title="Permalink to this headline">¶</a></h2>
<p>MultiCategory has expanded to include polystore like properties such as data and query transformations from a relational database to a graph database. That leads to more complicated installation and configuration process which I have tried to make as simple as possible.</p>
<ol class="arabic">
<li><p>Make sure that you have at least 10Gb free disk space. Docker containers (and especially database containers) require space.</p></li>
<li><p>Install <a class="reference external" href="https://www.docker.com/">Docker</a>. You also need a tool to run shell scripts if you are using Windows.</p></li>
<li><p>Go to <a class="reference external" href="https://github.com/valterUo/MultiCategory-backend-py">MultiCategory-backend-py</a> Github page and clone the repository. The installation scripts are located in the <code class="docutils literal notranslate"><span class="pre">provisions</span></code> directory.</p></li>
<li><p>On command line go to the <code class="docutils literal notranslate"><span class="pre">provisions</span></code> directory and run the script in the file <code class="docutils literal notranslate"><span class="pre">setup_multicategory_docker.sh</span></code>:</p>
<blockquote>
<div><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">bash</span> <span class="o">./</span><span class="n">setup_multicategory_docker</span><span class="o">.</span><span class="n">sh</span>
</pre></div>
</div>
</div></blockquote>
</li>
</ol>
<p>If the installation succeeds, you should be able to see the frontend in the address <a class="reference external" href="http://localhost:8090/">http://localhost:8090/</a>.</p>
<p>The script should start the following procedure:</p>
<blockquote>
<div><ol class="arabic">
<li><p>In the case that this is not the first installation, the <code class="docutils literal notranslate"><span class="pre">cleanup_containers.sh</span></code> script is executed and Docker initializes the containers</p></li>
<li><p>The following images are pulled and installed from Docker hub:</p>
<blockquote>
<div><ol class="arabic simple">
<li><p><a class="reference external" href="https://hub.docker.com/_/postgres">Postgres</a> (official image)</p></li>
<li><p><a class="reference external" href="https://hub.docker.com/_/neo4j">Neo4j</a> (official image)</p></li>
<li><p><a class="reference external" href="https://hub.docker.com/r/valteruo/multicategory">MultiCategory</a></p></li>
</ol>
</div></blockquote>
</li>
<li><p><code class="docutils literal notranslate"><span class="pre">multicategory</span></code> Docker network is created</p></li>
<li><p>In the case of Postgres, <code class="docutils literal notranslate"><span class="pre">ldbcsf1</span></code> named database is created and the data (ldbc_flatfiles.tar.gz) from <a class="reference external" href="https://github.com/valterUo/multicategory-flatfiles">MultiCategory flat files</a> is downloaded</p></li>
<li><p>The SQL in the directory <code class="docutils literal notranslate"><span class="pre">provisions/postgres/ldbc</span></code> is executed in the Postgres container which initializes <code class="docutils literal notranslate"><span class="pre">ldbcsf1</span></code> database. This database is used to demonstrate data and query transformations.</p></li>
<li><p>For Neo4j database no data is included</p></li>
<li><p>The script runs MultiCategory docker image and you should see the frontend in <a class="reference external" href="http://localhost:8090/">http://localhost:8090/</a></p></li>
</ol>
</div></blockquote>
<p>You can initialize Postgres database with any data you wish. In this case modify <code class="docutils literal notranslate"><span class="pre">database_docker.ini</span></code> file in <code class="docutils literal notranslate"><span class="pre">external_databases/config</span></code> folder. The file contains credentials that are required to connect to the relational database.</p>
<p>Note that although Postgres and Neo4j are running as Docker containers you can access them with standard methods, for example, using pgAdmin, browser or Docker’s own command line. Just use the correct host and port.</p>
<p>After installation you can close the system from the Docker Desktop or running the script</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">bash</span> <span class="o">./</span><span class="n">stop_multicategory_docker</span><span class="o">.</span><span class="n">sh</span>
</pre></div>
</div>
<p>In the future starting the demo system again, you can use the script</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">bash</span> <span class="o">./</span><span class="n">start_multicategory_docker</span><span class="o">.</span><span class="n">sh</span>
</pre></div>
</div>
<p>If you run <code class="docutils literal notranslate"><span class="pre">setup_multicategory_docker.sh</span></code> again, this will initialize the system and, for example, some data can be lost.</p>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="tutorial.html" class="btn btn-neutral float-right" title="Tutorial" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="index.html" class="btn btn-neutral float-left" title="Welcome to MultiCategory’s documentation!" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
© Copyright 2020, Valter Uotila
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>