Skip to content

Commit db25566

Browse files
committed
6.0.0.2
1 parent 888c84f commit db25566

File tree

13 files changed

+754
-531
lines changed

13 files changed

+754
-531
lines changed

docs/source/01-Store-Large-Object-in-DynamoDB/index.ipynb

+30-9
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,34 @@
11
{
22
"cells": [
33
{
4-
"cell_type": "markdown",
5-
"id": "a99c4da7f32f95c9",
4+
"cell_type": "raw",
5+
"id": "08e57162-2eb6-4166-b08b-769f4f8337f8",
66
"metadata": {
7-
"collapsed": false,
8-
"jupyter": {
9-
"outputs_hidden": false
10-
}
7+
"editable": true,
8+
"raw_mimetype": "text/restructuredtext",
9+
"slideshow": {
10+
"slide_type": ""
11+
},
12+
"tags": []
1113
},
1214
"source": [
13-
"# Store Large Object in DynamoDB\n",
14-
"\n",
15+
".. _store-large-object-in-dynamodb:\n",
1516
"\n",
17+
"Store Large Object in DynamoDB\n",
18+
"================================================================================"
19+
]
20+
},
21+
{
22+
"cell_type": "markdown",
23+
"id": "d02d8940-fcc3-4563-8275-44ba2577768b",
24+
"metadata": {
25+
"editable": true,
26+
"slideshow": {
27+
"slide_type": ""
28+
},
29+
"tags": []
30+
},
31+
"source": [
1632
"## Overview\n",
1733
"\n",
1834
"When storing large binary data in DynamoDB, AWS recommends saving the data in S3 and only keeping the S3 URI in DynamoDB. However, implementing this correctly can be challenging. This article will demonstrate the best practices for this pattern and provide code examples using the [pynamodb_mate](https://github.com/MacHu-GWU/pynamodb_mate-project) library to implement this pattern.\n",
@@ -61,9 +77,14 @@
6177
"start_time": "2024-05-22T18:44:00.880147Z"
6278
},
6379
"collapsed": false,
80+
"editable": true,
6481
"jupyter": {
6582
"outputs_hidden": false
66-
}
83+
},
84+
"slideshow": {
85+
"slide_type": ""
86+
},
87+
"tags": []
6788
},
6889
"outputs": [],
6990
"source": [

docs/source/02-Client-Side-Encryption/index.ipynb

+23-3
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,39 @@
11
{
22
"cells": [
3+
{
4+
"cell_type": "raw",
5+
"metadata": {
6+
"editable": true,
7+
"raw_mimetype": "text/restructuredtext",
8+
"slideshow": {
9+
"slide_type": ""
10+
},
11+
"tags": []
12+
},
13+
"source": [
14+
".. _client-side-encryption:\n",
15+
"\n",
16+
"Client Side Encryption\n",
17+
"================================================================================"
18+
]
19+
},
320
{
421
"cell_type": "markdown",
522
"metadata": {
623
"collapsed": false,
24+
"editable": true,
725
"jupyter": {
826
"outputs_hidden": false
927
},
1028
"pycharm": {
1129
"name": "#%% md\n"
12-
}
30+
},
31+
"slideshow": {
32+
"slide_type": ""
33+
},
34+
"tags": []
1335
},
1436
"source": [
15-
"# Client Side Encryption\n",
16-
"\n",
1737
"## Overview\n",
1838
"\n",
1939
"DynamoDB supports encryption at rest (Server-Side Encryption) and uses SSL to encrypt the transit data (Encrypt on the fly) by default.\n",

docs/source/03-Compressed-Attribute/index.ipynb

+23-3
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,39 @@
11
{
22
"cells": [
3+
{
4+
"cell_type": "raw",
5+
"metadata": {
6+
"editable": true,
7+
"raw_mimetype": "text/restructuredtext",
8+
"slideshow": {
9+
"slide_type": ""
10+
},
11+
"tags": []
12+
},
13+
"source": [
14+
".. _compressed-attribute:\n",
15+
"\n",
16+
"Compressed Attribute\n",
17+
"================================================================================"
18+
]
19+
},
320
{
421
"cell_type": "markdown",
522
"metadata": {
623
"collapsed": false,
24+
"editable": true,
725
"jupyter": {
826
"outputs_hidden": false
927
},
1028
"pycharm": {
1129
"name": "#%% md\n"
12-
}
30+
},
31+
"slideshow": {
32+
"slide_type": ""
33+
},
34+
"tags": []
1335
},
1436
"source": [
15-
"# Compressed Attribute\n",
16-
"\n",
1737
"## Overview\n",
1838
"\n",
1939
"Sometimes you want to compress the data before store to save DB space. For example, in an E-commerce data model, an order has many items like this: ``[{\"item_name\": \"apple\", \"item_count\": 12}, {\"item_name\": \"banana\", \"item_count\": 5}]``. There are lots of repeated information such as the keys ``\"item_name\"`` and ``\"item_count\"``.\n",

docs/source/05-Use-DynamoDB-as-Cache-Backend/index.ipynb

+23-3
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,39 @@
11
{
22
"cells": [
3+
{
4+
"cell_type": "raw",
5+
"metadata": {
6+
"editable": true,
7+
"raw_mimetype": "text/restructuredtext",
8+
"slideshow": {
9+
"slide_type": ""
10+
},
11+
"tags": []
12+
},
13+
"source": [
14+
".. _use-dynamodb-as-a-cache-backend:\n",
15+
"\n",
16+
"Use DynamoDB as a Cache Backend\n",
17+
"================================================================================"
18+
]
19+
},
320
{
421
"cell_type": "markdown",
522
"metadata": {
623
"collapsed": false,
24+
"editable": true,
725
"jupyter": {
826
"outputs_hidden": false
927
},
1028
"pycharm": {
1129
"name": "#%% md\n"
12-
}
30+
},
31+
"slideshow": {
32+
"slide_type": ""
33+
},
34+
"tags": []
1335
},
1436
"source": [
15-
"# Use DynamoDB as a Cache Backend\n",
16-
"\n",
1737
"This feature gives you a \"Redis\" liked, serverless, Zero-ops, auto-scaling, high performance, pay-as-you-go cache layer based on DynamoDB.\n",
1838
"\n",
1939
"NOTE: this solution is based on [pynamodb_mate](https://github.com/MacHu-GWU/pynamodb_mate-project) Python library.\n",

docs/source/06-Status-Tracker/index.ipynb

+24-3
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,40 @@
11
{
22
"cells": [
3+
{
4+
"cell_type": "raw",
5+
"metadata": {
6+
"editable": true,
7+
"raw_mimetype": "text/restructuredtext",
8+
"slideshow": {
9+
"slide_type": ""
10+
},
11+
"tags": []
12+
},
13+
"source": [
14+
".. _status-tracking:\n",
15+
"\n",
16+
"Enable status tracking for business critical application using Amazon DynamoDB\n",
17+
"================================================================================"
18+
]
19+
},
320
{
421
"cell_type": "markdown",
522
"metadata": {
623
"collapsed": false,
24+
"editable": true,
25+
"jp-MarkdownHeadingCollapsed": true,
726
"jupyter": {
827
"outputs_hidden": false
928
},
1029
"pycharm": {
1130
"name": "#%% md\n"
12-
}
31+
},
32+
"slideshow": {
33+
"slide_type": ""
34+
},
35+
"tags": []
1336
},
1437
"source": [
15-
"# Enable status tracking for business critical application using Amazon DynamoDB\n",
16-
"\n",
1738
"In this example, we introduce a pattern for tracking the status of business critical tasks using Amazon DynamoDB as the backend. This feature gives you the ability to track status of each task, and error-handling, retry, concurrency control out-of-the-box.\n",
1839
"\n",
1940
"When managing a large number of business-critical tasks, it is crucial to monitor and identify which tasks have been successful, which have failed, and which are still in progress. If the business logic is a pipeline consisting of a sequence of tasks, it is important to keep track of its current status and have the ability to recover from any failed task. We also have seen some advanced requirements from AWS customers that includes:\n",

docs/source/07-Modeling-Relational-Data-in-DynamoDB/index.ipynb

+23-3
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,39 @@
11
{
22
"cells": [
3+
{
4+
"cell_type": "raw",
5+
"metadata": {
6+
"editable": true,
7+
"raw_mimetype": "text/restructuredtext",
8+
"slideshow": {
9+
"slide_type": ""
10+
},
11+
"tags": []
12+
},
13+
"source": [
14+
".. _modeling-relational-data-in-dynamodb:\n",
15+
"\n",
16+
"Modeling Relational Data in DynamoDB\n",
17+
"================================================================================"
18+
]
19+
},
320
{
421
"cell_type": "markdown",
522
"metadata": {
623
"collapsed": false,
24+
"editable": true,
725
"jupyter": {
826
"outputs_hidden": false
927
},
1028
"pycharm": {
1129
"name": "#%% md\n"
12-
}
30+
},
31+
"slideshow": {
32+
"slide_type": ""
33+
},
34+
"tags": []
1335
},
1436
"source": [
15-
"# Modeling Relational Data in DynamoDB.\n",
16-
"\n",
1737
"DynamoDB offers various strategies for implementing relationships between entities. I have created a [GitHub repository, dynamodb_modeler-project](https://github.com/MacHu-GWU/dynamodb_modeler-project) that thoroughly discusses the different options, comparing their pros and cons, and demonstrates an ultimate strategy that can accommodate arbitrary numbers of entities and relationships while allowing for smooth scalability. The ``pynamodb_mate.patterns.relationship`` module implements this ultimate strategy, making it easy to use in production environments.\n",
1838
"\n",
1939
"To showcase the simplicity and effectiveness of this library, please refer to the following example and compare it with the implementation in the [Reinvent YouTube in DynamoDB](https://github.com/MacHu-GWU/dynamodb_modeler-project/blob/main/Reinvent-YouTube-In-DynamoDB.ipynb) project without using the library. By doing so, you will gain a clear understanding of how this library streamlines the process of modeling relationships in DynamoDB.\n",

0 commit comments

Comments
 (0)