最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何使用 python查詢Amazon DynamoDB

 更新時(shí)間:2023年06月20日 11:22:28   作者:跡憶客  
本文介紹了如何使用Python Boto3在Amazon DynamoDB上查詢DynamoDB 表、創(chuàng)建、列出和執(zhí)行其他 CRUD 活動(dòng)以及執(zhí)行其他維護(hù)任務(wù),本文給大家介紹的非常詳細(xì),需要的朋友參考下

本文將討論如何使用 python 查詢 Amazon DynamoDB。 我們還將討論 Boto3 是什么以及它為什么需要查詢 DynamoDB。

DynamoDB 簡(jiǎn)介

DynamoDB 是一種 NoSQL 數(shù)據(jù)庫(kù)服務(wù),提供內(nèi)置安全機(jī)制、連續(xù)備份、內(nèi)存緩存和有用的數(shù)據(jù)導(dǎo)入/導(dǎo)出工具。

DynamoDB 在一個(gè) AWS 區(qū)域的不同可用區(qū) (AZ) 之間自動(dòng)復(fù)制數(shù)據(jù),增強(qiáng)了針對(duì)中斷和數(shù)據(jù)丟失的安全性。 DynamoDB 提供了許多安全功能,包括細(xì)粒度訪問控制、靜態(tài)加密和用戶活動(dòng)記錄。

Boto3簡(jiǎn)介

Boto3 是為 Amazon Web Services (AWS) 開發(fā)的內(nèi)置 python 庫(kù)。 該庫(kù)可用于交互、創(chuàng)建、配置、管理和使用 Amazon 的不同服務(wù),包括 DynamoDB。

安裝和導(dǎo)入 Boto3

要在我們的 Python 工作臺(tái)中安裝 Boto3 庫(kù),請(qǐng)使用以下命令。

pip install boto3

輸出:

代碼:

Import boto3

這會(huì)將 boto3 庫(kù)導(dǎo)入到我們的筆記本中。

將 Boto3 連接到 DynamoDB

我們將使用以下代碼通過 Boto3 連接到我們的 DynamoDB。

代碼:

import boto3
client = boto3.client('dynamodb',
  aws_access_key_id='yyyy',
  aws_secret_access_key='xxxx',
  region_name='us-east-1')

請(qǐng)記住,數(shù)據(jù)庫(kù)必須已經(jīng)在 AWS DynamoDB 上創(chuàng)建才能通過 Python Boto3 庫(kù)連接到它。

使用 Boto3 在 DynamoDB 中創(chuàng)建表

DynamoDB 上的表可以通過多種方式創(chuàng)建。 這包括使用 Amazon CLI、AWS 控制臺(tái)或使用 Boto3。

在這里,我們將按照前面提到的步驟將 Boto3 與我們已經(jīng)連接到的數(shù)據(jù)庫(kù)一起使用。 了解 DynamoDB 客戶端和表資源如何變化可以讓您根據(jù)需要使用其中任何一個(gè),因?yàn)樵摫碣Y源可以顯著簡(jiǎn)化某些操作。

開發(fā)人員可以使用 boto3.resource('dynamodb') 資源創(chuàng)建、更新和刪除 DynamoDB 表和所有內(nèi)容。 此資源支持使用條件表達(dá)式和表級(jí)安全性的項(xiàng)目級(jí)安全性。

要對(duì) DynamoDB 數(shù)據(jù)進(jìn)行無服務(wù)器訪問,請(qǐng)將 boto3.resource('dynamodb') 資源與 AWS Lambda 函數(shù)結(jié)合使用。

import boto3
dynamodb = boto3.resource('dynamodb', region_name='us-west-2')
table = dynamodb.create_table(
    TableName='Movies',
    KeySchema=[
        {
            'AttributeName': 'year',
            'KeyType': 'HASH'  #Partition key
        },
        {
            'AttributeName': 'title',
            'KeyType': 'RANGE'  #Sort key
        }
    ],
    AttributeDefinitions=[
        {
            'AttributeName': 'id',
            'AttributeType': 'N'
        },
        {
            'AttributeName': 'createdAt',
            'AttributeType': 'S'
        },
    ],
    ProvisionedThroughput={
        'ReadCapacityUnits': 10,
        'WriteCapacityUnits': 10
    }
)
print("Table status:", table.table_status)

通過 Boto3 創(chuàng)建表需要一些時(shí)間才能激活和顯示。 建議在重試之前稍等片刻,或者我們可以使用服務(wù)員功能讓我們知道表何時(shí)處于活動(dòng)狀態(tài)。

import botocore.session
session = botocore.session.get_session()
dynamodb = session.create_client('dynamodb', region_name='us-east-1') # low-level client
waiter = dynamodb.get_waiter('table_exists')
waiter.wait(TableName="my-table-name")

通過 Boto3 刪除 DynamoDB 中的表

在 DynamoDB 中刪除表非常簡(jiǎn)單。 如果我們改變主意并想從數(shù)據(jù)庫(kù)中刪除一個(gè)表,我們需要輸入以下代碼片段。

import boto3
dynamodb = boto3.resource('dynamodb', region_name='us-east-1')
dynamodb.delete_table(
    TableName="Movies"
)

請(qǐng)記住,我們要?jiǎng)h除的表已經(jīng)存在于數(shù)據(jù)庫(kù)中且名稱相同,否則會(huì)給我們一條錯(cuò)誤消息(未找到表)。

通過 Boto3 列出 DynamoDB 中的表

如果我們有興趣查找我們所在地區(qū)所有可用餐桌的列表,我們需要使用 list() 函數(shù)列出該地區(qū)所有可用餐桌。

import boto3
dynamodb = boto3.resource('dynamodb', region_name=region)
tables = list(dynamodb.tables.all())
print(tables)

必須確保表的總數(shù)小于 100,否則我們將不得不對(duì)列表進(jìn)行分頁(yè)。

通過 Boto3 在 DynamoDB 中分頁(yè)

單個(gè)列表調(diào)用返回最多 1MB 項(xiàng)目的結(jié)果。 為了進(jìn)一步上市,我們需要發(fā)出第二個(gè)電話。 如果響應(yīng)對(duì)象中存在 LastEvaluatedKey,則應(yīng)再次調(diào)用 ExclusiveStartKey 以從此表中獲取更多項(xiàng)。

dynamodb = boto3.resource('dynamodb', region_name=region)
table = dynamodb.Table('my-table')
response = table.query()
data = response['Items']
# LastEvaluatedKey indicates that there are more results
while 'LastEvaluatedKey' in response:
    response = table.query(ExclusiveStartKey=response['LastEvaluatedKey'])
    data.update(response['Items'])

通過 Boto3 在 DynamoDB 中排序

在數(shù)據(jù)庫(kù)端,DynamoDB 只提供了一種對(duì)結(jié)果進(jìn)行排序的方法。 如果您的表格缺少結(jié)果,則您對(duì)項(xiàng)目進(jìn)行排序的能力僅限于在收到結(jié)果后在應(yīng)用程序代碼中這樣做。

但是,您可以使用以下語法以降序或升序使用排序鍵對(duì) DynamoDB 結(jié)果進(jìn)行排序。

import boto3
dynamodb = boto3.resource('dynamodb', region_name=region)
table = dynamodb.Table('my-table')
response = table.query(
    ScanIndexForward=False # true = ascending, false = descending
)
data = response['Items']

通過 Boto3 在 DynamoDB 中獲取項(xiàng)目

如果我們有興趣從 DynamoDB 數(shù)據(jù)庫(kù)中獲取特定項(xiàng)目,則使用 GetItem() 函數(shù)。

import boto3
dynamodb = boto3.resource('dynamodb', region_name=region)
table = dynamodb.Table('my-table')
response = table.get_item(Key={
  primaryKeyName: "ID-1",
  sortKeyName: "SORT_2"
})

通過 Boto3 掃描 DynamoDB 中的項(xiàng)目

表格中的所有信息都可以通過掃描訪問。 讀取表中的每一項(xiàng)后,數(shù)據(jù)將由 scan() 方法返回。

當(dāng)您添加其他選項(xiàng)(如 FilterExpression)時(shí),表掃描操作可以返回更少的所需結(jié)果。

import boto3
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('Employees')
response = table.scan()
response['Items']
print(response)

或者

import boto3
from boto3.dynamodb.conditions import Key, Attr
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('Employees')
response = table.scan(FilterExpression=Attr('Department').eq('IT'))
print("The query returned the following items:")
for item in response['Items']:
    print(item)

DynamoDB 中的全局二級(jí)索引

您可以使用全局二級(jí)索引查詢不包含在主表主鍵中的屬性。 這樣做可以避免全表掃描過程帶來的延遲和低效率。

全局二級(jí)索引也將包括來自主表的屬性,但將使用不同的主鍵進(jìn)行結(jié)構(gòu)化,從而加快查詢速度。

使用 Boto3 備份 DynamoDB 表

要使用 Boto3 為 DynamoDB 表創(chuàng)建按需備份,請(qǐng)使用 create_backup() 方法并將目標(biāo)備份表名稱與表名稱一起傳遞。

import boto3
client = boto3.client('dynamodb')
response = client.create_backup(
    TableName='Employees',
    BackupName='Employees-Backup-01'
)
print(response)

總結(jié)

本文介紹了如何使用 Python Boto3 在 Amazon DynamoDB 上查詢 DynamoDB 表、創(chuàng)建、列出和執(zhí)行其他 CRUD 活動(dòng)以及執(zhí)行其他維護(hù)任務(wù)。

到此這篇關(guān)于Python 查詢 DynamoDB的文章就介紹到這了,更多相關(guān)Python 查詢 DynamoDB內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Pytorch中expand()的使用(擴(kuò)展某個(gè)維度)

    Pytorch中expand()的使用(擴(kuò)展某個(gè)維度)

    這篇文章主要介紹了Pytorch中expand()的使用(擴(kuò)展某個(gè)維度),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Python3基礎(chǔ)之基本數(shù)據(jù)類型概述

    Python3基礎(chǔ)之基本數(shù)據(jù)類型概述

    這篇文章主要介紹了Python3的基本數(shù)據(jù)類型,需要的朋友可以參考下
    2014-08-08
  • Python 根據(jù)日志級(jí)別打印不同顏色的日志的方法示例

    Python 根據(jù)日志級(jí)別打印不同顏色的日志的方法示例

    這篇文章主要介紹了Python 根據(jù)日志級(jí)別打印不同顏色的日志的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 教你使用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)易版Web服務(wù)器

    教你使用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)易版Web服務(wù)器

    這篇文章主要介紹了教你使用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)易版Web服務(wù)器,本篇文章將通過實(shí)現(xiàn)一個(gè)簡(jiǎn)易版的Web服務(wù)器,幫助讀者理解Python網(wǎng)絡(luò)編程的基本概念和技巧,需要的朋友可以參考下
    2023-04-04
  • python中SSH遠(yuǎn)程登錄設(shè)備的實(shí)現(xiàn)方法

    python中SSH遠(yuǎn)程登錄設(shè)備的實(shí)現(xiàn)方法

    本文主要介紹了python中SSH遠(yuǎn)程登錄設(shè)備,python中支持SSH協(xié)議的模塊主要有Paramiko和netmiko兩種,本文主要介紹了netmiko模塊,具有一定的參考價(jià)值,感興趣的可以了解一下
    2022-04-04
  • Python讀寫Excel大數(shù)據(jù)文件的3種有效方式對(duì)比

    Python讀寫Excel大數(shù)據(jù)文件的3種有效方式對(duì)比

    Python處理Excel大數(shù)據(jù)有很多方式,不過Excel撐死才104萬行,能有多大的數(shù)據(jù),本文主要介紹了三種常見方式,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-09-09
  • Python使用Arrow管理日期與時(shí)間的完整指南

    Python使用Arrow管理日期與時(shí)間的完整指南

    時(shí)間在數(shù)據(jù)分析中扮演著至關(guān)重要的角色,而選擇適當(dāng)?shù)臅r(shí)間處理模塊對(duì)于提高代碼效率和可讀性至關(guān)重要,本文將深入介紹 Arrow 模塊,探討其相對(duì)于其他時(shí)間處理模塊的優(yōu)勢(shì),以及在數(shù)據(jù)分析中的實(shí)際應(yīng)用,需要的朋友可以參考下
    2025-06-06
  • python實(shí)現(xiàn)圖像高斯金字塔的示例代碼

    python實(shí)現(xiàn)圖像高斯金字塔的示例代碼

    這篇文章主要介紹了python實(shí)現(xiàn)圖像高斯金字塔的示例代碼,幫助大家更好的利用python處理圖片,感興趣的朋友可以了解下
    2020-12-12
  • Python self用法詳解

    Python self用法詳解

    這篇文章主要介紹了Python self用法的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-11-11
  • 詳解如何利用Python繪制科赫曲線

    詳解如何利用Python繪制科赫曲線

    科赫曲線是一種像雪花的幾何曲線,所以又稱為雪花曲線,它是de Rham曲線的特例。本文將利用Python語言實(shí)現(xiàn)這一曲線,需要的可以參考一下
    2022-05-05

最新評(píng)論

当阳市| 肃宁县| 忻城县| 琼海市| 上虞市| 二手房| 石首市| 紫阳县| 靖江市| 清远市| 成安县| 霍邱县| 大余县| 通海县| 西安市| 泸水县| 车致| 广灵县| 辽中县| 兴化市| 黑山县| 林甸县| 辛集市| 彰化县| 堆龙德庆县| 绿春县| 南华县| 玉山县| 神池县| 黔江区| 德州市| 郸城县| 古交市| 巫溪县| 长汀县| 定西市| 庐江县| 越西县| 禄劝| 子长县| 天等县|