選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

Neptune 載入器命令

焦點模式
Neptune 載入器命令 - Amazon Neptune

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

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

將資料從 Amazon S3 儲存貯體載入至 Neptune 資料庫執行個體。

若要載入資料,您必須將 HTTP POST 請求傳送至 https://your-neptune-endpoint:port/loader 端點。您可以用 POST 本文或以 URL 編碼參數來傳送 loader 請求的參數。

重要

MIME 類型必須是 application/json

S3 儲存貯體必須與叢集位於相同的 AWS 區域。

注意

您可以從 Amazon S3 載入加密的資料 (如果它是使用 Amazon S3 SSE-S3 模式加密的)。在這種情況下,Neptune 可以模擬您的憑證,並代表您發出 s3:getObject 呼叫。

您也可以從 Amazon S3 載入使用 SSE-KMS 模式加密的加密資料,只要您的 IAM 角色包含存取 AWS KMS的必要許可。如果沒有適當的 AWS KMS 許可,大量載入操作會失敗並傳回LOAD_FAILED回應。

Neptune 目前不支援載入使用 SSE-C 模式加密的 Amazon S3 資料。

您不必等待一個載入工作完成,然後再啟動另一個工作。Neptune 最多可以一次將 64 個工作排入佇列,前提是其 queueRequest 參數全都設為 "TRUE"。工作的佇列順序將為先進先出 (FIFO)。另一方面,若不希望載入工作排入佇列,則可將其 queueRequest 參數設為 "FALSE" (預設值),如此一來,一項載入工作進行時,便無法啟動另一項載入工作。

針對只在且須在佇列中指定的先前任務順利完成後才能執行的任務,您可以使用 dependencies 參數將這些任務排入佇列。若這麼做,且任一指定的任務失敗的話,則您的任務將不會執行,且其狀態將設為 LOAD_FAILED_BECAUSE_DEPENDENCY_NOT_SATISFIED

Neptune 載入器請求語法

{ "source" : "string", "format" : "string", "iamRoleArn" : "string", "mode": "NEW|RESUME|AUTO", "region" : "us-east-1", "failOnError" : "string", "parallelism" : "string", "parserConfiguration" : { "baseUri" : "http://base-uri-string", "namedGraphUri" : "http://named-graph-string" }, "updateSingleCardinalityProperties" : "string", "queueRequest" : "TRUE", "dependencies" : ["load_A_id", "load_B_id"] }

Neptune 載入器請求參數

  • source – Amazon S3 URI。

    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

    URI 的 object-key-name 元素相當於 Amazon S3 ListObjects API 呼叫中的 prefix 參數。它會識別所指定 Amazon S3 儲存貯體中其名稱以該字首開頭的所有物件。這可以是單一檔案或資料夾,也可以是多個檔案和/或資料夾。

    一個或多個指定的資料夾可以包含多個頂點檔案和多個邊緣檔案。

    例如,如果您在名為 的 Amazon S3 儲存貯體中具有下列資料夾結構和檔案bucket-name

    s3://bucket-name/a/bc s3://bucket-name/ab/c s3://bucket-name/ade s3://bucket-name/bcd

    如果將來源參數指定為 s3://bucket-name/a,則會載入前三個檔案。

    s3://bucket-name/a/bc s3://bucket-name/ab/c s3://bucket-name/ade
  • format – 資料的格式。如需有關 Neptune Loader 命令的資料格式詳細資訊,請參閱 使用 Amazon Neptune 大量載入器擷取資料

    允許的值
  • iamRoleArn – Neptune 資料庫執行個體為了存取 S3 儲存貯體 而擔任之 IAM 角色的 Amazon Resource Name (ARN)。如需建立可存取 Amazon S3 的角色,然後將其與 Neptune 叢集建立關聯的相關資訊,請參閱 必要條件:IAM 角色和 Amazon S3 存取

    引擎版本 1.2.1.0.R3 開始,如果 Neptune 資料庫執行個體和 Amazon S3 儲存貯體位於不同的 AWS 帳戶中,您也可以鏈結多個 IAM 角色。在此情況下,iamRoleArn 會包含逗號分隔的角色 ARN 清單,如 在 Amazon Neptune 中鏈結 IAM 角色 中所述。例如:

    curl -X POST https://localhost:8182/loader \ -H 'Content-Type: application/json' \ -d '{ "source" : "s3://(the target bucket name)/(the target date file name)", "iamRoleArn" : "arn:aws:iam::(Account A ID):role/(RoleA),arn:aws:iam::(Account B ID):role/(RoleB),arn:aws:iam::(Account C ID):role/(RoleC)", "format" : "csv", "region" : "us-east-1" }'
  • regionregion 參數必須符合叢集 AWS 的區域和 S3 儲存貯體。

    Amazon Neptune 可在下列 區域使用:

    • 美國東部 (維吉尼亞北部):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-southeast-5

    • 亞太區域 (孟買):ap-south-1

    • 中國 (北京):cn-north-1

    • 中國 (寧夏):cn-northwest-1

    • AWS GovCloud (美國西部): us-gov-west-1

    • AWS GovCloud (美國東部): us-gov-east-1

  • mode – 載入工作模式。

    允許的值RESUMENEWAUTO

    預設值AUTO

    • RESUME – 在 RESUME 模式下,載入器會從此來源尋找先前的載入,若找到某載入工作,則會繼續該工作。如果找不到先前的載入任務,載入器便會停止。

      載入程式可避免重新載入已順利載入先前任務的檔案。它只會嘗試處理失敗的檔案。如果從 Neptune 叢集捨棄先前載入的資料,則不會在此模式下重新載入該資料。如果先前的載入工作已從相同來源順利載入所有檔案,則不會重新載入任何工作,且載入器會傳回成功。

    • NEW – 在 NEW 模式下,建立新的載入請求,無論先前有任何的載入。您可以使用此模式,在捨棄 Neptune 叢集先前載入的資料之後,從來源重新載入所有資料,或者載入同一來源的可用新資料。

    • AUTO – 在 AUTO 模式下,載入器會從相同來源尋找先前的載入任務,若找到一項載入任務,則會繼續該任務,如同 RESUME 模式一般。

      若載入器未能從相同來源找到先前的載入任務,則會從該來源載入所有資料,如同 NEW 模式那樣。

  • failOnError – 一種旗標,用來切換錯誤時完全停止。

    允許的值"TRUE""FALSE"

    預設值"TRUE"

    此參數設為 "FALSE" 時,載入器會嘗試載入指定位置中的所有資料,並略過任何有錯誤的項目。

    此參數設為 "TRUE" 時,載入器會在遇到錯誤時立即停止。到該時間點載入的資料仍然存在。

  • parallelism – 這是選用參數,可設定以減少大量載入程序所用的執行緒數量。

    允許的值

    • LOW – 使用的執行緒數目是可用 vCPU 除以 8 後的數字。

    • MEDIUM – 使用的執行緒數目是可用 vCPU 除以 2 後的數字。

    • HIGH – 使用的執行緒數目與可用 vCPU 的數目相同。

    • OVERSUBSCRIBE – 使用的執行緒數目是可用 vCPU 乘以 2 後的數字。如果使用此值,大量載入器會佔用所有可用的資源。

      不過,這並不表示 OVERSUBSCRIBE 設定會產生 100% CPU 使用率。由於載入操作受 I/O 限制,因此預期的最高 CPU 使用率在 60% 到 70% 的範圍內。

    預設值HIGH

    載入 OpenCypher 資料時,parallelism 設定有時可能會導致執行緒之間發生死結。發生這種情況時,Neptune 會傳回 LOAD_DATA_DEADLOCK 錯誤。通常,您可以透過將 parallelism 設定為較低的設定,並重試載入命令來修正此問題。

  • parserConfiguration – 包含額外剖析器組態值的選用物件。也可選用每個子參數:

    名稱 範例值 描述
    namedGraphUri http://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraph The default graph for all RDF formats when no graph is specified (for non-quads formats and NQUAD entries with no graph). The default is http://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraph
    baseUri http://aws.amazon.com/neptune/default The base URI for RDF/XML and Turtle formats. The default is http://aws.amazon.com/neptune/default.
    allowEmptyStrings true

    載入 CSV 資料時,Gemlin 使用者必須能夠傳遞空字串值 ("") 做為節點和邊緣屬性。如果 allowEmptyStrings 設定為 false (預設值),則這類空字串會被視為 null 而不會將其載入。

    如果 allowEmptyStrings 設定為 true,載入器會將空字串視為有效的屬性值,並相應地載入它們。

    如需詳細資訊,請參閱SPARQL 預設圖形和具名圖形

  • updateSingleCardinalityProperties – 這是選用參數,可控制大量載入器如何處理單一基數頂點或邊緣屬性的新值。不支援將此用於載入 openCypher 資料 (請參閱 載入 openCypher 資料)。

    允許的值"TRUE""FALSE"

    預設值"FALSE"

    根據預設,或當 updateSingleCardinalityProperties 明確設定為 "FALSE" 時,載入器會將新值視為錯誤,因為它違反單一基數。

    另一方面,當 updateSingleCardinalityProperties 設為 "TRUE" 時,大量載入器會以新的值取代現有的值。如果在要載入的來源檔案中提供多個邊緣或單一基數頂點屬性值,則大量載入結尾的最終值可以是這些新值的其中之一。載入器只會保證現有的值已由其中一個新值取代。

  • queueRequest – 此為選用標記參數,用以指示載入請求能否排入佇列。

    您不必等到載入工作完成才能發出另一個載入工作,因為 Neptune 最多可以一次將 64 個工作排入佇列,前提是其 queueRequest 參數都設為 "TRUE"。工作的佇列順序將為先進先出 (FIFO)。

    如果 queueRequest 參數遭省略或設為 "FALSE",且已有其他執行中的載入任務,則此載入請求將失敗。

    允許的值"TRUE""FALSE"

    預設值"FALSE"

  • dependencies – 這是選用參數,可在一或多個佇列中先前工作順利完成時,發出佇列載入請求。

    Neptune 最多可以一次將 64 個載入請求排入佇列,前提是其 queueRequest 參數設為 "TRUE"dependencies 參數可讓您在一或多個佇列中指定的先前請求順利完成時,執行這類佇列請求。

    例如,如果載入 Job-AJob-B 彼此獨立,但載入 Job-C 須先完成 Job-AJob-B 才能開始,請依照指示執行:

    1. 以任何順序一個接著一個提交 load-job-Aload-job-B,並儲存其載入 ID。

    2. 使用兩任務其 dependencies 欄位中的載入 ID 提交 load-job-C

    "dependencies" : ["job_A_load_id", "job_B_load_id"]

    由於 dependencies 參數的關係,大量載入器在 Job-AJob-B 順利完成之前,將不會啟動 Job-C。如果其中任何一個失敗,則不執行 Job-C,且其狀態將設為 LOAD_FAILED_BECAUSE_DEPENDENCY_NOT_SATISFIED

    您可以使用這種方式設定多個相依性層級,如此一來,一項任務若失敗,將導致直間接仰賴該任務的所有請求遭取消。

  • userProvidedEdgeIds – 只有在載入包含關係 ID 的 OpenCypher 資料時,才需要這個參數。在載入資料中明確提供 OpenCypher 關係 ID 時,必須包含它並設定為 True (建議使用)。

    如果 userProvidedEdgeIds 不存在或設定為 True,則載入中的每個關係檔案中都必須存在一個 :ID 欄。

    userProvidedEdgeIds 存在且設定為 False 時,載入中的關係檔案不得包含 :ID 欄。相反地,Neptune 載入器會自動為每個關係產生一個 ID。

    明確提供關係 ID 很有用,如此一來,載入器就可以在 CSV 資料中的錯誤完成修正之後繼續載入,而不必重新載入任何已載入的關係。如果尚未明確指派關係 ID,則載入器無法繼續失敗的載入 (如果任何關係檔案必須更正的話),反而必須重新載入所有關係。

  • accessKey已棄用 可存取 S3 儲存貯體和資料檔案的 IAM 角色的存取金鑰 ID。

    建議改用 iamRoleArn 參數。如需建立可存取 Amazon S3 的角色,然後將其與 Neptune 叢集建立關聯的相關資訊,請參閱 必要條件:IAM 角色和 Amazon S3 存取

    如需詳細資訊,請參閱存取金鑰 (存取金鑰 ID 和私密存取金鑰)

  • secretKey已棄用 建議改用 iamRoleArn 參數。如需建立可存取 Amazon S3 的角色,然後將其與 Neptune 叢集建立關聯的相關資訊,請參閱 必要條件:IAM 角色和 Amazon S3 存取

    如需詳細資訊,請參閱存取金鑰 (存取金鑰 ID 和私密存取金鑰)

載入 openCypher 資料的特殊考量

  • 以 CSV 格式載入 openCypher 資料時,必須將格式參數設定為 opencypher

  • 不支援 updateSingleCardinalityProperties 參數用於 openCypher 載入,因為所有 openCypher 屬性都有單一基數。OpenCypher 載入格式不支援陣列,而且如果 ID 值出現多次,則系統會將其視為重複或插入錯誤 (請參閱下文)。

  • Neptune 載入器會處理它在 OpenCypher 資料中遇到的重複項目,如下所示:

    • 如果載入器遇到多個具有相同節點 ID 的資料列,則會使用下列規則合併它們:

      • 資料列行中的所有標籤現在會新增至節點。

      • 對於每個屬性,只會載入其中一個屬性值。選取要載入哪一個是不具確定性的。

    • 如果載入器遇到多個具有相同關係 ID 的資料列,則只會載入其中一個資料列。選取要載入哪一個是不具確定性的。

    • 如果載入器遇到具有現有節點或關係 ID 的載入資料,則它永遠不會更新資料庫中現有節點或關係的屬性值。不過,它確實會載入現有節點或關係中不存在的節點標籤和屬性。

  • 雖然您不必將 ID 指派給關係,但是這樣做通常是個好主意 (請參閱上面的 userProvidedEdgeIds 參數)。若沒有明確的關係 ID,載入器必須在關係檔案中發生錯誤時重新載入所有關係,而不是從失敗處繼續載入。

    此外,如果載入資料未包含明確的關係 ID,則載入器無法偵測重複的關係。

以下是 openCypher 載入命令的範例:

curl -X POST https://your-neptune-endpoint:port/loader \ -H 'Content-Type: application/json' \ -d ' { "source" : "s3://bucket-name/object-key-name", "format" : "opencypher", "userProvidedEdgeIds": "TRUE", "iamRoleArn" : "arn:aws:iam::account-id:role/role-name", "region" : "region", "failOnError" : "FALSE", "parallelism" : "MEDIUM", }'

載入器回應與正常回應相同。例如:

{ "status" : "200 OK", "payload" : { "loadId" : "guid_as_string" } }

Neptune 載入器回應語法

{ "status" : "200 OK", "payload" : { "loadId" : "guid_as_string" } }
200 OK

成功開始的載入任務會傳回 200 程式碼。

在本頁面

下一個主題:

錯誤

上一個主題:

載入器參考
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。