このプロジェクトは、特に機械学習におけるデータ拡張タスクを目的とした、データセット用の Web クローラーおよび検索エンジンです。さまざまなリポジトリ内のデータセットを検索し、後で取得できるようにインデックスを付けることができます。
ドキュメントはここから入手できます
これは複数のコンポーネントに分かれています。
datamart_geo
。これには、Wikidata と OpenStreetMap から抽出された行政区域に関するデータが含まれています。これは独自のリポジトリに存在し、ここではサブモジュールとして使用されます。datamart_profiler
。これはクライアントによってインストールでき、クライアント ライブラリがデータセットをサーバーに送信する代わりにローカルでプロファイリングできるようになります。これは、apiserver サービスとプロファイラー サービスでも使用されます。datamart_materialize
。これは、Auctus がサポートするさまざまなソースからのデータセットを具体化するために使用されます。これはクライアントによってインストールでき、サーバーをプロキシとして使用する代わりにローカルでデータセットを具体化できるようになります。datamart_augmentation
。これは 2 つのデータセットの結合または結合を実行し、apiserver サービスによって使用されますが、スタンドアロンで使用できる可能性があります。datamart_core
。これにはサービスの共通コードが含まれています。サーバーコンポーネントにのみ使用されます。ファイルシステムのロック コードは、パフォーマンス上の理由からdatamart_fslock
として分離されています (高速にインポートする必要がある)。Elasticsearch は検索インデックスとして使用され、既知のデータセットごとに 1 つのドキュメントを保存します。
これらのサービスはRabbitMQ
介してメッセージを交換するため、キューイングと再試行セマンティクスを含む複雑なメッセージング パターンや、オンデマンド クエリなどの複雑なパターンを実現できます。
このシステムは現在 https://auctus.vida-nyu.org/ で実行されています。システムのステータスは https://grafana.auctus.vida-nyu.org/ で確認できます。
docker-compose を使用してシステムをローカルにデプロイするには、次の手順に従います。
git submodule init && git submodule update
でサブモジュールをチェックアウトしていることを確認してください
Git LFS がインストールおよび設定されていることを確認してください ( git lfs install
)。
env.default を .env にコピーし、そこで変数を更新します。運用環境のパスワードを更新することが必要な場合があります。
ノードが Elasticsearch を実行できるように設定されていることを確認してください。おそらく mmap の制限を引き上げる必要があるでしょう。
API_URL
は、APIserver コンテナがクライアントに表示される URL です。運用環境では、これはおそらく公開 HTTPS URL です。リバース プロキシを使用する場合は、「コーディネーター」コンポーネントが提供される URL と同じにすることができます (nginx.conf を参照)。
スクリプトをローカルで実行するには、次のコマンドを実行して環境変数をシェルにロードします. scripts/load_env.sh
(ドットスペーススクリプトです... )
scripts/setup.sh
実行してデータ ボリュームを初期化します。これにより、 volumes/
サブディレクトリに正しいアクセス許可が設定されます。
最初から開始したい場合は、 volumes/
削除できますが、その後必ずscripts/setup.sh
再度実行して権限を設定してください。
$ docker-compose build --build-arg version=$(git describe) apiserver
$ docker-compose up -d elasticsearch rabbitmq redis minio lazo
これらが起動して実行されるまでには数秒かかります。その後、他のコンポーネントを開始できます。
$ docker-compose up -d cache-cleaner coordinator profiler apiserver apilb frontend
--scale
オプションを使用すると、さらにプロファイラーまたは APIserver コンテナーを起動できます。次に例を示します。
$ docker-compose up -d --scale profiler=4 --scale apiserver=8 cache-cleaner coordinator profiler apiserver apilb frontend
ポート:
$ scripts/docker_import_snapshot.sh
これにより、auctus.vida-nyu.org から Elasticsearch ダンプがダウンロードされ、ローカルの Elasticsearch コンテナにインポートされます。
$ docker-compose up -d socrata zenodo
$ docker-compose up -d elasticsearch_exporter prometheus grafana
Prometheus はコンテナを自動的に検索するように構成されています (prometheus.yml を参照)
カスタム RabbitMQ イメージが使用され、プラグイン (管理およびプロメテウス) が追加されます。