敏捷數據開發實踐:基于 Amazon Q Developer + Remote MCP 構建本地與云端 Amazon Redshift 交互體系

敏捷數據開發實踐:基于 Amazon Q Developer + Remote MCP 構建本地與云端 Amazon Redshift 交互體系

新用戶可獲得高達 200 美元的服務抵扣金

亞馬遜云科技新用戶可以免費使用亞馬遜云科技免費套餐(Amazon Free Tier)。注冊即可獲得 100 美元的服務抵扣金,在探索關鍵亞馬遜云科技服務時可以再額外獲得最多 100 美元的服務抵扣金。使用免費計劃試用亞馬遜云科技服務,最長可達 6 個月,無需支付任何費用,除非您選擇付費計劃。付費計劃允許您擴展運營并獲得超過 150 項亞馬遜云科技服務的訪問權限。

前言

數據驅動的開發場景中,本地工具與云端數據庫的高效交互是提升效率的關鍵。本文聚焦 Amazon Q Developer + Remote MCP 訪問 Amazon Redshift 方案,通過搭建 “本地 CLI - 中間服務 - 云端數據庫” 鏈路,實現自然語言轉 SQL 執行、內網安全訪問等能力,幫助開發者簡化 Redshift 數據查詢流程,構建敏捷、可擴展的云端數據操作體系,適配快速迭代的開發需求

技術架構

在這里插入圖片描述

本地環境中,Amazon Q Developer CLI 作為操作入口,向 MCP Server(stdio)發起請求,MCP Server 接收后,執行 SQL 語句并與 Amazon Redshift 數據庫交互,構建起 “本地工具 - 中間服務 - 云端數據庫” 的簡潔數據處理鏈路,實現本地對云端數據庫的操作與數據交互

  • 操作鏈路精簡高效:本地通過 Amazon Q Developer CLI 直連 MCP Server,省去復雜中間環節,快速觸發 SQL 執行流程,降低操作延遲,讓開發側與服務端交互更敏捷,提升日常數據操作效率
  • 精準的數據交互閉環:清晰構建 “本地工具 → 中間服務 → 云端數據庫” 的交互路徑,MCP Server 精準承接 CLI 指令并執行 SQL,保障數據操作精準觸達,讓本地開發對云端數據的讀寫、查詢等需求,能穩定、直接地落地執行
  • 架構輕量易維護:整體架構聚焦核心功能,以最少組件實現 “本地 - 服務端 - 云端數據庫” 連通,無冗余設計。后續運維只需關注 CLI 工具、MCP Server 及 Redshift 交互邏輯,降低系統復雜度與維護成本,適配快速迭代的開發場景

前提準備:亞馬遜云科技注冊流程

Step.1 登錄官網

登錄亞馬遜云科技官網,填寫郵箱和賬戶名稱完成驗證(注冊亞馬遜云科技填寫 root 郵箱、賬戶名,驗證郵件地址,查收郵件填驗證碼驗證,驗證通過后設 root 密碼并確認)

在這里插入圖片描述

Step.2 選擇賬戶計劃

選擇賬戶計劃,兩種計劃,按需選"選擇免費計劃 / 選擇付費計劃"繼續流程

  • 免費(6 個月,適合學習實驗,含$200抵扣金、限精選服務,超限額或到期可升級付費,否則關停)
  • 付費(適配生產,同享$200 抵扣金,可體驗全部服務,抵扣金覆蓋廣,用完按即用即付計費)

在這里插入圖片描述

Step.3 填寫聯系人信息

填寫聯系人信息(選擇使用場景,填聯系人全名、電話,選擇所在國家地區,完善地址、郵政編碼,勾選同意客戶協議,點擊繼續 進入下一步)

在這里插入圖片描述

Step.4 綁定信息

綁定相關信息,選擇國家地區,點擊"Send code"收驗證碼填寫,勾選同意協議后,點擊"驗證并繼續"進入下一步

在這里插入圖片描述

Step.5 電話驗證

電話驗證填寫真實手機號,選擇驗證方式,完成安全檢查,若選語音,網頁同步顯 4 位數字碼,接來電后輸入信息,再填收到的驗證信息,遇問題超 10 分鐘收不到可返回重試。

在這里插入圖片描述

Step.6 售后支持

售后支持:免費計劃自動獲基本支持,付費計劃需選支持計劃(各計劃都含客戶服務,可訪問文檔白皮書,按需選后點 “完成注冊”,若需企業級支持可了解付費升級選項,確認選好即可完成整個注冊流程 )

在這里插入圖片描述

Amazon Q Developer+Remote MCP 訪問 Amazon Redshift

1、集成 Local MCP Server,創建 Python 虛擬環境

curl -LsSf https://astral.sh/uv/install.sh | sh# Create a new directory for your project (you've already done this)
uv init redshift
cd redshift# Create a Python 3.12 virtual environment
uv venv # Activate the virtual environment
source .venv/bin/activate# Install dependencies
uv add mcp fastmcp redshift_connector# Create our server file
touch redshift.py

2、準備 Local MCP Server 的 Python 代碼 redshift.py

from mcp.server.fastmcp import FastMCP
from mcp.types import TextContent
from mcp.types import Resource, ResourceTemplate, Tool, TextContent
import redshift_connector
import osmcp = FastMCP(name="redshift", stateless_http=True)
REDSHIFT_CONFIG = {"host": os.environ['REDSHIFT_HOST'],"port": int(os.environ['REDSHIFT_PORT']),"database": os.environ['REDSHIFT_DATABASE'],"user": os.environ['REDSHIFT_USER'],"password": os.environ['REDSHIFT_PASSWORD']
}def _execute_sql(sql:str):with redshift_connector.connect(**REDSHIFT_CONFIG) as conn:conn.autocommit = Truewith conn.cursor() as cursor:try:cursor.execute(sql)columns = [desc[0] for desc in cursor.description]rows = cursor.fetchall()result = [",".join(map(str, row)) for row in rows]return [TextContent(type="text", text="\n".join([",".join(columns)] +  result ))]except Exception as e:return [TextContent(type="text", text=f"Error executing query: {str(e)}")]return None@mcp.tool()
def execute_sql(sql: str) :"""Execute a SQL Query on the Redshift clusterArgs:sql: The SQL to Execute"""return _execute_sql(sql)@mcp.tool()
def get_schemas(schema: str) :"""Get all tables in a schema from redshift databaseArgs:schema: the redshift schema"""sql = f"""SELECT table_name FROM information_schema.tablesWHERE table_schema = '{schema}'GROUP BY table_nameORDER BY table_name"""return _execute_sql(sql)@mcp.tool()
def get_table_ddl(schema: str, table:str) :"""Get DDL for a table from redshift databaseArgs:schema: the redshift schema nametable: the redshift table name"""sql = f"""show table {schema}.{table}"""return _execute_sql(sql)
if __name__ == "__main__":# Initialize and run the servermcp.run(transport='stdio')

3、通過 vim .amazonq/mcp.json 編輯 MCP Server 配置

{"mcpServers": {"redshiftserver": {"timeout": 60,"command": "uv","args": ["--directory","/path/redshift","run","redshift.py"],"env": {"RS_HOST": "your_redshift_cluster_host","RS_DATABASE": "default_is_dev","RS_SCHEMA": "default_is_public","RS_USER": "your_redshift_user","RS_PASSWORD": "your_redshift_password"},"transportType": "stdio"}}
}

4、運行 Amazon Q Developer CLI,列出當前的 MCP Tools

在這里插入圖片描述

5、輸入自然語言查詢數據:查看 Redshift 中客戶表的數據條數,Amazon Q Developer CLI 將其轉換為 SQL 并執行,獲取到查詢結果

在這里插入圖片描述

6、需要為 Amazon Lambda 函數構建 Layer,將相關依賴包放入 Layer 當中,通過如下腳本構建 zip 包,并上傳至 S3 中

#!/bin/bash
mkdir -p layer_build
cd layer_buildcat > requirements.txt << EOL
fastapi==0.115.12
fastmcp==2.3.0
mcp==1.8.0
pydantic==2.11.4
uvicorn==0.34.2
redshift_connector
EOLpython3.12 -m venv create_layer
source create_layer/bin/activate
pip install -r requirements.txt
mkdir python
cp -r create_layer/lib python/
zip -r layer_content.zip python

7、創建 Amazon Lambda Layer

在這里插入圖片描述

8、創建 Amazon Lambda 函數,創建用于部署 MCP Server 的 Amazon Lambda 函數

在這里插入圖片描述

9、為了讓 Amazon Lambda 函數通過內網訪問 Amazon Redshift 集群,需要設置 Amazon Lambda 函數的 VPC 、子網和安全組,并配置 Amazon Redshift 集群的安全組入站規則,允許來自 Amazon Lambda 函數安全組的訪問

在這里插入圖片描述

10、創建 Amazon API Gateway

在這里插入圖片描述

11、使用 Amazon Q Developer CLI 進行測試

{"mcpServers":{"redshift-remote-server":{"command": "npx","args":["mcp-remote","https://xxxxx.execute-api.ap-southeast-1.amazonaws.com/dev/redshift/mcp/","--header","x-api-key: you api key of api gateway"]}}
}

Amazon Q 介紹

Amazon Q 是一款生成式人工智能助手,專為企業和開發者打造,能改變組織工作模式。它整合多方數據,以自然語言交互,覆蓋軟件開發、商業智能分析、客戶服務及供應鏈管理等領域,為員工提供專業功能,加速任務完成,深入洞察數據

  • 專業領域賦能:為軟件開發人員、商業智能分析師等不同崗位人員提供針對性功能。比如開發者版可助力編碼、測試、部署及故障排查等全流程任務;在商業智能方面,能讓業務分析師用自然語言快速構建 BI 儀表板
  • 安全隱私保障:嚴格遵循身份、角色和權限體系,用戶無法通過它訪問原本無權接觸的數據。其管理控件支持自定義授權,數據在傳輸和存儲時均加密,且不會利用企業數據訓練基礎模型,確保企業數據安全與隱私
  • 廣泛系統集成:內置超 40 個連接器,可連接如 Amazon S3、Salesforce、Google Drive 等常用企業應用和文檔存儲庫,還能為內部 Intranets 等構建自定義連接器,打破數據孤島,綜合各類信息為用戶提供服務

總結

本文圍繞 Amazon Q Developer + Remote MCP 訪問 Amazon Redshift 方案,構建了從本地開發到云端部署的完整數據交互體系。通過搭建 “本地 CLI - MCP Server - 云端數據庫” 鏈路,實現自然語言轉 SQL 執行的敏捷開發體驗;結合 Lambda Layer、VPC 配置及 API Gateway,完成 MCP Server 遠程化部署與內網安全訪問。方案以精簡架構提升數據操作效率,以安全配置保障鏈路可靠,為開發者提供了一套適配快速迭代需求的 Redshift 云端數據操作實踐指南。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/918860.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/918860.shtml
英文地址,請注明出處:http://en.pswp.cn/news/918860.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【SpringBoot】11 概念理解 - 深入理解 Java 和 Spring 中的容器、組件、類、對象與 Bean

文章目錄引言1. 基本概念解析1.1 類&#xff08;Class&#xff09;1.2 對象&#xff08;Object&#xff09;1.3 組件&#xff08;Component&#xff09;1.4 Bean 實例&#xff08;Bean Instance&#xff09;1.5 容器&#xff08;Container&#xff09;2. 運行時 vs. 非運行時的…

【學習嵌入式day-25-線程】

exec函數族exec函數族利用進程空間執行另一份代碼#include "../head.h"int main(void) {char *parg[5] {"./hello","how","are","you",NULL,};printf("execl-up\n");//execl("./hello", "./hello…

Rust 中 Box 的深度解析:作用、原理與最佳實踐

Rust 中 Box 的深度解析&#xff1a;作用、原理與最佳實踐 Box 是 Rust 中最基礎且最重要的智能指針類型&#xff0c;它在 Rust 的內存管理和所有權系統中扮演著核心角色。以下是關于 Box 的全面解析&#xff1a; Box 的核心作用 #mermaid-svg-m6liFZlmqOHRfIZB {font-family:&…

【測試用例】

需求背景部分金融/政企等行業客戶&#xff0c;企業內部安全要求較高&#xff0c;且因為某些原因未接入 sso 登錄&#xff0c;會要求 MG 提供較為復雜的密碼規則甚至提供強更機制&#xff1b;且每個客戶的安全要求不一樣目前 MG 線上密碼規則&#xff1a; 8 位以上&#xff0c;包…

Klipper-probe模塊

配置信息[probe] pin: !PD4 x_offset: 0 y_offset: 0 z_offset: -0.20 #the distance between nozzle and level switch speed: 10 samples: 2 #probe one point three times get an average samples_result: average sample_retract_dist: 5 samples_tolerance: 0.05 # …

Excel多級數據結構導入導出工具

Excel多級數據結構導入導出工具 這是一個功能強大的Excel導入導出工具庫&#xff0c;專門用于處理復雜的多級嵌套數據結構。通過自定義注解配置&#xff0c;可以輕松實現Java對象與Excel文件之間的雙向轉換。 核心功能特性 1. 多級數據結構支持 嵌套對象處理: 支持任意層級的對…

基于UniApp的新大陸物聯網平臺溫濕度檢測系統開發方案

新大陸物聯網平臺對接要點 認證方式&#xff1a; 使用AccessToken進行API認證 Token存儲在本地緩存中 數據格式&#xff1a; 溫度數據單位&#xff1a;攝氏度(C) 濕度數據單位&#xff1a;百分比(%) 時間格式&#xff1a;ISO 8601或時間戳 設備狀態&#xff1a; online:…

Git、JSON、MQTT

GIT簡介&#xff1a;Git是什么&#xff1f;Git是目前世界上最先進的分布式版本控制系統作用&#xff1a;版本控制&#xff08;版本的備份--->版本的回溯和前進&#xff09;多人協作優勢&#xff1a;SVN(集中式)劣勢&#xff1a;過度依賴服務器和網絡&#xff0c;容災性差Git…

yolo目標檢測技術之yolov11項目實戰(三)

yolo目標檢測技術之yolov11項目實戰&#xff08;三&#xff09; 文章目錄yolo目標檢測技術之yolov11項目實戰&#xff08;三&#xff09;一、 基于 YOLO11 的火焰與煙霧檢測系統&#xff08;實戰代碼&#xff09;項目目標環境搭建創建虛擬環境安裝依賴1.1 數據集準備1. 下載地址…

CF思維小訓練(二)

清晰的繽紛的都可以 臟兮兮的甜的也都有轉機 不想太小心 錯過第一百零一場美麗 CF思維小訓練&#xff08;二&#xff09; 書接上回CF思維小訓練-CSDN博客 雖然代碼很短&#xff0c;都是每一道題的背后都思維滿滿&#xff1b; 目錄CF思維小訓練&#xff08;二&#xff09;Arbo…

分布式鎖:從理論到實戰的深度指南

1. 分布式鎖是啥&#xff1f;為什么它比單機鎖更“硬核”&#xff1f;分布式鎖&#xff0c;聽起來高大上&#xff0c;其實核心問題很簡單&#xff1a;在多個機器、進程或服務同時搶奪資源時&#xff0c;怎么保證不打架&#xff1f; 想象一下&#xff0c;你在雙十一搶購限量款球…

基于UniApp的智能在線客服系統前端設計與實現

了解更多&#xff0c;搜索“程序員老狼”一、引言在當今數字化時代&#xff0c;客戶服務已成為企業競爭力的重要組成部分。本文將詳細介紹一款基于UniApp框架開發的跨平臺智能客服系統前端實現方案&#xff0c;該系統不僅具備傳統客服功能&#xff0c;還融入了現代即時通訊和人…

react與vue的對比,來實現標簽內部類似v-for循環,v-if等功能

前言&#xff1a;在vue中我們提供了很多標簽方法&#xff0c;比如用的比較多的v-for循環內容&#xff0c;v-if/v-show等判斷&#xff0c;可以直接寫在標簽中&#xff0c;大大提高了我們的開發效率&#xff0c;那么在react中有沒有類似的方法呢&#xff1f;我們這里來說一說。re…

PCB工藝-四層板制作流程(簡單了解下)

一&#xff09;流程&#xff1a;四層板的內層芯板&#xff0c;是由一張雙面覆銅板PP*2銅箔*2覆銅板蝕刻好線路&#xff0c;就是我們的芯板了PP全名叫半固化片&#xff0c;主體是玻璃纖維布環氧樹脂&#xff0c;是絕緣介質銅箔片&#xff0c;是單獨一張銅箔&#xff0c;很薄&…

無人機三維路徑規劃

文章目錄 1、引言 2、背景知識 3、核心算法 4、挑戰與優化 5、初始效果 6、需要改進地方 7、水平方向優化路線 8、垂直方向優化路線 9、與經過路線相交的網格都繪制出來 1、引言 介紹三維路徑規劃的定義和重要性:在無人機、機器人導航、虛擬現實等領域的應用。 概述文章目標和…

Spring-解決項目依賴異常問題

一.檢查項目的Maven路徑是否正確在確保新項目中的依賴在自己的電腦中已經存在的情況下&#xff1a;可以檢查項目的Maven路徑是否正確在拿到一個新項目時&#xff0c;要檢查這個項目的Maven路徑是自己電腦上設置好的Maven路徑嗎&#xff1f;如果不是&#xff0c;項目依賴會出問題…

系統設計——DDD領域模型驅動實踐

摘要本文主要介紹了DDD&#xff08;領域驅動設計&#xff09;在系統設計中的實踐應用&#xff0c;包括其在編碼規范、分層架構設計等方面的具體要求和建議。重點強調了應用層的命名規范&#xff0c;如避免使用模糊的Handler、Processor等命名&#xff0c;推薦使用動詞加業務動作…

開源衛星軟件平臺LibreCube技術深度解析

LibreCube技術深度解析&#xff1a;開源衛星軟件平臺的完整指南 LibreCube是一個專為CubeSat設計的模塊化開源衛星軟件平臺&#xff0c;它通過整合姿態控制、通信管理和任務調度等核心功能&#xff0c;為立方星開發者提供了完整的解決方案。本文將全面剖析LibreCube的技術架構…

React(四):事件總線、setState的細節、PureComponent、ref

React(四) 一、事件總線 二、關于setState的原理 1. setState的三種使用方式 (1)基本使用 (2)傳入一個回調 (3)第一個參數是對象,第二個參數是回調 2. 為什么setState要設置成異步 (1)提升性能,減少render次數 (2)避免state和props數據不同步 3. 獲取異步修改完數…

CPUcores-【硬核優化】CPU增強解鎖全部內核!可優化游戲性能、提升幀數!啟用CPU全內核+超線程,以更高優先級運行游戲!支持各種游戲和應用優化~

軟件介紹&#xff08;文末獲取&#xff09;CPUCores&#xff1a;游戲性能優化利器?這款工具&#xff0c;專為優化提升中低配電腦的幀數而生。其獨創的CPU資源調度技術&#xff0c;能讓老舊硬件煥發新生核心技術原理?采用「內核級隔離」方案&#xff0c;通過&#xff1a;系統進…