本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
快速入門:在 Amazon S3 中查詢資料
使用者可以使用 SQL 延伸模組從 JupyterLab 筆記本執行 SQL 查詢,以分析 Amazon S3 中存放的資料。延伸模組與 Athena 整合,只需幾個額外步驟即可啟用 Amazon S3 中資料的功能。
本節會透過步驟引導您將資料從 Amazon S3 載入至 Athena,然後使用 SQL 延伸模組從 JupyterLab 查詢該資料。您將建立 Athena 資料來源和AWS Glue爬蟲程式來為 Amazon S3 資料編製索引、設定適當的 IAM 許可以啟用 JupyterLab 對 Athena 的存取,並將 JupyterLab 連線至 Athena 以查詢資料。遵循以下幾個步驟,您將能夠在 JupyterLab 筆記本中使用 SQL 延伸模組分析 Amazon S3 資料。
先決條件
-
使用具有管理員許可的 AWS Identity and Access Management(IAM) 使用者帳戶登入 AWS管理主控台。如需如何註冊 AWS 帳戶並建立具有管理存取權之使用者的相關資訊,請參閱 完成 Amazon SageMaker AI 先決條件。
-
具有 SageMaker AI 網域和使用者設定檔以存取 SageMaker Studio。如需如何設定 SageMaker AI 環境的相關資訊,請參閱使用 Amazon SageMaker AI 的快速設定。
-
具有 Amazon S3 儲存貯體和資料夾來存放 Athena 查詢結果,同時使用與您的 SageMaker AI 環境相同的 AWS 區域和帳戶。如需如何在 Amazon S3 中建立儲存貯體的相關資訊,請參閱 Amazon S3 文件中的建立儲存貯體。您會將此儲存貯體和資料夾設定為您的查詢輸出位置。
在 Amazon S3 中存取和查詢您的資料
步驟 1:為您的 Amazon S3 資料設定 Athena 資料來源和AWS Glue爬蟲程式
請遵循下列步驟,為 Amazon S3 中您的資料編製索引,並在 Athena 中建立資料表。
注意
若要避免來自不同 Amazon S3 位置的資料表名稱之間發生衝突,請為每個位置建立個別的資料來源和編目程式。除非加上字首,否則每個資料來源都會建立一個以包含它們的資料夾命名的資料表。
-
設定查詢結果位置
-
前往 Athena 主控台:https://console.aws.amazon.com/athena/
。 -
從左側功能表中,選擇工作群組。
-
遵循
primary工作群組的連結,然後選擇編輯。 -
在查詢結果組態區段中,為您的輸出目錄輸入 Amazon S3 路徑,然後選擇儲存變更。
-
-
為您的 Amazon S3 資料建立 Athena 資料來源
-
從 Athena 主控台中的左側功能表中,選擇資料來源,然後選擇建立資料來源。
-
選擇 S3 -AWS GlueData Catalog,然後選擇下一步。
-
保留此帳戶中的預設 AWS Glue Data Catalog、選擇在 AWS Glue 中建立編目程式,然後選擇在 AWS Glue 中建立。這會開啟 AWS Glue主控台。
-
-
使用 AWS Glue來編目資料來源
-
為您的新編目程式輸入名稱和描述,然後選擇下一步。
-
在資料來源下,選擇新增資料來源。
-
如果包含資料的 Amazon S3 儲存貯體位於與 SageMaker AI 環境不同的AWS帳戶中,請在 S3 資料位置的不同帳戶中選擇 。 S3
-
輸入 Amazon S3 中您資料集的路徑。例如:
s3://dsoaws/nyc-taxi-orig-cleaned-split-parquet-per-year-multiple-files/ride-info/year=2019/ -
保留所有其他預設值,然後選擇新增 Amazon S3 資料來源。您應該會在資料來源資料表中看到新的 Amazon S3 資料來源。
-
選擇下一步。
-
-
設定編目程式的 IAM 角色以存取您的資料。
注意
每個角色的範圍都會縮小到您指定的資料來源。重複使用角色時,請編輯 JSON 政策以新增您要授予存取權的任何新資源,或為此資料來源建立新的角色。
-
選擇建立新的 IAM 角色。
-
輸入角色的名稱,然後選擇 下一步。
-
-
-
為您的資料表建立或選取資料庫
-
如果您在 Athena 中沒有現有的資料庫,請選擇新增資料庫,然後選擇建立新資料庫。
-
返回先前的編目程式建立索引標籤,在輸出組態中,選擇重新整理按鈕。您現在應該會在清單中看到新建立的資料庫。
-
選取您的資料庫、在資料表名稱字首中新增選用字首,然後選擇下一步。
注意
對於您的資料位於
s3://dsoaws/nyc-taxi-orig-cleaned-split-parquet-per-year-multiple-files/ride-info/year=2019/的先前範例,新增字首taxi-ride-將會建立名為taxi-ride-year_2019的資料表。當多個資料位置具有相同命名的資料夾時,新增字首有助於防止資料表名稱衝突。
-
-
選擇建立編目程式。
-
執行您的編目程式來為您的資料編製索引。等待編目程式執行達到
Completed狀態,這可能需要幾分鐘的時間。
若要確保建立新的資料表,請前往 中的左側選單AWS Glue,然後選擇資料庫,然後選擇資料表。您現在應該會看到包含您資料的新資料表。
步驟 2:授予 Studio 存取 Athena 的許可
在下列步驟中,您授予使用者設定檔的執行角色存取 Athena 的許可。
-
擷取與您使用者設定檔相關聯之執行角色的 ARN
-
前往 SageMaker AI 主控台 (網址為 https://console.aws.amazon.com/sagemaker/
),然後在左側功能表中選擇網域。 -
遵循網域名稱的名稱。
-
在使用者設定檔清單中,遵循使用者設定檔的名稱。
-
在使用者詳細資訊頁面上,複製執行角色的 ARN。
-
-
更新執行角色的政策
-
在 SageMaker AI 主控台的右上角尋找您的AWS區域和帳戶 ID。使用這些值和您的資料庫名稱,在文字編輯器中更新下列 JSON 政策中的預留位置。
-
前往 IAM 主控台:https://console.aws.amazon.com/iam/
,然後在左側功能表中選擇角色。 -
依角色名稱搜尋您的角色。
注意
您可以從其 Amazon Resource Name (ARN) 擷取執行角色名稱,方法是在
'/'上分割 ARN 並取得最後一個元素。例如,在下列 ARNarn:aws:iam::112233445566:role/SageMakerStudio-SQLExtension-ExecutionRole範例中,執行角色的名稱為SageMakerStudio-SQLExtension-ExecutionRole。 -
遵循角色的連結。
-
在許可索引標籤中,選擇新增許可,然後選擇建立內嵌政策。
-
在政策編輯器區段中,選擇
JSON格式。 -
複製上述政策,然後選擇下一步。確定您已將所有
account-id、region-name和db-name取代為其值。 -
輸入您政策的名稱,然後選擇建立政策。
-
步驟 3:在 JupyterLab 中啟用 Athena 預設連線
在下列步驟中,您會在 JupyterLab 應用程式中啟用 default-athena-connection。預設 Athena 連線允許直接從 JupyterLab 在 Athena 中執行 SQL 查詢,而不需要手動建立連線。
啟用預設 Athena 連線
-
前往 SageMaker AI 主控台 (網址為 https://console.aws.amazon.com/sagemaker/
),然後在左側功能表中選擇 Studio。使用您的網域和使用者設定檔,啟動 Studio。 -
選擇 JupyterLab 應用程式。
-
如果您尚未為 JupyterLab 應用程式建立空間,請選擇建立 JupyterLab 空間。輸入空間的名稱、將空間保留為私有,然後選擇建立空間。使用最新版的 SageMaker AI Distribution 映像執行您的空間。
否則,請在您的空間上選擇執行空間以啟動 JupyterLab 應用程式。
-
啟用 Athena 預設連線:
-
在您的 JupyterLab 應用程式中,導覽至頂端導覽列中的設定功能表,並開啟設定編輯器功能表。
-
選擇資料探索。
-
勾選啟用預設 Athena 連線的方塊。
-
在 JupyterLab 應用程式中,選擇左側導覽窗格中的 SQL 延伸模組圖示 (
) 以開啟 SQL 延伸模組。 -
選擇資料探索面板底部的重新整理按鈕。您應該會在連線清單中看到
default-athena-connection。
-
步驟 4:使用 SQL 延伸模組從 JupyterLab 筆記本中查詢 Amazon S3 中的資料
您已準備好在 JupyterLab 筆記本中使用 SQL 查詢您的資料。
-
開啟連線
default-athena-connection,然後開啟 AWSDataCatalog。 -
導覽至您的資料庫,然後選擇右側的三點圖示 (
)。選取在筆記本中查詢。這會自動使用相關的
%%sm_sql魔術命令,在 JupyterLab 中填入筆記本儲存格,以連線至資料來源。它也會新增範例 SQL 陳述式,協助您立即開始查詢。注意
執行 SQL 查詢之前,請確定在頂端儲存格中載入延伸項目。
您可以使用延伸模組的自動完成和醒目提示功能,進一步精簡 SQL 查詢。如需使用 SQL 延伸模組 SQL 編輯器的詳細資訊,請參閱 JupyterLab SQL 延伸模組的 SQL 編輯器功能。