本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
匯出 params
頂層 JSON 物件中的參數欄位
Neptune 匯出 params
JSON 物件可讓您控制匯出,包括所匯出資料的類型和格式。
所匯出參數 params
物件中可能欄位的清單
下面列出了可以出現在 params
物件中的所有可能頂層欄位。只有這些欄位的子集才會出現在任何一個物件中。
所有匯出類型通用的欄位清單
屬性圖匯出的欄位清單
RDF 匯出的欄位清單
所有匯出類型通用的欄位
params
中的 cloneCluster
欄位
(選用)。預設:false
。
如果 cloneCluster
參數設為 true
,則匯出程序會使用資料庫叢集的快速複製:
"cloneCluster" : true
依預設,匯出程序會從您使用 endpoint
、endpoints
或 clusterId
參數指定的資料庫叢集中匯出資料。不過,如果您的資料庫叢集在匯出進行時使用中,且資料正在變更,則匯出程序無法保證要匯出之資料的一致性。
若要確保匯出的資料一致,請改用 cloneCluster
參數,從資料庫叢集的靜態複製進行匯出。
複製的資料庫叢集是在與來源資料庫叢集相同的 VPC 中建立的,並繼承來源的安全群組、子網路群組和 IAM 資料庫身分驗證設定。匯出完成時,Neptune 會刪除複製的資料庫叢集。
根據預設,複製的資料庫叢集由與來源資料庫叢集中主要執行個體具有相同執行個體類型的單一執行個體組成。您可以變更用於所複製資料庫叢集的執行個體類型,方法為使用 cloneClusterInstanceType
指定不同的執行個體類型。
注意
如果您沒有使用 cloneCluster
選項,而且要直接從主資料庫叢集匯出,則可能需要增加要從中匯出資料之執行個體上的逾時。對於大型資料集,逾時應設定為數小時。
params
中的 cloneClusterInstanceType
欄位
(選用)。
如果 cloneCluster
參數存在且設為 true
,您可以使用 cloneClusterInstanceType
參數,指定用於所複製資料庫叢集的執行個體類型:
根據預設,複製的資料庫叢集由與來源資料庫叢集中主要執行個體具有相同執行個體類型的單一執行個體組成。
"cloneClusterInstanceType" : "
(for example, r5.12xlarge)
"
params
中的 cloneClusterReplicaCount
欄位
(選用)。
如果 cloneCluster
參數存在且設為 true
,則您可以使用 cloneClusterReplicaCount
參數,指定所複製資料庫叢集中建立的僅供讀取複本數目:
"cloneClusterReplicaCount" :
(for example, 3)
根據預設,複製的資料庫叢集由單一主要執行個體組成。cloneClusterReplicaCount
參數可讓您指定應該建立多少個僅供讀取複本執行個體。
params
中的 clusterId
欄位
(選用)。
clusterId
參數會指定要使用之資料庫叢集的 ID:
"clusterId" : "
(the ID of your DB cluster)
"
如果您使用 clusterId
參數,則匯出程序會使用該資料庫叢集中的所有可用執行個體來擷取資料。
注意
endpoint
、endpoints
和 clusterId
參數互斥。僅使用其中一個。
params
中的 endpoint
欄位
(選用)。
使用 endpoint
來指定資料庫叢集中 Neptune 執行個體的端點,匯出程序可以查詢該資料庫叢集來擷取資料 (請參閱 端點連線)。這僅是 DNS 名稱,不包括通訊協定或連接埠:
"endpoint" : "
(a DNS endpoint of your DB cluster)
"
使用叢集或執行個體端點,但不使用主讀取器端點。
注意
endpoint
、endpoints
和 clusterId
參數互斥。僅使用其中一個。
params
中的 endpoints
欄位
(選用)。
使用 endpoints
來指定資料庫叢集中端點的 JSON 陣列,匯出程序可以查詢該資料庫叢集來擷取資料 (請參閱 端點連線)。這些僅是 DNS 名稱,不包括通訊協定或連接埠:
"endpoints": [ "
(one endpoint in your DB cluster)
", "(another endpoint in your DB cluster)
", "(a third endpoint in your DB cluster)
" ]
如果您的叢集中有多個執行個體 (主要和一個或多個僅供讀取複本),則您可以使用 endpoints
參數,將查詢分發到這些端點的清單,以改善匯出效能。
注意
endpoint
、endpoints
和 clusterId
參數互斥。僅使用其中一個。
params
中的 profile
欄位
(必須匯出 Neptune ML 的訓練資料,除非 neptune_ml
欄位存在於 additionalParams
欄位)。
profile
參數為特定工作負載提供幾組預先設定的參數。目前,匯出程序僅支援 neptune_ml
設定檔
如果您要匯出 Neptune ML 的訓練資料,請將下列參數新增至 params
物件:
"profile" : "neptune_ml"
params
中的 useIamAuth
欄位
(選用)。預設:false
。
如果要從中匯出資料的資料庫已啟用 IAM 身分驗證,則您必須將 useIamAuth
參數設為 true
:
"useIamAuth" : true
params
中的 includeLastEventId
欄位
如果您將 includeLastEventId
設為 true,且您要從中匯出資料的資料庫已啟用 Neptune 串流,則匯出程序會將 lastEventId.json
檔案寫入至您指定的匯出位置。此檔案包含串流中最後一個事件的 commitNum
和 opNum
。
"includeLastEventId" : true
由匯出程序建立的複製資料庫會繼承其父項的串流設定。如果父項已啟用串流,複製也會同樣啟用串流。複製上的串流內容將會反映建立複製時的父項內容 (包括相同的事件 ID)。
屬性圖匯出的欄位
params
中的 concurrency
欄位
(選用)。預設:4
。
concurrency
參數會指定匯出程序應該使用的平行查詢數目:
"concurrency" :
(for example, 24)
一個好的指導方針是將並行層級設定為所有執行個體上 vCPU 數目的兩倍,而您要從這些執行個體中匯出資料。例如,一個 r5.xlarge 執行個體具有 4 個 vCPU。如果您要從 3 個 r5.xlarge 執行個體組成的叢集匯出,則可以將並行層級設為 24 (= 3 x 2 x 4)。
如果您使用的是 Neptune-Export 服務,則並行層級會受到 JobSize 設定的限制。例如,小型工作支援並行層級 8。如果您嘗試使用 concurrency
參數,為小型工作指定並行層級 24,則有效層級保持在 8。
如果您從複製的叢集匯出,匯出程序會根據複製的執行個體大小和工作大小來計算適當的並行層次。
params
中的 edgeLabels
欄位
(選用)。
使用 edgeLabels
僅匯出這些具有所指定標籤的邊緣:
"edgeLabels" : ["
(a label)
", "(another label
"]
JSON 陣列中的每個標籤都須是單一的簡單標籤。
scope
參數的優先順序高於 edgeLabels
參數,因此如果 scope
值不包括邊緣,則 edgeLabels
參數沒有任何作用。
params
中的 filter
欄位
(選用)。
使用 filter
指定僅應該匯出具有特定標籤的節點和/或邊緣,並篩選針對每個節點或邊緣匯出的屬性。
filter
物件的一般結構 (無論是內嵌還是篩選器組態檔案) 如下所示:
"filter" : { "nodes": [
(array of node label and properties objects)
], "edges": [(array of edge definition an properties objects)
] }
-
nodes
– 包含節點和節點屬性的 JSON 陣列,其形式如下:"nodes : [ { "label": "
(node label)
", "properties": [ "(a property name)
", "(another property name)
",( ... )
] } ]-
label
– 節點的一或多個屬性圖標籤。採用單一值,或者,如果節點具有多個標籤,則採用值陣列。
-
properties
– 包含您要匯出之節點屬性的名稱陣列。
-
-
edges
– 包含邊緣定義的 JSON 陣列,其形式如下:"edges" : [ { "label": "
(edge label)
", "properties": [ "(a property name)
", "(another property name)
",( ... )
] } ]label
– 邊緣的屬性圖標籤。採用單一值。properties
– 包含您要匯出之邊緣屬性的名稱陣列。
params
中的 filterConfigFile
欄位
(選用)。
使用 filterConfigFile
以 filter
參數採用的相同形式指定包含篩選器組態的 JSON 檔案:
"filterConfigFile" : "s3://
(your Amazon S3 bucket)
/neptune-export/(the name of the JSON file)
"
如需 filterConfigFile
檔案的格式,請參閱 篩選條件。
params
中用於屬性圖資料的 format
欄位
(選用)。預設值:csv
(逗號分隔值)
format
參數會指定所匯出屬性圖資料的輸出格式:
"format" :
(one of: csv, csvNoHeaders, json, neptuneStreamsJson)
-
csv
– 逗號分隔值 (CSV) 格式化的輸出,具有根據 Gremlin 載入資料格式進行格式化的資料行標頭。 -
csvNoHeaders
– 沒有資料列標頭的 CSV 格式化資料。 -
json
– JSON 格式化資料。 -
neptuneStreamsJson
– 使用 GREMLIN_JSON 變更序列化格式的 JSON 格式化資料。
params
中的 gremlinFilter
欄位
(選用)。
gremlinFilter
參數可讓您提供 Gremlin 程式碼片段,例如用來同時篩選節點和邊緣的 has()
步驟:
"gremlinFilter" :
(a Gremlin snippet)
欄位名稱和字串值應以逸出雙引號括住。對於日期和時間,您可以使用 datetime 方法。
下列範例只會匯出這些其日期建立屬性值大於 2021-10-10 的節點和邊緣:
"gremlinFilter" : "has(\"created\", gt(datetime(\"2021-10-10\")))"
params
中的 gremlinNodeFilter
欄位
(選用)。
gremlinNodeFilter
參數可讓您提供 Gremlin 程式碼片段,例如用來篩選節點的 has()
步驟:
"gremlinNodeFilter" :
(a Gremlin snippet)
欄位名稱和字串值應以逸出雙引號括住。對於日期和時間,您可以使用 datetime 方法。
下列範例只會匯出這些其 deleted
布林屬性值為 true
的節點:
"gremlinNodeFilter" : "has(\"deleted\", true)"
params
中的 gremlinEdgeFilter
欄位
(選用)。
gremlinEdgeFilter
參數可讓您提供 Gremlin 程式碼片段,例如用來篩選邊緣的 has()
步驟:
"gremlinEdgeFilter" :
(a Gremlin snippet)
欄位名稱和字串值應以逸出雙引號括住。對於日期和時間,您可以使用 datetime 方法。
下列範例只會匯出這些其 strength
數值屬性值為 5 的邊緣:
"gremlinEdgeFilter" : "has(\"strength\", 5)"
params
中的 nodeLabels
欄位
(選用)。
使用 nodeLabels
僅匯出這些具有所指定標籤的節點:
"nodeLabels" : ["
(a label)
", "(another label
"]
JSON 陣列中的每個標籤都須是單一的簡單標籤。
scope
參數的優先順序高於 nodeLabels
參數,因此如果 scope
值不包括節點,則 nodeLabels
參數沒有任何作用。
params
中的 scope
欄位
(選用)。預設:all
。
scope
參數會指定僅匯出節點、僅匯出邊緣,還是同時匯出節點和邊緣:
"scope" :
(one of: nodes, edges, or all)
nodes
– 僅匯出節點及其屬性。edges
– 僅匯出邊緣及其屬性。all
– 同時匯出節點和邊緣及其性質 (預設值)。
RDF 匯出的欄位
params
中用於 RDF 資料的 format
欄位
(選用)。預設:turtle
format
參數會指定所匯出 RDF 資料的輸出格式:
"format" :
(one of: turtle, nquads, ntriples, neptuneStreamsJson)
-
turtle
– Turtle 格式化輸出。 -
nquads
– 沒有資料列標頭的 N-Quads 格式化資料。 -
ntriples
– N-Triples 格式化資料。 -
neptuneStreamsJson
– 使用 SPARQL NQUADS 變更序列化格式的 JSON 格式化資料。
params
中的 rdfExportScope
欄位
(選用)。預設:graph
。
rdfExportScope
參數會指定 RDF 匯出的範圍:
"rdfExportScope" :
(one of: graph, edges, or query)
graph
– 匯出所有 RDF 資料。edges
– 僅匯出這些代表邊緣的三元組。query
– 匯出使用sparql
欄位提供之 SPARQL 查詢所擷取的資料。
params
中的 sparql
欄位
(選用)。
sparql
參數可讓您指定 SPARQL 查詢以擷取要匯出的資料:
"sparql" :
(a SPARQL query)
如果使用 sparql
欄位提供查詢,您也必須將 rdfExportScope
欄位設為 query
。
params
中的 namedGraph
欄位
(選用)。
此namedGraph
參數可讓您指定 IRI,將匯出限制為單一具名圖形:
"namedGraph" :
(Named graph IRI)
namedGraph
參數只能與設定為的rdfExportScope
欄位一起使用graph
。