Skip to content

Instantly share code, notes, and snippets.

@udhos
Last active December 3, 2021 17:50
Show Gist options
  • Save udhos/4e14854c299e560de0163933ba739b10 to your computer and use it in GitHub Desktop.
Save udhos/4e14854c299e560de0163933ba739b10 to your computer and use it in GitHub Desktop.
dynamodb partiql

Console:

SELECT * FROM "cb-events"."eventType-index"
	WHERE "eventType" = 'phone-updated'
    AND eventDate >= '2021-10-01'
    AND eventDate <= '2021-10-02'

CLI:

aws dynamodb execute-statement \
    --profile prd \
    --region sa-east-1 \
    --statement \
    "
        SELECT * FROM \"cb-events\".\"eventType-index\"
	    WHERE eventType = 'phone-updated'
        AND eventDate >= '2021-10-01'
        AND eventDate <= '2021-10-02'
    "

script:

#!/bin/bash

count=0
begin=$(date +%Y%m%d-%H%M%S)
update_out() {
    out=result-$begin-$count.json
    echo >&2 update_out: $out
    count=$(($count+1))
}

update_next() {
    next=$(jq -r .NextToken $out)
    echo >&2 update_next: len=$(echo -n $next | wc) [$next] 
}

query="SELECT * FROM \"cb-events\".\"eventType-index\" WHERE eventType = 'phone-updated' AND eventDate >= '2021-10-01' AND eventDate <= '2021-10-02'"

update_out

aws dynamodb execute-statement \
    --profile prd \
    --region sa-east-1 \
    --statement "$query" \
    > $out

update_next

while [ -n "$next" ] && [ "$next" != "null" ]; do
    update_out

    aws dynamodb execute-statement \
        --profile prd \
        --region sa-east-1 \
        --statement "$query" \
        --next-token "$next" \
        > $out

    update_next
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment