Skip to content

Commit 493c3df

Browse files
authored
Merge pull request #2 from udzuki/release-v3.0
v3.0のリリース
2 parents 4fbd893 + b79d97a commit 493c3df

587 files changed

Lines changed: 8624 additions & 23758 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ moodle.sql
77
caliper_log/data/*
88
open_lrw/data/*
99
xapi_stmt_gen/log/*
10-
elcampus_la/xapi_stmt_gen/log/*
11-
superset_db/data/*
10+
learning_analytics_db/data/*
11+
superset-db/data/*
1212
metabase/*
13-
**/.DS_Store
13+
**/.DS_Store

README.adoc

Lines changed: 74 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
:lang: ja
33
:source-highlighter: rouge
44
:author: 国立情報学研究所
5-
:revdate: 2020年10月12日
6-
:revnumber: 2.0.0版
5+
:revdate: 2022年1月1日
6+
:revnumber: 3.0.0版
77
:doctype: book
88
:version-label:
99
:chapter-label:
@@ -39,7 +39,6 @@ $ git clone https://github.com/RCOSDP/LAaaS-docker.git
3939
* `moodle-docker` の設定で `MOODLE_DOCKER_DBUSER` および `POSTGRES_USER` を `moodleuser` に変更( `moodle-docker/base.yml` )
4040
* Moodleの設定でMoodleデータベースのテーブル名に付与する接頭辞を `mdl_` に変更( `moodle-docker/moodle/config.php` )
4141
* Moodleのコンテナ群を起動
42-
* xAPIステートメント変換スクリプトでイベントの処理状況を管理するためのテーブル( `xapi_records_processed` )を作成
4342

4443
----
4544
$ cd LAaaS-docker
@@ -69,18 +68,19 @@ image::moodle.png[align=center]
6968
次のコンテナを起動する。
7069

7170
|===
72-
|項目 |名称 |コンテナ名
73-
.5+|学習活動のデータストア|Learning Locker(Web) |learninglocker
74-
.2+|Learning Locker(DB) |learninglocker_mongo
75-
|learninglocker_redis
76-
|OpenLRW(Web) |openlrw_web
77-
|OpenLRW(DB) |openlrw_mongo
78-
.3+|ステートメント変換 |xAPIステートメント変換 |xapi_stmt_gen
79-
|Caliperステートメント変換 |caliper_stmt_gen
80-
|Caliperステートメント変換(db) |caliper_log_db
81-
.4+|分析システム |Superset(Web) |superset
82-
|Superset(DB) |superset_db
83-
|JupyterHub(Web/DB) |jupyterhub
71+
|項目 |名称 |コンテナ名
72+
.5+|学習活動のデータストア|Learning Locker(Web) |learninglocker
73+
.2+|Learning Locker(DB) |learninglocker_mongo
74+
|learninglocker_redis
75+
|OpenLRW(Web) |openlrw_web
76+
|OpenLRW(DB) |openlrw_mongo
77+
.4+|ステートメント変換 |xAPIステートメント変換 |xapi_stmt_gen
78+
|Caliperステートメント変換 |caliper_stmt_gen
79+
|Caliperステートメント変換(db) |caliper_log_db
80+
|Learning Analytics DB |learning_analytics_db
81+
.3+|分析システム |Superset(Web) |superset
82+
|Superset(DB) |superset-db
83+
|JupyterHub(Web/DB) |jupyterhub
8484
|===
8585

8686
----
@@ -137,21 +137,15 @@ image::learninglocker/add-new-lrs.png[align=center]
137137
[[learninglocker_client_settings]]
138138
==== クライアント情報の設定
139139
サイドメニューの `Settings>Clients` から `New xAPI store client` を選択する。
140-
`Overall Scopes` の `All` にチェックを入れ、LRSとして事前に作成したLRSを指定する
140+
`Overall Scopes` の `API All` にチェックを入れ、 `LRS (optional)` に上記で作成したLRSを指定する
141141

142142
image::learninglocker/new-xapi-store-client.png[align=center]
143143

144144
<<<
145145
=== xAPIステートメント変換スクリプトの設定
146-
`xapi_stmt_gen` コンテナに接続する。
147-
148-
----
149-
$ docker exec -it xapi_stmt_gen bash
150-
----
151-
152146
スクリプトの設定ファイルを編集する。
153147

154-
./usr/local/src/xapi_stmt_gen/config/app.js
148+
.xapi_stmt_gen/xapi_stmt_gen/config/app.js
155149
[source, javascript]
156150
----
157151
const config = {
@@ -183,6 +177,13 @@ $ docker inspect learninglocker
183177
...
184178
----
185179

180+
設定ファイルの変更を `xapi_stmt_gen` コンテナに反映する。
181+
182+
----
183+
$ docker-compose build xapi_stmt_gen
184+
$ docker-compose up -d xapi_stmt_gen
185+
----
186+
186187
<<<
187188
=== xAPIステートメントの生成
188189
Moodle上での学習活動を実施した後、以下のコマンドでMoodleログをxAPIステートメントに変換する。
@@ -198,13 +199,13 @@ image::learninglocker/source.png[align=center]
198199
なお、Moodleログの処理済み件数を算出する場合は以下のコマンドを実行する。
199200

200201
----
201-
$ docker exec -it moodle-docker_db_1 psql -U moodleuser moodle -c "SELECT count(*) FROM xapi_records_processed;"
202+
$ docker exec -it learning_analytics_db psql -U learning_analytics learning_analytics -c "SELECT count(*) FROM xapi_records_processed;"
202203
----
203204

204205
また、スクリプトのバージョンアップ等に伴い処理済みのMoodleログを再度処理したい場合は、以下のコマンドで変換処理の実行履歴を削除する。
205206

206207
----
207-
$ docker exec -it moodle-docker_db_1 psql -U moodleuser moodle -c "DELETE FROM xapi_records_processed;"
208+
$ docker exec -it learning_analytics_db psql -U learning_analytics learning_analytics -c "DELETE FROM xapi_records_processed;"
208209
----
209210

210211
<<<
@@ -328,6 +329,13 @@ $ docker-compose exec openlrw_mongo bash
328329

329330
<<<
330331
=== Supersetの設定
332+
==== データベースの初期設定
333+
以下のコマンドを実行し、データベースの初期設定を行う。
334+
335+
----
336+
$ docker-compose exec superset /init.sh
337+
----
338+
331339
==== ログイン
332340
Superset( http://localhost:8088 )にアクセスし、Adminユーザでログインする(Username: `admin` 、Password: `admin` )。
333341

@@ -353,7 +361,7 @@ image::superset/xapi/list-databases.png[align=center]
353361
[%noheader, cols="1,3"]
354362
|===
355363
|Databases |learninglocker
356-
|SQLAlchemy URI |postgresql://postgres@superset_db:5432/learninglocker
364+
|SQLAlchemy URI |postgresql://postgres@superset-db:5432/learninglocker
357365
|Expose in SQL Lab|チェック
358366
|===
359367

@@ -395,6 +403,17 @@ image::superset/xapi/added-xapi-statements.png[align=center]
395403
<<<
396404
`xapi_statements` テーブルを選択し、Learning Lockerに登録済みのステートメント件数が取得できることを確認する。
397405

406+
.xAPIステートメントの件数をカウントする例
407+
[cols="30%,30%,40%"]
408+
|===
409+
|大項目 |小項目 |設定値
410+
|Datasource & Chart Type |Visualization Type |`Table View`
411+
.3+|Time |Time Column |`stored`
412+
|Since |`∞` (指定なし)
413+
|Until |`∞` (指定なし)
414+
|GROUP BY |Metric |`COUNT(*)`
415+
|===
416+
398417
image::superset/xapi/count-xapi-statements.png[align=center]
399418

400419
<<<
@@ -412,7 +431,7 @@ image::superset/caliper/list-databases.png[align=center]
412431
[%noheader, cols="1,3"]
413432
|===
414433
|Database |openlrw
415-
|SQLAlchemy URI |postgresql://postgres@superset_db:5432/openlrw
434+
|SQLAlchemy URI |postgresql://postgres@superset-db:5432/openlrw
416435
|Expose in SQL Lab|チェック
417436
|===
418437

@@ -454,6 +473,17 @@ image::superset/caliper/added-caliper-statements.png[align=center]
454473
<<<
455474
`caliper_statements` テーブルを選択し、OpenLRWに登録済みのステートメント件数が取得できることを確認する。
456475

476+
.Caliperステートメントの件数をカウントする例
477+
[cols="30%,30%,40%"]
478+
|===
479+
|大項目 |小項目 |設定値
480+
|Datasource & Chart Type |Visualization Type |`Table View`
481+
.3+|Time |Time Column |`event.eventTime`
482+
|Since |`∞` (指定なし)
483+
|Until |`∞` (指定なし)
484+
|GROUP BY |Metric |`COUNT(*)`
485+
|===
486+
457487
image::superset/caliper/count-caliper-statements.png[align=center]
458488

459489
<<<
@@ -505,10 +535,10 @@ JupyterHubにログインし、ノートブック「link:jupyterhub/notebooks/im
505535
image::jupyterhub/import-analysis-result-to-superset.png[align=center]
506536

507537
<<<
508-
`superset_db` コンテナ上に登録された分析結果は以下のコマンドで参照することができる。
538+
`superset-db` コンテナ上に登録された分析結果は以下のコマンドで参照することができる。
509539

510540
----
511-
$ docker exec -it superset_db psql jupyter -c "SELECT * FROM <tablename>;"
541+
$ docker exec -it superset-db psql jupyter -c "SELECT * FROM <tablename>;"
512542
513543
index | object.definition.description.en |object.id | timestamp
514544
--------+--------------------------------------------+------------------------------+---------------------------
@@ -523,7 +553,7 @@ Superset上で上記テーブルが格納されたjupyterデータベースを
523553
[%noheader, cols="1,3"]
524554
|===
525555
|Database |jupyter
526-
|SQLAlchemy URI |postgresql://postgres@superset_db:5432/jupyter
556+
|SQLAlchemy URI |postgresql://postgres@superset-db:5432/jupyter
527557
|Expose in SQL Lab|チェック
528558
|===
529559

@@ -541,11 +571,23 @@ image::superset/jupyter/add-jupyter-analysis-result.png[align=center]
541571

542572
image::superset/jupyter/added-jupyter-analysis-result.png[align=center]
543573

544-
グループ列、フィルター列、時刻列の指定などはテーブルの設定から必要に応じて行うこと
574+
グループ列、フィルター列、時刻列の指定などはテーブルの設定(テーブル名左横の `Edit record` から `List Columns` タブを選択)から必要に応じて行うこと
545575

546576
image::superset/jupyter/edit-jupyter-analysis-result.png[align=center]
547577

548578
<<<
549579
JupyterHubで加工したステートメントが可視化できることを確認すること。
550580

551-
image::superset/jupyter/visualize-jupyter-analysis-result.png[align=center]
581+
.ノートブックの実行結果を可視化する例
582+
[cols="30%,30%,40%"]
583+
|===
584+
|大項目 |小項目 |設定値
585+
|Datasource & Chart Type |Visualization Type |`Distribution - Bar Chart`
586+
.3+|Time |Time Column |`timestamp`
587+
|Since |`∞` (指定なし)
588+
|Until |`∞` (指定なし)
589+
.2+|Query |Metric |`COUNT(*)`
590+
|Series |`object.id`
591+
|===
592+
593+
image::superset/jupyter/visualize-jupyter-analysis-result.png[align=center, scaledwidth=90%]

bin/moodle_install

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,3 @@ sed -i.org -e "s/MOODLE_DOCKER_DBUSER: moodle/MOODLE_DOCKER_DBUSER: moodleuser/"
1313
sed -i.org -e "s/$CFG->prefix = 'm_';/$CFG->prefix = 'mdl_';/" moodle/config.php
1414

1515
$BIN_DIR/moodle_start
16-
17-
docker cp $REPO_DIR/xapi_stmt_gen/create_xapi_records_processed.sql moodle-docker_db_1:/
18-
docker exec -it moodle-docker_db_1 psql -f create_xapi_records_processed.sql -U moodleuser moodle

bin/moodle_start

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@ REPO_DIR=$(dirname $BIN_DIR)
66

77
export MOODLE_DOCKER_WWWROOT=$REPO_DIR/moodle-docker/moodle
88
export MOODLE_DOCKER_DB=pgsql
9+
export MOODLE_DOCKER_PHP_VERSION=7.2
910
$REPO_DIR/moodle-docker/bin/moodle-docker-compose up -d
1011
$REPO_DIR/moodle-docker/bin/moodle-docker-wait-for-db

caliper/.env

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,13 @@ DB_LOG_DATABASE=caliper_log
1111
DB_LOG_USERNAME=caliper_cli
1212
DB_LOG_PASSWORD=caliper
1313

14+
DB_EPPN=false
15+
DB_EPPN_HOST=<eppn_host_name>
16+
DB_EPPN_DATABASE=<eppn_db_name>
17+
DB_EPPN_USERNAME=<eppn_username>
18+
DB_EPPN_PASSWORD=<eppn_password>
19+
1420
APP_NAME=moodle
21+
APP_URL='http://localhost:8000'
1522

1623
OPENLRW_HOST='openlrw:9966/key/caliper'

caliper/.env.testing

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,14 @@ DB_USERNAME=caliper_test
66
DB_PASSWORD=''
77

88
APP_NAME='RCOS LRS'
9+
APP_URL='https://test.example.com'
910

1011
DB_LOG_DATABASE=caliper_log_test
1112
DB_LOG_USERNAME=caliper_log_test
1213
DB_LOG_PORT=5432
1314

15+
DB_EPPN_DATABASE=eppn_test
16+
DB_EPPN_USERNAME=eppnuser_test
17+
DB_EPPN_PORT=5432
18+
1419
OPENLRW_HOST='localhost:9966/key/caliper'

caliper/Dockerfile

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
FROM composer:1.9 AS builder
2+
3+
LABEL version="2.2.0"
4+
25
WORKDIR /stage
36
COPY . .
47
RUN composer install --no-dev && \
58
composer build
9+
WORKDIR tenantcreator
10+
RUN composer install --no-dev
611

712
FROM php:7.3-alpine AS runtime
813
WORKDIR /app
@@ -14,7 +19,7 @@ RUN apk update &&\
1419
pgsql pdo_pgsql\
1520
mbstring &&\
1621
docker-php-ext-enable pdo pdo_pgsql pdo_mysql
17-
COPY --from=builder /stage/builds/caliper-cli /app
22+
COPY --from=builder /stage /app
1823

1924
ENTRYPOINT [ "/app/caliper-cli" ]
20-
CMD ["generate"]
25+
CMD ["generate"]

0 commit comments

Comments
 (0)