mike-neckのブログ

Java or Groovy or Swift or Golang

datomic

datomic スキーマ変更をデータ非破壊でおこなう #datomic

ここ最近書いていたDatomicチュートリアルのあれは、結構フォーマルな文体で書いていましたが、このエントリーはかなりカジュアルに書きます。 自己参照アトリビュート datomic tutorial 15日目で書いたように、参照型はとにかくなんでもエンティティを参照…

datomicチュートリアル8日目 #datomic

今日はデータの追加をやります。 トランザクションのデータストラクチャー トランザクションをあらわすデータストラクチャーは次のような形になります。 [ [data-structure-list] [data-structure-list] ... ] あるいは [ {data-structure-map} {data-struct…

datomicチュートリアル7日目 #datomic

今日はdatomicと時間との関わりについてです。 Datomicのコンセプトは新しい事実が古い事実を更新しないということです。その代わりにすべての事実をトラッキングできるようにしてあります。 datomicでは次のようなデータを取得する手段を提供しています。 …

datomicチュートリアル6日目 #datomic

今日はルールについて書きます ルールとは クエリーが複雑になるにつれて:where句に内容の重複が発生してきます。その無駄を省くために再利用可能な条件式を定義できます。 ルールはいくつかの条件式を名前をつけてまとめたもので、:where句の中で利用するこ…

datomicチュートリアル5日目 #datomic

今日は関数の話です セットアップ辺りのメソッドは前回掲載されたものを使っています。 variable type db datomic.Database 上記は断りもなく出てきます。ご了承ください。 関数 RDBMSの各種ミドルウェアでは組み込みの関数が提供されていますが、datomicも…

datomicチュートリアル4日目 #datomic

今日はPreparedQueryのようにクエリにパラメーターを渡すチュートリアルをやります。 なお、今日からは@Beforeメソッド内でDatabase db = connection.db()の準備をしておきます。 static final String URI = 'datomic:mem://seattle' static final String DI…

datomicチュートリアル3日目 #datomic

前回の復習 前回のコメントから、KeywordがUtil.read(String)で取得できることがわかったので、最後のサンプルコードを修正してみます。 @Test void queryPullApiWithRelation() { Database db = connection.db() def results = Peer.query('[:find (pull ?c…

datomicチュートリアル2日目

datomicのチュートリアル2日目。 今日はEntity APIとPull APIを試す。 Entity API 昨日もすでにさわっているAPIで、long型のentity idから想定されるentity mapに変換するAPIがEntity APIで、Database#entity(Object)から利用できる。 昨日と同じようなコー…

datomicチュートリアル1日目

前回のエントリーがなんか1日で5,000アクセス出てて、正直ビビった。 CRUDのUDいらんとか過激なことを言ったからだと思ってる。 これは、Thought Works tech Radar で append only datastore でdatomicのことを知ってて、若干それを意識していたのもあったた…

論理削除が云々について

今日朝イチで見たエントリーがこれでした。 RDB - DELETE_FLAG を付ける前に確認したいこと。 - Qiitaqiita.com 論理削除の弊害は色々なところで言われているけど、僕の足りない頭で理解している所によると、二つの値しか持たない削除フラグ的なものはカーデ…