From bc2cc304ee2a1b81746ad97a3a955816c08653d5 Mon Sep 17 00:00:00 2001 From: Alexander Patrikalakis Date: Sun, 23 Apr 2017 13:57:51 +0900 Subject: [PATCH] add copy graph script, update readme --- README.md | 12 ++++---- src/test/resources/copyGraph.sh | 49 +++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 6 deletions(-) create mode 100755 src/test/resources/copyGraph.sh diff --git a/README.md b/README.md index e5fd755..82c30e9 100644 --- a/README.md +++ b/README.md @@ -43,10 +43,10 @@ comic books in which they appeared. ```bash sudo wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo \ - -O /etc/yum.repos.d/epel-apache-maven.repo + -O /etc/yum.repos.d/epel-apache-maven.repo sudo sed -i s/\$releasever/6/g /etc/yum.repos.d/epel-apache-maven.repo - sudo yum update -y && sudo yum upgrade -y - sudo yum install -y apache-maven sqlite-devel git java-1.8.0-openjdk-devel + sudo yum update -y && sudo yum upgrade -y && sudo yum install -y \ + apache-maven sqlite-devel git java-1.8.0-openjdk-devel sudo alternatives --set java /usr/lib/jvm/jre-1.8.0-openjdk.x86_64/bin/java sudo alternatives --set javac /usr/lib/jvm/java-1.8.0-openjdk.x86_64/bin/javac git clone https://github.com/awslabs/dynamodb-titan-storage-backend.git @@ -389,10 +389,10 @@ credential configuration. ```bash sudo wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo \ - -O /etc/yum.repos.d/epel-apache-maven.repo + -O /etc/yum.repos.d/epel-apache-maven.repo sudo sed -i s/\$releasever/6/g /etc/yum.repos.d/epel-apache-maven.repo - sudo yum update -y && sudo yum upgrade -y - sudo yum install -y apache-maven sqlite-devel git java-1.8.0-openjdk-devel + sudo yum update -y && sudo yum upgrade -y && sudo yum install -y \ + apache-maven sqlite-devel git java-1.8.0-openjdk-devel sudo alternatives --set java /usr/lib/jvm/jre-1.8.0-openjdk.x86_64/bin/java sudo alternatives --set javac /usr/lib/jvm/java-1.8.0-openjdk.x86_64/bin/javac git clone https://github.com/awslabs/dynamodb-titan-storage-backend.git diff --git a/src/test/resources/copyGraph.sh b/src/test/resources/copyGraph.sh new file mode 100755 index 0000000..c649df5 --- /dev/null +++ b/src/test/resources/copyGraph.sh @@ -0,0 +1,49 @@ +#!/bin/bash +wget https://github.com/amcp/dynamodb-import-export-tool/archive/createTable.zip +unzip -q createTable.zip +rm createTable.zip +pushd dynamodb-import-export-tool-createTable +mvn install +pushd target + +export ORIGINAL_TABLE_ENDPOINT=$1 +export ORIGINAL_TABLE_REGION=$2 +export ORIGINAL_TABLE_PREFIX=$3 +export NEW_TABLE_ENDPOINT=$4 +export NEW_TABLE_REGION=$5 +export NEW_TABLE_PREFIX=$6 + +declare -a tableSuffixes=("edgestore" "graphindex" "system_properties" "systemlog" "titan_ids" "txlog") + +for tableSuffix in "${tableSuffixes[@]}"; do + ORIGINAL_TABLE_NAME="${ORIGINAL_TABLE_PREFIX}_${tableSuffix}" + NEW_TABLE_NAME="${NEW_TABLE_PREFIX}_${tableSuffix}" + # prepare graph for cross-region replication + # https://github.com/awslabs/dynamodb-cross-region-library#step-1-optional-table-copy-bootstrapping-existing-data + + # enable stream in source tables + aws dynamodb update-table \ + --endpoint ${ORIGINAL_TABLE_ENDPOINT} \ + --table-name ${ORIGINAL_TABLE_NAME} \ + --stream-specification "StreamEnabled=true,StreamViewType=NEW_AND_OLD_IMAGES" + + # bootstrap destination tables + java -jar dynamodb-import-export-tool-1.1.0.jar \ + --sourceSigningRegion ${ORIGINAL_TABLE_REGION} \ + --sourceEndpoint ${ORIGINAL_TABLE_ENDPOINT} \ + --sourceTable ${ORIGINAL_TABLE_NAME} \ + --destinationSigningRegion ${NEW_TABLE_REGION} \ + --destinationEndpoint ${NEW_TABLE_ENDPOINT} \ + --destinationTable ${NEW_TABLE_NAME} \ + --readThroughputRatio 0.5 \ + --writeThroughputRatio 1 \ + --createDestination + + echo "copied table ${ORIGINAL_TABLE_NAME} at ${ORIGINAL_TABLE_ENDPOINT} to ${NEW_TABLE_NAME} at ${NEW_TABLE_ENDPOINT}" +done + +popd +popd + +# clean up +rm -rf dynamodb-import-export-tool-createTable