Error in user YAML: (<unknown>): mapping values are not allowed in this context at line 4 column 43
---
# Datomic Cloud Primer
- clj-nakano #5 2018/3/14
- 株式会社シグニファイア代表 中村研二 (github: k2n, twitter: @k2nakamura)
---
- AWSアカウント
- Clojure CLI
- AWS CLI
- GitHubアカウント
- AWS MarketplaceからCloudFormationに必要なパラメタを指定して起動
- テストが終わったらEC2インスタンスを止めるのを忘れずに!
- 秒単位課金で無駄がなくなってます
- Datomicのライセンスとt2.nano, t2.smallのEC2インスタンスで月額約$30
- Music Brainzはオープンな音楽の百科事典
- mbrainz-sampleはDatomic On-prem向けのサンプルデータ
- 手順はDatomic Cloudに適用できない
- 今のところ、Datomic Cloud向けimporter/exporterはバンドルされていない
- mbrainz-importer
config/manifest.edn.sample
をconfig/manifest.edn
にコピーして編集
{:client-cfg {:region "us-west-2"
:server-type :cloud
:system "signifier-dev"
:query-group "signifier-dev"
:endpoint "http://entry.signifier-dev.us-west-2.datomic.net:8182"
:proxy-host "localhost"
:proxy-port 8182}
:db-name "mbrainz-subset"
:basedir "subsets"
:concurrency 3}
[kenji@k2n-mbp13: ] clojure -m datomic.mbrainz.importer config/manifest.edn
Loading batch file for :schema
Batches already completed: 0
.{:process {:forms 1}, :result {:txes 1, :datoms 304}}
...
Loading batch file for :releases
Batches already completed: 9
..{:process {:forms 2}, :result {:txes 2, :datoms 103856}}
"Elapsed time: 5708.891189 msecs"
Loading batch file for :releases-artists
Batches already completed: 11
..{:process {:forms 2}, :result {:txes 2, :datoms 11810}}
"Elapsed time: 2640.703704 msecs"
Loading batch file for :media
Batches already completed: 13
...........{:process {:forms 11}, :result {:txes 11, :datoms 874556}}
"Elapsed time: 46358.909202 msecs"
"Elapsed time: 68590.385983 msecs"
- 約109万件のデータが登録されている
- 環境変数を設定する
export DATOMIC_AWS_REGION=us-west-2 # MarketPlaceで選択したAWSリージョン
export DATOMIC_SYSTEM=my-system # Marketplaceで指定したシステム名
export DATOMIC_QUERY_GROUP=my-system #将来クエリグループが提供された場合に使用。今はシステム名
export DATOMIC_PROXY_PORT=8182 #Socks proxyのローカルポート番号
- 本リポジトリをクローン
$ git clone https://github.com/clj-nakano/datomic-cloud-primer.git
- REPLの起動
$ cd datomic-cloud-primer
$ clj
- カスタム関数の実行。JavaランタイムとClojure coreの関数のみ利用可能
- 変換関数、カスタムトランザクション関数もサポートされていない
- 複数DBを横断するクエリ