working on ezcater
ezcater other. dajusments. migration for square2
This commit is contained in:
63
scratch-sessions/dynamo-replica.clj
Normal file
63
scratch-sessions/dynamo-replica.clj
Normal file
@@ -0,0 +1,63 @@
|
||||
;; This buffer is for Clojure experiments and evaluation.
|
||||
|
||||
;; Press C-j to evaluate the last expression.
|
||||
|
||||
;; You can also press C-u C-j to evaluate the expression and pretty-print its result.
|
||||
|
||||
(ns dynamo-replica
|
||||
(:require [amazonica.aws.dynamodbv2 :as ddb]
|
||||
[datomic.api :as d]
|
||||
[auto-ap.datomic :refer [conn]]))
|
||||
|
||||
(ddb/delete-table :table-name "sales-replica")
|
||||
|
||||
(ddb/create-table
|
||||
:table-name "sales-replica"
|
||||
:key-schema [{:attribute-name "id" :key-type "HASH"}
|
||||
{:attribute-name "date" :key-type "RANGE"}]
|
||||
:attribute-definitions
|
||||
[{:attribute-name "id" :attribute-type "S"}
|
||||
{:attribute-name "date" :attribute-type "S"}
|
||||
{:attribute-name "client" :attribute-type "N"}]
|
||||
:global-secondary-indexes
|
||||
[{:index-name "client_date"
|
||||
:key-schema [{:attribute-name "client" :key-type "HASH"}
|
||||
{:attribute-name "date" :key-type "RANGE"}]
|
||||
:projection {:projection-type "ALL"}
|
||||
:provisioned-throughput
|
||||
{:read-capacity-units 500
|
||||
:write-capacity-units 500}}]
|
||||
:provisioned-throughput
|
||||
{:read-capacity-units 500
|
||||
:write-capacity-units 500})
|
||||
|
||||
(user/init-repl)
|
||||
|
||||
(doseq [client ["NGAK"]
|
||||
batch (->> (d/q '[:find [?s ...]
|
||||
:in $ ?c
|
||||
:where
|
||||
[?s :sales-order/client ?c]]
|
||||
(d/db conn)
|
||||
[:client/code client])
|
||||
|
||||
(partition-all 25)
|
||||
(map (fn [batch]
|
||||
(for [o (d/pull-many (d/db conn) '[* {:sales-order/charges [*] :sales-order/line-items [*]}] batch)]
|
||||
{:id (str (:db/id o))
|
||||
:client (:db/id (:sales-order/client o))
|
||||
:date (str (:sales-order/date o))
|
||||
:total (:sales-order/total o)
|
||||
#_#_:line-items (into-array (for [i (:sales-order/line-items o)]
|
||||
(java.util.HashMap. {:total (:order-line-item/total i)})))}))))]
|
||||
(println "Adding 25 ... " (first batch))
|
||||
(ddb/batch-write-item :request-items
|
||||
{"sales-replica"
|
||||
(for [item batch]
|
||||
{:put-request {:item item}})})
|
||||
(Thread/sleep 50)
|
||||
#_(ddb/put-item :table-name "sales-replica"
|
||||
:item item))
|
||||
|
||||
(doc d/pull-many)
|
||||
|
||||
Reference in New Issue
Block a user