本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon Neptune 是快速、可靠、全受管的圖形資料庫服務,可讓您輕鬆建置和執行搭配高度連線資料集使用的應用程式。專門打造的 Neptune 高效能圖形資料庫引擎可將數十億筆關係以最佳化方式存放,且查詢圖形時只會產生數毫秒的延遲。如需詳細資訊,請參閱《Neptune 使用者指南》。
Amazon Athena Neptune 連接器讓 Athena 能夠與您的 Neptune 圖形資料庫執行個體通訊,以便使用 SQL 查詢來存取您的 Neptune 圖形資料。
此連接器不會使用 Glue Connections 來集中 Glue 中的組態屬性。連線組態是透過 Lambda 完成。
如果您在帳戶中啟用 Lake Formation,則您在 中部署的 Athena 聯合 Lambda 連接器的 IAM 角色 AWS Serverless Application Repository 必須在 Lake Formation 中具有對 的讀取存取權 AWS Glue Data Catalog。
先決條件
使用 Neptune 連接器需要以下三個步驟。
-
設定 Neptune 叢集
-
設定 AWS Glue Data Catalog
-
將連接器部署到您的 AWS 帳戶。如需詳細資訊,請參閱 建立資料來源連線 或 使用 AWS Serverless Application Repository 部署資料來源連接器。如需特定於部署 Neptune 連接器的其他詳細資訊,請參閱 GitHub.com 上的部署 Amazon Athena Neptune 連接器
。
限制
目前,Neptune Connector 有下列限制。
-
不支援投影資料欄,包括主索引鍵 (ID)。
設定 Neptune 叢集
如果您沒有想要使用的現有 Amazon Neptune 叢集和屬性圖資料集,則必須設定一個。
確保在託管 Neptune 叢集的 VPC 中具有網際網路閘道和 NAT 閘道。Neptune 連接器 Lambda 函數使用的私有子網應具有透過此 NAT 閘道連線至網際網路的路由。Neptune 連接器 Lambda 函數使用 NAT Gateway 與 通訊 AWS Glue。
如需有關設定新 Neptune 叢集並使用範例資料集載入它的說明,請參閱 GitHub.com 上的 Sample Neptune Cluster Setup
設定 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 建立 AWS Glue 資料表時,以及您的 Neptune 資料表名稱包含殼體時,請務必指定資料表glabel
AWS Glue 參數。
在 AWS Glue 資料表定義中,包含 glabel
參數,並使用其原始大小寫將其值設定為資料表名稱。這可確保在與 Neptune 資料表 AWS Glue 互動時保留正確的外殼。下列範例會將 glabel
的值設定為資料表名稱 Airport
。
glabel = Airport

如需設定 AWS Glue Data Catalog 以使用 Neptune 的詳細資訊,請參閱在 GitHub.com 上設定 AWS Glue 目錄
效能
Athena Neptune 連接器執行述詞下推,以減少查詢掃描的資料。不過,使用主索引鍵的述詞會導致查詢失敗。LIMIT
子句可減少掃描的資料量,但是如果您未提供述詞,則應期望具有 LIMIT
子句的 SELECT
查詢掃描至少 16 MB 的資料。Neptune 連接器由於並行而對限流保有彈性。
傳遞查詢
Neptune 連接器支援傳遞查詢。您可以使用此功能在屬性圖形上執行 Gremlin 查詢,以及在 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 上的相應網站