本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
範例:將資料載入至 Neptune 資料庫執行個體
此範例說明如何將資料載入至 Amazon Neptune。除非另有說明,否則您必須在與 Neptune 資料庫執行個體相同的 Amazon Virtual Private Cloud (VPC) 中遵循這些來自 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體中的步驟。
資料載入範例的先決條件
開始之前,您必須準備好以下項目:
-
Neptune 資料庫執行個體。
如需啟動 Neptune 資料庫執行個體的相關資訊,請參閱 建立 Amazon Neptune 叢集。
-
要在其中放置資料檔案的 Amazon Simple Storage Service (Amazon S3) 儲存貯體。
您可以使用現有的儲存貯體。如果您沒有 S3 儲存貯體,請參閱《Amazon S3 入門指南》中的建立儲存貯體。
-
以 Neptune 載入器支援的其中一種格式載入的圖形資料:
如果您使用 Gremlin 來查詢圖形,Neptune 可以使用逗號分隔值 (
CSV
) 格式載入資料,如 Gremlin 載入資料格式 中所述。如果您使用 OpenCypher 來查詢您的圖形,Neptune 也可以載入 openCypher 特定
CSV
格式的資料,如 openCypher 資料的載入格式 中所述。如果您使用的是 SPARQL,Neptune 可以使用多種 RDF 格式載入資料,如 RDF 載入資料格式 中所述。
-
Neptune 資料庫執行個體要擔任的 IAM 角色,其具有 IAM 政策,允許存取 S3 儲存貯體中的資料檔案。此政策必須授予讀取與列出許可。
如需建立可存取 Amazon S3 的角色,然後將其與 Neptune 叢集建立關聯的相關資訊,請參閱 必要條件:IAM 角色和 Amazon S3 存取。
注意
Neptune
Load
API 僅需要資料檔案的讀取存取權。IAM 政策不需要允許整個儲存貯體的寫入存取權或存取權。 Amazon S3 VPC 端點。如需詳細資訊,請參閱 建立 Amazon S3 VPC 端點 一節。
建立 Amazon S3 VPC 端點
Neptune 載入器需要 Amazon S3 的 VPC 端點。
設定 Amazon S3 的存取
登入 AWS Management Console ,並在 https://console.aws.amazon.com/vpc/
:// 開啟 Amazon VPC 主控台。 在左側導覽窗格中選擇 Endpoints (端點)。
選擇建立端點。
-
選擇 Service Name (服務名稱)
com.amazonaws.
。region
.s3注意
如果此處的區域不正確,請務必確保主控台區域正確。
選擇包含 Neptune 資料庫執行個體的 VPC。
選取與您叢集相關子網路關聯的路由表旁邊的核取方塊。如果您只有一個路由表,您必須選擇此方塊。
選擇建立端點。
如需建立端點的相關資訊,請參閱《Amazon VPC 使用者指南》中的 VPC 端點。如需 VPC 端點各項限制的相關資訊,請參閱 Amazon S3 的 VPC 端點。
將資料載入至 Neptune 資料庫執行個體
-
將資料檔複製至 Amazon S3 儲存貯體。S3 儲存貯體必須與載入資料的叢集位於相同的 AWS 區域。
您可以使用下列 AWS CLI 命令,將檔案複製到儲存貯體。
注意
此命令不需要從 Amazon EC2 執行個體執行。
aws s3 cp
data-file-name
s3://bucket-name
/object-key-name
注意
在Amazon S3 中,物件金鑰名稱是檔案的完整路徑,包括檔案名稱。
範例:在命令
aws s3 cp datafile.txt s3://examplebucket/mydirectory/datafile.txt
中,物件鍵名稱為mydirectory/datafile.txt
。或者,您可以使用 AWS Management Console 將檔案上傳至 S3 儲存貯體。在 https://console.aws.amazon.com/s3/
開啟 Amazon S3 主控台,然後選擇儲存貯體。在左上角,選擇 Upload (上傳) 以上傳檔案。 -
從命令列視窗中,輸入以下命令,並使用端點、Amazon S3 路徑、格式和 IAM 角色 ARN 的正確值,來執行 Neptune 載入器。
format
參數可以是下列任何一個值:csv
(適用於 Gremlin)、opencypher
(適用於 openCypher) 或ntriples
、nquads
、turtle
和rdfxml
(適用於 RDF)。如需有關其他參數的資訊,請參閱 Neptune 載入器命令。如需尋找 Neptune 資料庫執行個體主機名稱的相關資訊,請參閱 連線至 Amazon Neptune 端點 一節。
區域參數必須符合叢集和 S3 儲存貯體的區域。
Amazon Neptune 可在下列 AWS 區域使用:
美國東部 (維吉尼亞北部):
us-east-1
美國東部 (俄亥俄):
us-east-2
美國西部 (加利佛尼亞北部):
us-west-1
美國西部 (奧勒岡):
us-west-2
加拿大 (中部):
ca-central-1
南美洲 (聖保羅):
sa-east-1
歐洲 (斯德哥爾摩):
eu-north-1
歐洲 (西班牙):
eu-south-2
歐洲 (愛爾蘭):
eu-west-1
歐洲 (倫敦):
eu-west-2
歐洲 (巴黎):
eu-west-3
歐洲 (法蘭克福):
eu-central-1
中東 (巴林):
me-south-1
中東 (阿拉伯聯合大公國):
me-central-1
以色列 (特拉維夫):
il-central-1
非洲 (開普敦):
af-south-1
亞太區域 (香港):
ap-east-1
亞太區域 (東京):
ap-northeast-1
亞太區域 (首爾):
ap-northeast-2
亞太區域 (大阪):
ap-northeast-3
亞太區域 (新加坡):
ap-southeast-1
亞太區域 (雪梨):
ap-southeast-2
亞太區域 (雅加達):
ap-southeast-3
亞太區域 (孟買):
ap-south-1
中國 (北京):
cn-north-1
中國 (寧夏):
cn-northwest-1
AWS GovCloud (美國西部):
us-gov-west-1
AWS GovCloud (美國東部):
us-gov-east-1
curl -X POST \ -H 'Content-Type: application/json' \ https://
your-neptune-endpoint
:port
/loader -d ' { "source" : "s3://bucket-name
/object-key-name
", "format" : "format
", "iamRoleArn" : "arn:aws:iam::account-id
:role/role-name
", "region" : "region
", "failOnError" : "FALSE", "parallelism" : "MEDIUM", "updateSingleCardinalityProperties" : "FALSE", "queueRequest" : "TRUE", "dependencies" : ["load_A_id", "load_B_id"
] }'如需建立 IAM 角色並將其與 Neptune 叢集建立關聯的相關資訊,請參閱 必要條件:IAM 角色和 Amazon S3 存取。
注意
如需載入請求參數的詳細資訊,請參閱 Neptune 載入器請求參數)。簡而言之:
source
參數接受指向單一檔案或資料夾的 Amazon S3 URI。如果您指定資料夾,Neptune 會將每個資料檔案載入該資料夾。資料夾可包含多個頂點檔案和多個邊緣檔案。
URI 可以是下列任何格式。
s3://
bucket_name
/object-key-name
https://s3.amazonaws.com/
bucket_name
/object-key-name
https://s3-us-east-1.amazonaws.com/
bucket_name
/object-key-name
format
參數可為以下任一項:用於 Gremlin 屬性圖的 Gremlin CSV 格式 (
csv
)用於 openCypher 屬性圖的 openCypher CSV 格式 (
opencypher
)N -Triples (
ntriples
) 格式用於 RDF/SPARQLN-Quads (
nquads
) 格式用於 RDF/SPARQLRDF/XML (
rdfxml
) 格式用於 RDF/SPARQLTurtle (
turtle
) 格式用於 RDF/SPARQL
選用的
parallelism
參數可讓您限制大量載入程序所用的執行緒數目。它可以設定為LOW
、MEDIUM
、HIGH
或OVERSUBSCRIBE
。當
updateSingleCardinalityProperties
設為"FALSE"
時,如果針對邊緣或單一基數頂點屬性所載入的來源檔案中提供了多個值,則載入器會傳回錯誤。如果已有執行中的載入任務,則將
queueRequest
設為"TRUE"
會造成載入請求置於佇列。dependencies
參數會在已置於佇列的一或多個載入任務順利完成時執行載入請求。 -
Neptune 載入器會傳回一個工作
id
,可讓您檢查狀態或取消載入程序,例如:{ "status" : "200 OK", "payload" : { "loadId" : "
ef478d76-d9da-4d94-8ff1-08d9d4863aa5
" } } -
輸入以下命令,從步驟 3 取得具有
loadId
之載入的狀態:curl -G 'https://
your-neptune-endpoint
:port
/loader/ef478d76-d9da-4d94-8ff1-08d9d4863aa5
'如果載入狀態列出錯誤,您可以請求更詳細的狀態和錯誤清單。如需詳細資訊和範例,請參閱 Neptune 載入器 Get-Status API。
-
(選用) 取消
Load
工作。輸入以下命令,從步驟 3 中
Delete
具有工作id
的載入器工作:curl -X DELETE 'https://
your-neptune-endpoint
:port
/loader/ef478d76-d9da-4d94-8ff1-08d9d4863aa5
'成功取消時,
DELETE
命令將傳回 HTTP 程式碼200 OK
。來自已完成載入的載入工作的檔案資料不會還原。資料仍會保留在 Neptune 資料庫執行個體中。