Files
integreat/scratch-sessions/dynamo-replica.clj
Bryce Covert bd0f8da16b working on ezcater
ezcater other.

dajusments.

migration for square2
2022-09-26 16:12:39 -07:00

64 lines
2.4 KiB
Clojure

;; 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)