選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

搭配 Aurora My 使用 Amazon Aurora 機器學習SQL - Amazon Aurora

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

搭配 Aurora My 使用 Amazon Aurora 機器學習SQL

透過搭配 Aurora MySQL 資料庫叢集使用 Amazon Aurora 機器學習,您可以根據您的需求使用 Amazon Bedrock、Amazon Comprehend 或 Amazon SageMaker AI。它們各自支援不同的機器學習使用案例。

搭配 Aurora My 使用 Aurora 機器學習的要求SQL

AWS 機器學習服務是在自己的生產環境中設定和執行的受管服務。Aurora Machine Learning 支援與 Amazon Bedrock、Amazon Comprehend 和 SageMaker AI 整合。在嘗試設定 Aurora MySQL 資料庫叢集以使用 Aurora 機器學習之前,請務必了解下列要求和先決條件。

  • 機器學習服務必須在與您的 Aurora MySQL 資料庫叢集 AWS 區域 相同的 中執行。您無法在不同區域中使用來自 Aurora MySQL 資料庫叢集的機器學習服務。

  • 如果您的 Aurora MySQL 資料庫叢集位於與 Amazon Bedrock、Amazon Comprehend 或 SageMaker AI 服務不同的虛擬公有雲端 (VPC) 中,則 VPC的安全群組需要允許與目標 Aurora Machine Learning 服務的傳出連線。如需詳細資訊,請參閱《Amazon VPC使用者指南》中的使用安全群組控制資源 AWS 的流量

  • 如果您想要搭配該叢集使用 Aurora Machine Learning,您可以將執行較低版本 Aurora MySQL 的 Aurora 叢集升級至支援的較高版本。如需詳細資訊,請參閱Amazon Aurora 我的數據庫引擎更新 SQL

  • 您的 Aurora MySQL 資料庫叢集必須使用自訂資料庫叢集參數群組。在您要使用的每個 Aurora Machine Learning 服務的設定程序結束時,您可以新增為服務建立之關聯IAM角色的 Amazon Resource Name (ARN)。我們建議您預先為 Aurora MySQL 建立自訂資料庫叢集參數群組,並將 Aurora MySQL 資料庫叢集設定為使用它,以便在設定程序結束時準備好進行修改。

  • 對於 SageMaker AI:

    • 您要用於推論的機器學習元件必須設定並準備好使用。在 Aurora MySQL 資料庫叢集的組態程序期間,請務必備妥 SageMaker AI 端點ARN的 。您團隊中的資料科學家可能最能夠處理使用 SageMaker AI 的作業,以準備模型並處理其他這類任務。若要開始使用 Amazon SageMaker AI,請參閱開始使用 Amazon SageMaker AI。如需推論和端點的詳細資訊,請參閱即時推論

    • 若要將 SageMaker AI 與您自己的訓練資料搭配使用,您必須將 Amazon S3 儲存貯體設定為 Aurora 機器學習的 Aurora MySQL 組態的一部分。若要這樣做,請遵循與設定 SageMaker AI 整合相同的一般程序。如需此選用設定程序的摘要,請參閱 將 Aurora MySQL 資料庫叢集設定為使用 Amazon S3 for SageMaker AI (選用)

  • 對於 Aurora 全域資料庫,您可以設定要在 AWS 區域 組成 Aurora 全域資料庫的所有 中使用的 Aurora 機器學習服務。例如,如果您想要針對 Aurora 全域資料庫使用 Aurora Machine Learning 搭配 SageMaker AI,請針對每個 Aurora MySQL 資料庫叢集執行下列動作 AWS 區域:

    • 使用相同的 SageMaker AI 訓練模型和端點設定 Amazon SageMaker AI 服務。這些也必須使用相同的名稱。

    • 建立IAM角色,如 中所述設定 Aurora MySQL 資料庫叢集以使用 Aurora 機器學習

    • 將IAM角色ARN的 新增至每個 中每個 Aurora MySQL 資料庫叢集的自訂資料庫叢集參數群組 AWS 區域。

    這些任務需要 Aurora Machine Learning 可用於組成 Aurora 全域資料庫的所有 中的 Aurora MySQL AWS 區域 版本。

區域和版本可用性

功能可用性和支援會因每個 Aurora 資料庫引擎的特定版本以及 AWS 區域而有所不同。

  • 如需 Amazon Comprehend 和 Amazon SageMaker AI with Aurora My 的版本和區域可用性資訊SQL,請參閱 使用 Aurora My 進行 Aurora 機器學習SQL

  • Amazon Bedrock 僅支援 Aurora MySQL 3.06 版和更新版本。

    如需 Amazon Bedrock 區域可用性的詳細資訊,請參閱《Amazon Bedrock 使用者指南》中的 模型支援 AWS 區域

使用 Aurora My 的 Aurora 機器學習支援的特徵和限制SQL

將 Aurora MySQL 與 Aurora Machine Learning 搭配使用時,適用下列限制:

  • Aurora Machine Learning 延伸模組不支援向量界面。

  • 在觸發條件中使用時,不支援 Aurora 機器學習整合。

  • Aurora Machine Learning 函數與二進位記錄 (binlog) 複寫不相容。

    • 對於 Aurora Machine Learning 函數的呼叫,設定 --binlog-format=STATEMENT 會擲出例外狀況。

    • Aurora Machine Learning 函數是非確定性函數,而且非確定性預存函數與 binlog 格式不相容。

    如需詳細資訊,請參閱我的SQL文件中的二進位記錄格式

  • 不支援呼叫具有一律產生的資料行之資料欄的預存函數。這適用於任何 Aurora MySQL 預存函數。若要進一步了解此資料欄類型,請參閱我的SQL文件中CREATE的 TABLE和 產生的資料欄

  • Amazon Bedrock 函數不支援 RETURNS JSONJSON 如有需要,您可以使用 CAST CONVERT或 從 TEXT 轉換為 。

  • Amazon Bedrock 不支援批次請求。

  • Aurora MySQL 支援透過 ContentType的 讀取和寫入逗號分隔值 (CSV) 格式的任何 SageMaker AI 端點text/csv。下列內建 SageMaker AI 演算法接受此格式:

    • Linear Learner

    • Random Cut Forest

    • XGBoost

    若要進一步了解這些演算法,請參閱《Amazon SageMaker AI 開發人員指南》中的選擇演算法

設定 Aurora MySQL 資料庫叢集以使用 Aurora 機器學習

在下列主題中,您可以找到其中每個 Aurora Machine Learning 服務的個別設定程序。

設定 Aurora MySQL 資料庫叢集以使用 Amazon Bedrock

Aurora Machine Learning 依賴 AWS Identity and Access Management (IAM) 角色和政策,以允許 Aurora MySQL 資料庫叢集存取和使用 Amazon Bedrock 服務。下列程序會建立IAM許可政策和角色,讓您的資料庫叢集可以與 Amazon Bedrock 整合。

建立 IAM 政策
  1. 登入 AWS Management Console 並在 開啟IAM主控台https://console.aws.amazon.com/iam/

  2. 在導覽窗格中選擇政策

  3. 選擇 Create a policy (建立政策)

  4. 指定許可頁面上,針對選取服務,選擇 Bedrock

    Amazon Bedrock 許可隨即顯示。

  5. 展開讀取,然後選取 InvokeModel

  6. 針對資源,選取全部

    指定許可頁面應類似於下圖。

    InvokeModel 操作的 Amazon Bedrock IAM許可政策。
  7. 選擇 Next (下一步)

  8. 檢閱和建立頁面上,輸入政策的名稱,例如 BedrockInvokeModel

  9. 檢閱您的政策,然後選擇建立政策

接著,您建立使用 Amazon Bedrock 許可政策IAM的角色。

建立 IAM 角色
  1. 登入 AWS Management Console 並在 開啟IAM主控台https://console.aws.amazon.com/iam/

  2. 在導覽窗格中,選擇 Roles (角色)

  3. 選擇建立角色

  4. 選取信任的實體頁面上,針對使用案例,選擇 RDS

  5. 選取 RDS - 將角色新增至資料庫,然後選擇下一步

  6. 新增許可頁面上,針對許可政策,選取您建立IAM的政策,然後選擇下一步

  7. 名稱、檢閱和建立頁面上,輸入角色的名稱,例如 ams-bedrock-invoke-model-role

    角色應類似於下圖。

    InvokeModel 操作的 Amazon Bedrock IAM角色。
  8. 檢閱您的角色,然後選擇建立角色

接下來,您將 Amazon Bedrock IAM角色與資料庫叢集建立關聯。

將IAM角色與您的資料庫叢集建立關聯
  1. 登入 AWS Management Console ,並在 開啟 Amazon RDS主控台https://console.aws.amazon.com/rds/

  2. 在導覽窗格中,選擇 Databases (資料庫)。

  3. 選擇您要連線至 Amazon Bedrock 服務的 Aurora MySQL 資料庫叢集。

  4. 選擇 Connectivity & security (連線和安全) 索引標籤。

  5. 針對管理IAM角色區段,選擇選取IAM以新增至此叢集

  6. 選擇您建立IAM的 ,然後選擇新增角色

    IAM 角色會與您的資料庫叢集建立關聯,首先是 狀態待定,然後是作用中。程序完成時,您可以在此叢集清單的目前IAM角色中找到角色。

    IAM 與您的資料庫叢集相關聯的 角色。

您必須將此IAM角色ARN的 新增至與您的 Aurora MySQL 資料庫叢集相關聯的自訂資料庫叢集參數群組aws_default_bedrock_role參數。如果您的 Aurora MySQL 資料庫叢集未使用自訂資料庫叢集參數群組,則需要建立一個 來與 Aurora MySQL 資料庫叢集搭配使用,以完成整合。如需詳細資訊,請參閱Amazon Aurora 資料庫叢集的資料庫叢集參數群組

設定資料庫叢集參數
  1. 在 Amazon RDS主控台中,開啟 Aurora MySQL 資料庫叢集的組態索引標籤。

  2. 尋找為您的叢集設定的資料庫叢集參數群組。選擇連結以開啟自訂資料庫叢集參數群組,然後選擇編輯

  3. 在您的自訂資料庫叢集參數群組中尋找 aws_default_bedrock_role 參數。

  4. 欄位中,輸入IAM角色ARN的 。

  5. 選擇儲存變更來儲存設定。

  6. 重新啟動 Aurora MySQL 資料庫叢集的主要執行個體,讓此參數設定生效。

Amazon Bedrock 的IAM整合已完成。繼續設定您的 Aurora MySQL 資料庫叢集,以透過 使用 Amazon Bedrock授與資料庫使用者存取 Aurora Machine Learning 的權限

設定 Aurora MySQL 資料庫叢集以使用 Amazon Comprehend

Aurora Machine Learning 倚賴 AWS Identity and Access Management 角色和政策,讓您的 Aurora MySQL 資料庫叢集存取和使用 Amazon Comprehend 服務。下列程序會自動為您的叢集建立IAM角色和政策,以便可以使用 Amazon Comprehend。

設定 Aurora MySQL 資料庫叢集以使用 Amazon Comprehend
  1. 登入 AWS Management Console 並在 開啟 Amazon RDS主控台https://console.aws.amazon.com/rds/

  2. 在導覽窗格中,選擇 Databases (資料庫)。

  3. 選擇您要連線至 Amazon Comprehend 服務的 Aurora MySQL 資料庫叢集。

  4. 選擇 Connectivity & security (連線和安全) 索引標籤。

  5. 管理IAM角色區段中,選擇選取要連線至此叢集的服務

  6. 從功能表中選擇 Amazon Comprehend,然後選擇 Connect 服務

    顯示為 Aurora MySQL 資料庫叢集選擇的 Amazon Comprehend 的圖片。
  7. Connect cluster to Amazon Comprehend (將叢集連線到 Amazon Comprehend) 對話方塊不需要任何其他資訊。不過,您可能會看到一則訊息,通知您 Aurora 與 Amazon Comprehend 之間的整合目前處於預覽狀態。請務必先閱讀訊息,然後再繼續。如果您不想繼續,可以選擇取消

  8. 選擇 Connect service (連線服務) 以完成整合程序。

    Aurora 會建立IAM角色。它也會建立允許 Aurora MySQL 資料庫叢集使用 Amazon Comprehend 服務並將政策連接至角色的政策。程序完成時,您可以在此叢集清單的目前IAM角色中找到角色,如下圖所示。

    已完成將 Amazon Comprehend 與 Aurora MySQL 搭配使用的IAM整合,其中顯示 Active 角色。

    您需要將此IAM角色ARN的 新增至與您的 Aurora MySQL 資料庫叢集相關聯的自訂資料庫叢集參數群組的 aws_default_comprehend_role 參數。如果您的 Aurora MySQL 資料庫叢集未使用自訂資料庫叢集參數群組,則需要建立一個 來與 Aurora MySQL 資料庫叢集搭配使用,以完成整合。如需詳細資訊,請參閱Amazon Aurora 資料庫叢集的資料庫叢集參數群組

    在建立自訂資料庫叢集參數群組並將其與 Aurora MySQL 資料庫叢集建立關聯之後,您可以繼續執行下列步驟。

    如果您的叢集使用自訂資料庫叢集參數群組,請執行如下操作。

    1. 在 Amazon RDS主控台中,開啟 Aurora MySQL 資料庫叢集的組態索引標籤。

    2. 尋找為您的叢集設定的資料庫叢集參數群組。選擇連結以開啟您的自訂資料庫叢集參數群組,然後選擇編輯

    3. 在您的自訂資料庫叢集參數群組中尋找 aws_default_comprehend_role 參數。

    4. 欄位中,輸入IAM角色ARN的 。

    5. 選擇 Save Changes (儲存變更) 來儲存設定。在下圖中,您可以找到一個範例。

      將IAM角色ARN的 新增至 Aurora My SQL的自訂資料庫叢集參數群組。

    重新啟動 Aurora MySQL 資料庫叢集的主要執行個體,讓此參數設定生效。

Amazon Comprehend 的IAM整合已完成。繼續設定您的 Aurora MySQL 資料庫叢集以使用 Amazon Comprehend,方法是將存取權授予適當的資料庫使用者。

設定 Aurora MySQL 資料庫叢集以使用 SageMaker AI

下列程序會自動為您的 Aurora MySQL 資料庫叢集建立IAM角色和政策,使其可以使用 SageMaker AI。在嘗試遵循此程序之前,請確定您擁有可用的 SageMaker AI 端點,以便在需要時輸入。一般而言,您團隊中的資料科學家會執行工作,以產生您可以從 Aurora MySQL 資料庫叢集使用的端點。您可以在 SageMaker AI 主控台中找到這類端點。在導覽窗格中,開啟 Inference (推論) 功能表,然後選擇 Endpoints (端點)。在下圖中,您可以找到一個範例。

顯示為 Aurora MySQL 資料庫叢集選擇 SageMaker AI 的圖片。
設定 Aurora MySQL 資料庫叢集以使用 SageMaker AI
  1. 登入 AWS Management Console ,並在 開啟 Amazon RDS主控台https://console.aws.amazon.com/rds/

  2. 從 Amazon RDS導覽功能表中選擇資料庫,然後選擇您要連線至 SageMaker AI 服務的 Aurora MySQL 資料庫叢集。

  3. 選擇 Connectivity & security (連線和安全) 索引標籤。

  4. 捲動至管理IAM角色區段,然後選擇選取要連線至此叢集的服務。從選擇器中選擇 SageMaker AI

    顯示為 Aurora MySQL 資料庫叢集選擇 SageMaker AI 的圖片。
  5. 選擇 Connect service (連線服務)

  6. 將叢集連線至 SageMaker AI 對話方塊中,輸入 SageMaker AI 端點ARN的 。

    顯示組態程序期間輸入之 SageMaker AI 端點的 Amazon Resource Name (ARN) 的圖片。
  7. Aurora 會建立IAM角色。它也會建立允許 Aurora MySQL 資料庫叢集使用 SageMaker AI 服務並將政策連接至角色的政策。程序完成時,您可以在此叢集清單的目前IAM角色中找到角色。

  8. 開啟位於 IAM 的 https://console.aws.amazon.com/iam/ 主控台。

  9. 從 AWS Identity and Access Management 導覽功能表的 Access management (存取管理) 區段中選擇 Roles (角色)。

  10. 在列出的角色之中尋找該角色。它的名稱會使用以下模式。

    rds-sagemaker-your-cluster-name-role-auto-generated-digits
  11. 開啟角色的摘要頁面,並找到 ARN。記下 ARN或使用複製小工具複製它。

  12. 在 開啟 Amazon RDS主控台https://console.aws.amazon.com/rds/

  13. 選擇您的 Aurora MySQL 資料庫叢集,然後選擇其組態索引標籤。

  14. 找出資料庫叢集參數群組,然後選擇連結來開啟您的自訂資料庫叢集參數群組。尋找 aws_default_sagemaker_role 參數,然後在值欄位中輸入IAM角色ARN的 ,然後儲存設定。

  15. 重新啟動 Aurora MySQL 資料庫叢集的主要執行個體,讓此參數設定生效。

IAM 設定現在已完成。繼續設定您的 Aurora MySQL 資料庫叢集以使用 SageMaker AI,方法是將存取權授予適當的資料庫使用者。

如果您想要使用 SageMaker AI 模型進行訓練,而不是使用預先建置的 SageMaker AI 元件,您也需要在 Aurora MySQL 資料庫叢集中新增 Amazon S3 儲存貯體,如將 Aurora MySQL 資料庫叢集設定為使用 Amazon S3 for SageMaker AI (選用)以下所述。

將 Aurora MySQL 資料庫叢集設定為使用 Amazon S3 for SageMaker AI (選用)

若要將 SageMaker AI 與您自己的模型搭配使用,而不是使用 SageMaker AI 提供的預先建置元件,您需要設定 Amazon S3 儲存貯體,以便讓 Aurora MySQL 資料庫叢集使用。如需有關建立 Amazon S3 儲存貯體的詳細資訊,請參閱 Amazon Simple Storage Service 使用者指南中的建立儲存貯體

設定 Aurora MySQL 資料庫叢集以使用 Amazon S3 儲存貯體進行 SageMaker AI
  1. 登入 AWS Management Console 並在 開啟 Amazon RDS主控台https://console.aws.amazon.com/rds/

  2. 從 Amazon RDS導覽功能表中選擇資料庫,然後選擇您要連線至 SageMaker AI 服務的 Aurora MySQL 資料庫叢集。

  3. 選擇 Connectivity & security (連線和安全) 索引標籤。

  4. 捲動至管理IAM角色區段,然後選擇選取要連線至此叢集的服務。從選擇器中選擇 Amazon S3

    選擇 Amazon S3 做為與 Aurora MySQL 資料庫叢集整合的服務。
  5. 選擇 Connect service (連線服務)

  6. 將叢集連線至 Amazon S3 對話方塊中,輸入 Amazon S3 儲存貯體ARN的 ,如下圖所示。

    為 Aurora MySQL 資料庫叢集指定的 ARN Amazon S3 儲存貯體的影像。
  7. 選擇 Connect service (連線服務) 以完成此程序。

如需將 Amazon S3 儲存貯體與 SageMaker AI 搭配使用的詳細資訊,請參閱《Amazon AI 開發人員指南》中的指定 Amazon S3 儲存貯體以上傳訓練資料集和儲存輸出資料 SageMaker 若要進一步了解如何使用 SageMaker AI,請參閱《Amazon SageMaker AI 開發人員指南》中的開始使用 Amazon AI 筆記本執行個體 SageMaker

授與資料庫使用者存取 Aurora Machine Learning 的權限

必須授予資料庫使用者呼叫 Aurora Machine Learning 函數的許可。您授予許可的方式取決於您用於 Aurora MySQL 資料庫叢集的 MySQL 版本,如下所述。這樣做的方式取決於 Aurora MySQL 資料庫叢集使用的 MySQL 版本。

  • 對於 Aurora MySQL 第 3 版 (與 MySQL 8.0 相容),必須授予資料庫使用者適當的資料庫角色。如需詳細資訊,請參閱 MySQL 8.0 參考手冊中的使用角色

  • 對於 Aurora MySQL 第 2 版 (與 MySQL 5.7 相容),會授予資料庫使用者權限。如需詳細資訊,請參閱 MySQL 5.7 參考手冊中的存取控制和帳戶管理

下表顯示資料庫使用者使用機器學習函數所需的角色和權限。

Aurora MySQL 第 3 版 (角色) Aurora MySQL 第 2 版 (權限)

AWS_BEDROCK_ACCESS

AWS_COMPREHEND_ACCESS

INVOKE COMPREHEND

AWS_SAGEMAKER_ACCESS

INVOKE SAGEMAKER

授予 Amazon Bedrock 函數的存取權

若要讓資料庫使用者存取 Amazon Bedrock 函數,請使用下列SQL陳述式:

GRANT AWS_BEDROCK_ACCESS TO user@domain-or-ip-address;

您為使用 Amazon Bedrock 而建立的函數也需要授予資料庫使用者EXECUTE許可:

GRANT EXECUTE ON FUNCTION database_name.function_name TO user@domain-or-ip-address;

最後,資料庫使用者的角色必須設為 AWS_BEDROCK_ACCESS

SET ROLE AWS_BEDROCK_ACCESS;

Amazon Bedrock 函數現在可供使用。

授與 Amazon Comprehend 函數的存取權

若要讓資料庫使用者存取 Amazon Comprehend 函數,請使用適用於 Aurora MySQL 版本的陳述式。

  • Aurora MySQL 第 3 版 (與 MySQL 8.0 相容)

    GRANT AWS_COMPREHEND_ACCESS TO user@domain-or-ip-address;
  • Aurora MySQL 第 2 版 (與 MySQL 5.7 相容)

    GRANT INVOKE COMPREHEND ON *.* TO user@domain-or-ip-address;

Amazon Comprehend 函數現在可供使用。如需使用範例,請參閱 搭配 Aurora MySQL 資料庫叢集使用 Amazon Comprehend

授予對 SageMaker AI 函數的存取權

若要讓資料庫使用者存取 SageMaker AI 函數,請使用適用於 Aurora MySQL 版本的陳述式。

  • Aurora MySQL 第 3 版 (與 MySQL 8.0 相容)

    GRANT AWS_SAGEMAKER_ACCESS TO user@domain-or-ip-address;
  • Aurora MySQL 第 2 版 (與 MySQL 5.7 相容)

    GRANT INVOKE SAGEMAKER ON *.* TO user@domain-or-ip-address;

資料庫使用者也需要獲得您為使用 SageMaker AI 所建立函數的EXECUTE許可。假設您建立了兩個函數 db1.anomoly_scoredb2.company_forecasts,以叫用 SageMaker AI 端點的服務。您可以授予執行權限,如下列範例所示。

GRANT EXECUTE ON FUNCTION db1.anomaly_score TO user1@domain-or-ip-address1; GRANT EXECUTE ON FUNCTION db2.company_forecasts TO user2@domain-or-ip-address2;

SageMaker AI 函數現在可供使用。如需使用範例,請參閱 搭配 Aurora MySQL 資料庫叢集使用 SageMaker AI

搭配 Aurora MySQL 資料庫叢集使用 Amazon Bedrock

若要使用 Amazon Bedrock,您可以在叫用模型的 Aurora MySQL 資料庫中建立使用者定義的函數 (UDF)。如需詳細資訊,請參閱《Amazon Bedrock 使用者指南》中的 Amazon Bedrock 中支援的模型

UDF 使用以下語法:

CREATE FUNCTION function_name (argument type) [DEFINER = user] RETURNS mysql_data_type [SQL SECURITY {DEFINER | INVOKER}] ALIAS AWS_BEDROCK_INVOKE_MODEL MODEL ID 'model_id' [CONTENT_TYPE 'content_type'] [ACCEPT 'content_type'] [TIMEOUT_MS timeout_in_milliseconds];
  • Amazon Bedrock 函數不支援 RETURNS JSONJSON 如有需要CAST,您可以使用 CONVERT或 從 TEXT 轉換為 。

  • 如果您未指定 CONTENT_TYPEACCEPT,則預設為 application/json

  • 如果您未指定 TIMEOUT_MSaurora_ml_inference_timeout則會使用 的值。

例如,下列 UDF會叫用 Amazon Titan Text Express 模型:

CREATE FUNCTION invoke_titan (request_body TEXT) RETURNS TEXT ALIAS AWS_BEDROCK_INVOKE_MODEL MODEL ID 'amazon.titan-text-express-v1' CONTENT_TYPE 'application/json' ACCEPT 'application/json';

若要允許資料庫使用者使用此函數,請使用下列SQL命令:

GRANT EXECUTE ON FUNCTION database_name.invoke_titan TO user@domain-or-ip-address;

然後,使用者可以像任何其他 函數invoke_titan一樣呼叫 ,如下列範例所示。請務必根據 Amazon Titan 文字模型格式化請求內文。

CREATE TABLE prompts (request varchar(1024)); INSERT INTO prompts VALUES ( '{ "inputText": "Generate synthetic data for daily product sales in various categories - include row number, product name, category, date of sale and price. Produce output in JSON format. Count records and ensure there are no more than 5.", "textGenerationConfig": { "maxTokenCount": 1024, "stopSequences": [], "temperature":0, "topP":1 } }'); SELECT invoke_titan(request) FROM prompts; {"inputTextTokenCount":44,"results":[{"tokenCount":296,"outputText":" ```tabular-data-json { "rows": [ { "Row Number": "1", "Product Name": "T-Shirt", "Category": "Clothing", "Date of Sale": "2024-01-01", "Price": "$20" }, { "Row Number": "2", "Product Name": "Jeans", "Category": "Clothing", "Date of Sale": "2024-01-02", "Price": "$30" }, { "Row Number": "3", "Product Name": "Hat", "Category": "Accessories", "Date of Sale": "2024-01-03", "Price": "$15" }, { "Row Number": "4", "Product Name": "Watch", "Category": "Accessories", "Date of Sale": "2024-01-04", "Price": "$40" }, { "Row Number": "5", "Product Name": "Phone Case", "Category": "Accessories", "Date of Sale": "2024-01-05", "Price": "$25" } ] } ```","completionReason":"FINISH"}]}

對於您使用的其他模型,請務必為它們適當地格式化請求內文。如需詳細資訊,請參閱《Amazon Bedrock 使用者指南》中的基礎模型推論參數

搭配 Aurora MySQL 資料庫叢集使用 Amazon Comprehend

對於 Aurora MySQL,Aurora Machine Learning 提供以下兩個內建函數,用於使用 Amazon Comprehend 和您的文字資料。您會提供要分析的文字 (input_data) 並指定語言 (language_code)。

aws_comprehend_detect_sentiment

此函數會將文字識別為具有正面、負面、中性或混合的情緒狀態。此函數的參考文件如下。

aws_comprehend_detect_sentiment( input_text, language_code [,max_batch_size] )

若要進一步了解,請參閱《Amazon 開發人員指南》中的情緒

aws_comprehend_detect_sentiment_confidence

此函數會測量針對指定文字偵測到之情緒的信賴等級。它會傳回一值 (類型 double),指出由 aws_comprehend_detect_sentiment 函數指派給文字的情緒信賴度。信賴度是介於 0 和 1 之間的統計指標。信賴等級越高,您可以給與結果的權重就越多。函數文件的摘要如下。

aws_comprehend_detect_sentiment_confidence( input_text, language_code [,max_batch_size] )

在這兩個函數 (aws_comprehend_detect_sentiment_confidence、aws_comprehend_detect_sentiment) 中,max_batch_size 會使用預設值 25,如果未指定任何值的話。批次大小應該始終大於 0。您可以使用 max_batch_size 來調整 Amazon Comprehend 函數呼叫的效能。大型批次會犧牲更快的效能,以在 Aurora MySQL 資料庫叢集上增加記憶體用量。如需詳細資訊,請參閱搭配 Aurora My 使用 Aurora 機器學習的效能考量SQL

如需 Amazon Comprehend 中情緒偵測函數之參數和傳回類型的詳細資訊,請參閱 DetectSentiment

範例:使用 Amazon Comprehend 的簡單查詢

以下是簡單查詢的範例,該查詢會叫用這兩個函數,以查看您的客戶對支援團隊的滿意程度。假設您有一個資料庫資料表 (support),其會在每次請求協助之後存放客戶意見回饋。這個範例查詢會將兩個內建函數套用至資料表的 feedback 資料欄中的文字,並輸出結果。函數傳回的信賴度值為介於 0.0 和 1.0 之間的倍準數。為了獲得更易讀取的輸出,此查詢將結果四捨五入為 6 個小數點。為了更輕鬆地進行比較,這個查詢也會先從具有最高信賴度的結果中,以遞減順序排序結果。

SELECT feedback AS 'Customer feedback', aws_comprehend_detect_sentiment(feedback, 'en') AS Sentiment, ROUND(aws_comprehend_detect_sentiment_confidence(feedback, 'en'), 6) AS Confidence FROM support ORDER BY Confidence DESC; +----------------------------------------------------------+-----------+------------+ | Customer feedback | Sentiment | Confidence | +----------------------------------------------------------+-----------+------------+ | Thank you for the excellent customer support! | POSITIVE | 0.999771 | | The latest version of this product stinks! | NEGATIVE | 0.999184 | | Your support team is just awesome! I am blown away. | POSITIVE | 0.997774 | | Your product is too complex, but your support is great. | MIXED | 0.957958 | | Your support tech helped me in fifteen minutes. | POSITIVE | 0.949491 | | My problem was never resolved! | NEGATIVE | 0.920644 | | When will the new version of this product be released? | NEUTRAL | 0.902706 | | I cannot stand that chatbot. | NEGATIVE | 0.895219 | | Your support tech talked down to me. | NEGATIVE | 0.868598 | | It took me way too long to get a real person. | NEGATIVE | 0.481805 | +----------------------------------------------------------+-----------+------------+ 10 rows in set (0.1898 sec)
範例:判斷文字高於特定信賴等級的平均情緒

一般 Amazon Comprehend 查詢尋找情緒等於特定值且信心水準大於特定數字的列。例如,下列查詢顯示如何判斷資料庫中文件的平均情緒。此查詢只考量評估信心至少達 80% 的文件。

SELECT AVG(CASE aws_comprehend_detect_sentiment(productTable.document, 'en') WHEN 'POSITIVE' THEN 1.0 WHEN 'NEGATIVE' THEN -1.0 ELSE 0.0 END) AS avg_sentiment, COUNT(*) AS total FROM productTable WHERE productTable.productCode = 1302 AND aws_comprehend_detect_sentiment_confidence(productTable.document, 'en') >= 0.80;

搭配 Aurora MySQL 資料庫叢集使用 SageMaker AI

若要從 Aurora MySQL 資料庫叢集使用 SageMaker AI 功能,您需要建立儲存的函數,將呼叫內嵌至 SageMaker AI 端點及其推論功能。使用 My SQL的 來進行此作業CREATE FUNCTION,方式通常與在 Aurora MySQL 資料庫叢集上處理其他任務的方式相同。

若要使用 SageMaker AI 中部署的模型進行推論,您可以使用我的SQL資料定義語言 (DDL) 陳述式來建立使用者定義的函數。每個儲存的函數代表託管模型的 SageMaker AI 端點。當您定義這類函數時,您可以指定模型的輸入參數、要叫用的特定 SageMaker AI 端點,以及傳回類型。函數會在將模型套用至輸入參數後,傳回 SageMaker AI 端點計算的推論。

所有 Aurora Machine Learning 預存函數傳回數值類型或 VARCHAR。您可以使用 BIT 除外的任何數值類型。不允許其他類型,例如 JSONBLOBTEXTDATE

下列範例顯示使用 SageMaker AI CREATE FUNCTION 的語法。

CREATE FUNCTION function_name ( arg1 type1, arg2 type2, ...) [DEFINER = user] RETURNS mysql_type [SQL SECURITY { DEFINER | INVOKER } ] ALIAS AWS_SAGEMAKER_INVOKE_ENDPOINT ENDPOINT NAME 'endpoint_name' [MAX_BATCH_SIZE max_batch_size];

這是一般CREATE FUNCTIONDDL陳述式的延伸。在定義 SageMaker AI 函數的 CREATE FUNCTION陳述式中,您不會指定函數內文。反之,在通常出現函數主體的地方,您指定關鍵字 ALIAS。目前,對於此延伸語法,Aurora Machine Learning 僅支援 aws_sagemaker_invoke_endpoint。您必須指定 endpoint_name 參數。 SageMaker AI 端點對於每個模型都有不同的特性。

注意

如需 的詳細資訊CREATE FUNCTION,請參閱 MySQL 8.0 參考手冊中的 CREATEPROCEDURE和 CREATEFUNCTION陳述式。

max_batch_size 為選用參數。根據預設,批次大小上限為 10,000。您可以在函數中使用此參數,限制批次處理 AI 請求中處理的輸入數量上限 SageMaker 。max_batch_size 參數有助於避免因輸入太大而造成的錯誤,或讓 SageMaker AI 更快傳回回應。此參數會影響用於 SageMaker AI 請求處理的內部緩衝區大小。指定太大的 max_batch_size 值可能造成資料庫執行個體耗用大量記憶體。

建議將 MANIFEST 設定保留為預設值 OFF。雖然您可以使用 MANIFEST ON選項,但某些 SageMaker AI 功能無法直接使用CSV匯出的 與此選項。資訊清單格式與 SageMaker AI 預期的資訊清單格式不相容。

您可以為每個 SageMaker AI 模型建立個別的預存函數。因為端點與特定模型相關聯,而且每個模型接受的參數不同,函數至模型的這種對應有其必要。針對模型輸入和模型輸出類型使用 SQL 類型,有助於避免在 AWS 服務之間來回傳遞資料的類型轉換錯誤。您可以控制誰可以套用模型。您也可以指定參數來代表批次大小上限,以控制執行時間特性。

目前,所有 Aurora Machine Learning 函數都有 NOT DETERMINISTIC 屬性。如果您不明確指定屬性,Aurora 會自動設定 NOT DETERMINISTIC。此要求是因為 SageMaker AI 模型可以在不通知資料庫的情況下變更。如果發生此狀況,在單一交易內呼叫 Aurora Machine Learning 函數時,即使是相同輸入,也可能傳回不同結果。

CONTAINS SQL 陳述式中,您不能使用特性 NO SQLREADS SQL DATAMODIFIES SQL DATACREATE FUNCTION

以下是叫用 SageMaker AI 端點以偵測異常的範例用量。有一個 SageMaker AI 端點 random-cut-forest-model。對應的模型已由 random-cut-forest 演算法訓練。對於每個輸入,模型傳回異常分數。此範例顯示資料點的分數比平均分數還大 3 個標準差 (大約第 99.9 百分位數)。

CREATE FUNCTION anomaly_score(value real) returns real alias aws_sagemaker_invoke_endpoint endpoint name 'random-cut-forest-model-demo'; set @score_cutoff = (select avg(anomaly_score(value)) + 3 * std(anomaly_score(value)) from nyc_taxi); select *, anomaly_detection(value) score from nyc_taxi where anomaly_detection(value) > @score_cutoff;

傳回字串之 SageMaker AI 函數的字元集需求

建議您指定 的字元集utf8mb4做為傳回字串值的 SageMaker AI 函數傳回類型。如果這不切實際,請對傳回類型使用夠大的字串長度,以保存 utf8mb4 字元集所代表的值。下列範例顯示如何為函數宣告 utf8mb4 字元集。

CREATE FUNCTION my_ml_func(...) RETURNS VARCHAR(5) CHARSET utf8mb4 ALIAS ...

目前,每個傳回字串的 SageMaker AI 函數都會使用傳回值utf8mb4的字元集。即使您的 SageMaker AI 函數隱含或明確地為其傳回類型宣告不同的字元集,傳回值也會使用此字元集。如果您的 SageMaker AI 函數為傳回值宣告不同的字元集,則如果將傳回的資料存放在長度不夠長的資料表欄中,則可能會以無提示方式截斷傳回的資料。例如,搭配 DISTINCT 子句的查詢會導致建立臨時資料表。因此, SageMaker AI 函數結果可能會因為在查詢期間內部處理字串的方式而截斷。

將資料匯出至 Amazon S3 以進行 SageMaker AI 模型訓練 (進階)

我們建議您使用一些提供的演算法來開始使用 Aurora 機器學習和 SageMaker AI,並且團隊中的資料科學家會為您提供 AI SageMaker 端點,您可以將這些端點與SQL程式碼搭配使用。在下列內容中,您可以找到將自己的 Amazon S3 儲存貯體與您自己的 SageMaker AI 模型和 Aurora MySQL 資料庫叢集搭配使用的最少資訊。

機器學習包括兩個主要步驟:訓練和推論。若要訓練 SageMaker AI 模型,請將資料匯出至 Amazon S3 儲存貯體。Jupyter SageMaker AI 筆記本執行個體會使用 Amazon S3 儲存貯體,在部署模型之前對其進行訓練。您可以使用 SELECT INTO OUTFILE S3陳述式從 Aurora MySQL 資料庫叢集查詢資料,並將其直接儲存到存放在 Amazon S3 儲存貯體中的文字檔案中。然後,筆記本執行個體從 Amazon S3 儲存貯體取用資料進行訓練。

Aurora Machine Learning SELECT INTO OUTFILE 擴展 Aurora MySQL 中現有的語法,以將資料匯出至 CSV 格式。需要此格式以進行訓練的模型可以直接使用產生的CSV檔案。

SELECT * INTO OUTFILE S3 's3_uri' [FORMAT {CSV|TEXT} [HEADER]] FROM table_name;

延伸模組支援標準CSV格式。

  • 格式TEXT與現有的 MySQL 匯出格式相同。此為預設格式。

  • 格式CSV是新推出的格式,遵循 RFC-4180 中的規格。

  • 如果您指定選用的關鍵字 HEADER,則輸出檔包含一個標題列。標題列的標籤對應於 SELECT 陳述式中的欄名稱。

  • 您仍可使用關鍵字 CSVHEADER 當作識別符。

SELECT INTO 延伸的語法和文法現在如下所示:

INTO OUTFILE S3 's3_uri' [CHARACTER SET charset_name] [FORMAT {CSV|TEXT} [HEADER]] [{FIELDS | COLUMNS} [TERMINATED BY 'string'] [[OPTIONALLY] ENCLOSED BY 'char'] [ESCAPED BY 'char'] ] [LINES [STARTING BY 'string'] [TERMINATED BY 'string'] ]

搭配 Aurora My 使用 Aurora 機器學習的效能考量SQL

Amazon Bedrock、Amazon Comprehend 和 SageMaker AI 服務在被 Aurora 機器學習函數調用時,會執行大部分的工作。這表示您可以視需要獨立擴展這些資源。對於 Aurora MySQL 資料庫叢集,您可以盡可能有效率地進行函數呼叫。接下來,您可以找到使用 Aurora Machine Learning 時需要注意的一些效能考量。

模型和提示

使用 Amazon Bedrock 時的效能高度取決於您使用的模型和提示。選擇最適合您的使用案例的模型和提示。

查詢快取

Aurora MySQL 查詢快取不適用於 Aurora 機器學習函數。Aurora MySQL 不會為呼叫 Aurora Machine Learning 函數的任何SQL陳述式儲存查詢結果的查詢快取。

Aurora Machine Learning 函數呼叫的批次最佳化

您從 Aurora 叢集可影響的主要 Aurora Machine Learning 效能方面,是 Aurora Machine Learning 預存函數呼叫的批次模式設定。機器學習函數通常需要大量的額外負荷,因此為每個資料列單獨呼叫外部服務並不實用。Aurora Machine Learning 可以將許多資料列對外部 Aurora Machine Learning 服務的呼叫合併成單一批次,來減少這項額外負荷。Aurora Machine Learning 會收到所有輸入資料列的回應,然後一次一列將回應傳給執行中的查詢。此最佳化改善 Aurora 查詢的傳輸量和延遲,而不變更結果。

當您建立連線至 SageMaker AI 端點的 Aurora 預存函數時,您可以定義批次大小參數。此參數會影響每個對 SageMaker AI 基礎呼叫的傳輸資料列數。對於處理大量資料列的查詢,對每一列進行個別 SageMaker AI 呼叫的開銷可能很大。預存程序處理的資料集越大,批次大小就應該越大。

如果批次模式最佳化可以套用至 SageMaker AI 函數,您可以檢查EXPLAIN PLAN陳述式產生的查詢計畫來告知 。在此情況下,執行計劃的 extra 欄包含 Batched machine learning。下列範例顯示對使用批次模式的 SageMaker AI 函數的呼叫。

mysql> CREATE FUNCTION anomaly_score(val real) returns real alias aws_sagemaker_invoke_endpoint endpoint name 'my-rcf-model-20191126'; Query OK, 0 rows affected (0.01 sec) mysql> explain select timestamp, value, anomaly_score(value) from nyc_taxi; +----+-------------+----------+------------+------+---------------+------+---------+------+------+----------+--------------------------+ | id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra | +----+-------------+----------+------------+------+---------------+------+---------+------+------+----------+--------------------------+ | 1 | SIMPLE | nyc_taxi | NULL | ALL | NULL | NULL | NULL | NULL | 48 | 100.00 | Batched machine learning | +----+-------------+----------+------------+------+---------------+------+---------+------+------+----------+--------------------------+ 1 row in set, 1 warning (0.01 sec)

當您呼叫其中一個內建的 Amazon Comprehend 函數時,您可以指定選用的 max_batch_size 參數,以控制批次大小。此參數限制每個批次中處理的 input_text 值數量上限。一次傳送多個項目可減少 Aurora 與 Amazon Comprehend 之間的來回次數。在查詢搭配 LIMIT 子句的情況下,限制批次大小很有用。max_batch_size 使用較小的值可避免叫用 Amazon Comprehend 的次數超過您輸入文字的次數。

評估 Aurora Machine Learning 函數時的批次最佳化適用於下列情況:

  • 選取清單或SELECT陳述式WHERE子句內的函數呼叫

  • INSERTREPLACE陳述式VALUES清單中的函數呼叫

  • SageMaker UPDATE陳述式中SET值中的 AI 函數:

    INSERT INTO MY_TABLE (col1, col2, col3) VALUES (ML_FUNC(1), ML_FUNC(2), ML_FUNC(3)), (ML_FUNC(4), ML_FUNC(5), ML_FUNC(6)); UPDATE MY_TABLE SET col1 = ML_FUNC(col2), SET col3 = ML_FUNC(col4) WHERE ...;

監控 Aurora Machine Learning

您可以查詢數個全域變數來監控 Aurora Machine Learning 批次操作,如下列範例所示。

show status like 'Aurora_ml%';

您可以使用 FLUSH STATUS 陳述式來重設狀態變數。因此,所有數據代表上次重設變數以來的總計、平均等。

Aurora_ml_logical_request_cnt

自上次重新設定狀態後,資料庫執行個體已評估傳送至 Aurora 機器學習服務的邏輯請求數目。視是否使用批次處理而定,此值可能會大於 Aurora_ml_actual_request_cnt

Aurora_ml_logical_response_cnt

Aurora MySQL 在資料庫執行個體使用者執行的所有查詢中從 Aurora Machine Learning 服務收到的彙總回應計數。

Aurora_ml_actual_request_cnt

Aurora MySQL 在資料庫執行個體使用者執行的所有查詢中對 Aurora Machine Learning 服務所做的彙總請求計數。

Aurora_ml_actual_response_cnt

Aurora MySQL 在資料庫執行個體使用者執行的所有查詢中從 Aurora Machine Learning 服務收到的彙總回應計數。

Aurora_ml_cache_hit_cnt

Aurora MySQL 在資料庫執行個體使用者執行的所有查詢中從 Aurora Machine Learning 服務收到的彙總內部快取命中計數。

Aurora_ml_retry_request_cnt

自上次重新設定狀態後,資料庫執行個體傳送至 Aurora 機器學習服務的重試請求數目。

Aurora_ml_single_request_cnt

由非批次模式評估的 Aurora Machine Learning 函數的彙總計數,涵蓋資料庫執行個體的使用者執行的所有查詢。

如需監控 Aurora 機器學習函數呼叫之 SageMaker AI 操作效能的相關資訊,請參閱監控 Amazon SageMaker AI

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。