Amazon Athena Neptune 連接器 - Amazon Athena

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

Amazon Athena Neptune 連接器

Amazon Neptune 是快速、可靠、全受管的圖形資料庫服務,可讓您輕鬆建置和執行搭配高度連線資料集使用的應用程式。專門打造的 Neptune 高效能圖形資料庫引擎可將數十億筆關係以最佳化方式存放,且查詢圖形時只會產生數毫秒的延遲。如需詳細資訊,請參閱《Neptune 使用者指南》。

Amazon Athena Neptune 連接器讓 Athena 能夠與您的 Neptune 圖形資料庫執行個體通訊,以便使用 SQL 查詢來存取您的 Neptune 圖形資料。

如果您的帳戶中啟用了 Lake Formation,則您部署在其中部署的 Athena 聯合 Lambda 連接器的 IAM 角色 AWS Serverless Application Repository 必須具有. AWS Glue Data Catalog

必要條件

使用 Neptune 連接器需要以下三個步驟。

限制

目前,Neptune 連接器具有以下限制。

  • 不支援投影資料欄,包括主索引鍵 (ID)。

設定 Neptune 叢集

如果您沒有想要使用的現有 Amazon Neptune 叢集和屬性圖資料集,則必須設定一個。

確保在託管 Neptune 叢集的 VPC 中具有網際網路閘道和 NAT 閘道。Neptune 連接器 Lambda 函數使用的私有子網應具有透過此 NAT 閘道連線至網際網路的路由。Neptune 連接器 Lambda 函數使用 NAT 閘道與之通訊 AWS Glue。

如需設定新 Neptune 叢集並使用範例資料集載入該叢集的指示,請參閱 GitHub .com 上的範例 Neptune 叢集設定。

設定 AWS Glue Data Catalog

與傳統的關聯式資料存放區不同,Neptune 圖形資料庫節點和邊緣不使用集結構描述。每個條目可以有不同的欄位和資料類型。但是,由於 Neptune 連接器會從擷取中繼資料 AWS Glue Data Catalog,因此您必須建立具有具有所需結構描述之表格的資料 AWS Glue 庫。建立 AWS Glue 資料庫和資料表之後,連接器會填充可從 Athena 查詢的資料表清單。

啟用不區分大小寫的資料欄比對

若要使用正確的大小寫來解析 Neptune 資料表中的資料行名稱,即使資料行名稱都是較低的大小寫 AWS Glue,您可以設定 Neptune 連接器以進行不區分大小寫的比對。

若要啟用此功能,請將 Neptune 連接器 Lambda 函數環境變數 enable_caseinsensitivematch 設定為 true

為套管表名稱指定 AWS Glue glabel 表參數

因為只 AWS Glue 支援小寫資料表名稱,因此當您為 Neptune 建立glabel AWS Glue 資料表且 Neptune AWS Glue 資料表名稱包含大小寫時,請務必指定 table 參數。

在您的 AWS Glue 表定義中,包括glabel參數,並使用其原始大小寫將其值設置為表名。這可確保在與 Neptune 表 AWS Glue 互動時保留正確的外殼。下列範例會將 glabel 的值設定為資料表名稱 Airport

glabel = Airport
設置glabel AWS Glue 表屬性以保留 Neptune 表的表名大小寫

如需有關設定與 Neptune 搭配 AWS Glue Data Catalog 使用的詳細資訊,請參閱在 GitHub .com 上設定 AWS Glue 目錄

效能

Athena Neptune 連接器執行述詞下推,以減少查詢掃描的資料。不過,使用主索引鍵的述詞會導致查詢失敗。LIMIT 子句可減少掃描的資料量,但是如果您未提供述詞,則應期望具有 LIMIT 子句的 SELECT 查詢掃描至少 16 MB 的資料。Neptune 連接器由於並行而對限流保有彈性。

直通查詢

Neptune 連接器支援直通查詢。您可以使用此功能在屬性圖上執行 Gemlin 查詢,以及對 RDF 資料執行 SPARQL 查詢。

若要使用 Neptune 建立直通查詢,請使用下列語法:

SELECT * FROM TABLE( system.query( DATABASE => 'database_name', COLLECTION => 'collection_name', QUERY => 'query_string' ))

下面的例子 Neptune 直通查詢過濾器過濾器與代碼ATL的機場。雙引號用於轉義。

SELECT * FROM TABLE( system.query( DATABASE => 'graph-database', COLLECTION => 'airport', QUERY => 'g.V().has(''airport'', ''code'', ''ATL'').valueMap()' ))

其他資源

如需有關此連接器的其他資訊,請造訪 GitHub .com 上的對應網站