範例:將資料載入至 Neptune 資料庫執行個體 - Amazon Neptune

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

範例:將資料載入至 Neptune 資料庫執行個體

此範例說明如何將資料載入至 Amazon Neptune。除非另有說明,否則您必須從 Amazon 彈性運算雲端 (AmazonEC2) 執行個體與 Neptune 資料庫執行個體位於相同 Amazon Virtual Private Cloud (VPC) 的執行個體執行下列步驟。

資料載入範例的先決條件

開始之前,您必須準備好以下項目:

  • Neptune 資料庫執行個體。

    如需啟動 Neptune 資料庫執行個體的相關資訊,請參閱 建立新的 Neptune 資料庫叢集

  • 要在其中放置資料檔案的 Amazon Simple Storage Service (Amazon S3) 儲存貯體。

    您可以使用現有的儲存貯體。如果您沒有 S3 儲存貯體,請參閱《Amazon S3 入門指南中的建立儲存貯體

  • 以 Neptune 載入器支援的其中一種格式載入的圖形資料:

    如果您使用 Grimlin 來查詢圖形,Neptune 可以載入 comma-separated-values (CSV) 格式的資料,如中所述。Gremlin 載入資料格式

    如果您使用 openCypher 查詢圖形,Neptune 也可以依照中所述,以openCypher特定CSV格式載入資料 openCypher 資料的載入格式

    如果您正在使用SPARQL,Neptune 可以載入多種RDF格式的資料,如中所述RDF載入資料格式

  • Neptune 資料庫執行個IAM體假定具有允許存取 S3 儲存貯體中資料檔案的IAM政策的角色。此政策必須授予讀取與列出許可。

    如需建立可存取 Amazon S3 的角色,然後將其與 Neptune 叢集建立關聯的相關資訊,請參閱 先決條件:IAM角色和 Amazon S3 存取

    注意

    Neptune 只LoadAPI需要對資料檔案的讀取權限。此原IAM則不需要允許寫入存取權或存取整個值區。

  • 一個 Amazon S3 VPC 端點。如需詳細資訊,請參閱 創建一個 Amazon S3 VPC 端點 一節。

創建一個 Amazon S3 VPC 端點

Neptune 載入程式需要適用於 Amazon S3 的VPC端點。

設定 Amazon S3 的存取
  1. 登錄 AWS Management Console 並在打開 Amazon VPC 控制台https://console.aws.amazon.com/vpc/

  2. 在左側導覽窗格中選擇 Endpoints (端點)。

  3. 選擇建立端點

  4. 選擇 Service Name (服務名稱) com.amazonaws.region.s3

    注意

    如果此處的區域不正確,請務必確保主控台區域正確。

  5. 選擇包含您的 Neptune 資料庫執行個體的。VPC

  6. 選取與您叢集相關子網路關聯的路由表旁邊的核取方塊。如果您只有一個路由表,您必須選擇此方塊。

  7. 選擇建立端點

如需有關建立端點的資訊,請參閱 Amazon VPC 使用者指南中的VPC端點。如需有關VPC端點限制的資訊,請參閱 Amazon S3 的VPC端點

將資料載入至 Neptune 資料庫執行個體
  1. 將資料檔複製至 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 儲存貯體。在開啟 Amazon S3 主控台 https://console.aws.amazon.com/s3/,然後選擇儲存貯體。在左上角,選擇 Upload (上傳) 以上傳檔案。

  2. 在命令列視窗中,輸入以下指令以執行 Neptune 載入程式,並使用適用於您的端點、Amazon S3 路徑、格式和IAM角色的正確值ARN。

    format參數可以是下列任何一個值:csv針對 Grimlin、opencypher for openCypher、或ntriples、、nquadsturtle、和 rdfxml for。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-west-1

    • 歐洲 (倫敦):eu-west-2

    • 歐洲 (巴黎):eu-west-3

    • 歐洲 (法蘭克福):eu-central-1

    • 中東 (巴林):me-south-1

    • 中東 (UAE):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-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 載入器請求參數)。簡而言之:

    URI此source參數接受指向單一檔案或資料夾的 Amazon S3。如果您指定資料夾,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 參數可為以下任一項:

    • 小鬼CSV格式(csv)為小鬼屬性圖

    • openCypher CSV openCypher 屬性圖的格式 (opencypher)

    • N-三元(ntriples)格式為/RDFSPARQL

    • N-四邊形 (nquads) 格式為/RDFSPARQL

    • RDF/XML(rdfxml) 格式RDF/SPARQL

    • 烏龜 (turtle) 格式為RDF/SPARQL

    選用的 parallelism 參數可讓您限制大量載入程序所用的執行緒數目。它可以設定為 LOWMEDIUMHIGHOVERSUBSCRIBE

    updateSingleCardinalityProperties 設為 "FALSE" 時,如果針對邊緣或單一基數頂點屬性所載入的來源檔案中提供了多個值,則載入器會傳回錯誤。

    如果已有執行中的載入任務,則將 queueRequest 設為 "TRUE" 會造成載入請求置於佇列。

    dependencies 參數會在已置於佇列的一或多個載入任務順利完成時執行載入請求。

  3. Neptune 載入器會傳回一個工作 id,可讓您檢查狀態或取消載入程序,例如:

    { "status" : "200 OK", "payload" : { "loadId" : "ef478d76-d9da-4d94-8ff1-08d9d4863aa5" } }
  4. 輸入以下命令,從步驟 3 取得具有 loadId 之載入的狀態:

    curl -G 'https://your-neptune-endpoint:port/loader/ef478d76-d9da-4d94-8ff1-08d9d4863aa5'

    如果載入狀態列出錯誤,您可以請求更詳細的狀態和錯誤清單。如需詳細資訊和範例,請參閱 Neptune 裝載機獲取狀態 API

  5. (選用) 取消 Load 工作。

    輸入以下命令,從步驟 3Delete 具有工作 id 的載入器工作:

    curl -X DELETE 'https://your-neptune-endpoint:port/loader/ef478d76-d9da-4d94-8ff1-08d9d4863aa5'

    DELETE命令200 OK在成功取消後返回HTTP代碼。

    來自已完成載入的載入工作的檔案資料不會還原。資料仍會保留在 Neptune 資料庫執行個體中。