Utilisez Maxgraph Writer pour importer en masse des données depuis les tables MaxCompute vers une instance de graphe Maxgraph. Maxgraph Writer est un plug-in d'intégration de données DataWorks qui prend en charge l'importation distincte des sommets et des arêtes.
Limites
Maxgraph Writer prend uniquement en charge le mode script.
Maxgraph Writer sert principalement à synchroniser les données de MaxCompute vers Maxgraph.
Prérequis
Avant de commencer, vérifiez que vous disposez des éléments suivants :
Le nom du compte de build Maxgraph (contactez votre administrateur Maxgraph pour l'obtenir)
Les autorisations de lecture accordées au compte de build sur la table MaxCompute source
Importer des données de MaxCompute vers Maxgraph
Maxgraph Writer utilise exclusivement le mode script. Pour configurer une tâche de synchronisation, consultez Configurer une tâche en mode script.
La configuration d'importation diffère selon qu'il s'agit de sommets ou d'arêtes. Choisissez la section correspondant à votre cas d'usage.
Importer des sommets
L'exemple suivant importe des sommets « person » depuis une table MaxCompute. Le tableau column du lecteur et le tableau column de l'outil d'écriture doivent respecter le même ordre : chaque position correspond à un mappage un-à-un.
{
"job": {
"setting": {
"speed": {
"channel": 1
},
"errorLimit": {
"record": 1000
}
},
"content": [
{
"reader": {
"name": "odpsreader",
"parameter": {
"accessId": "*****",
"accessKey": "*****",
"project": "maxgraph_dev",
"table": "maxgraph_demo_person",
"column": [
"id",
"name",
"age"
],
"packageAuthorizedProject": "biggraph_dev",
"splitMode": "record",
"odpsServer": "******"
}
},
"writer": {
"name": "maxgraphwriter",
"parameter": {
"endpoint": "http://graph.alibaba.net",
"graphName": "xxx",
"accessId": "xxx",
"accessKey": "xxx",
"label": "person",
"labelType": "vertex",
"onlineMode": "partition",
"splitSize": "256",
"column": [
"id",
"name",
"age"
]
}
}
}
]
}
}
Importer des arêtes
L'exemple suivant importe des arêtes knows entre des sommets person . Chaque entrée du tableau column de l'outil d'écriture est un objet comportant un name (le nom de la propriété dans le graphe) et un propertyType qui identifie si elle correspond à la clé primaire du sommet source, à la clé primaire du sommet de destination ou à une propriété d'arête.
{
"job": {
"setting": {
"speed": {
"channel": 1
},
"errorLimit": {
"record": 1000
}
},
"content": [
{
"reader": {
"name": "odpsreader",
"parameter": {
"accessId": "*****",
"accessKey": "*****",
"project": "maxgraph_dev",
"table": "maxgraph_demo_knows",
"column": [
"person_id",
"person_id2",
"weight",
"id"
],
"packageAuthorizedProject": "biggraph_dev",
"splitMode": "record",
"odpsServer": "****"
}
},
"writer": {
"name": "maxgraphwriter",
"parameter": {
"endpoint": "http://graph.alibaba.net",
"graphName": "xxx",
"accessId": "xxx",
"accessKey": "xxx",
"label": "knows",
"labelType": "edge",
"srcLabel": "person",
"dstLabel": "person",
"onlineMode": "partition",
"splitSize": "256",
"column": [
{
"name": "id",
"propertyType": "srcPrimaryKey"
},
{
"name": "id",
"propertyType": "dstPrimaryKey"
},
{
"name": "weight",
"propertyType": "edgeProperty"
},
{
"name": "id",
"propertyType": "edgeProperty"
}
]
}
}
}
]
}
}
Paramètres de l'outil d'écriture
Paramètres communs
| Paramètre | Description | Obligatoire | Valeur par défaut |
|---|---|---|---|
endpoint |
L'URL de Maxgraph. | Oui | Aucune |
graphName |
Le nom de l'instance de graphe. | Oui | Aucune |
accessId |
Le nom d'utilisateur. | Oui | Aucune |
accessKey |
Le mot de passe de l'utilisateur. | Oui | Aucune |
label |
Le nom du libellé du sommet ou de l'arête à importer. | Oui | Aucune |
labelType |
Le type d'entité de graphe à importer. Utilisez vertex lors de l'importation de sommets ; utilisez edge lors de l'importation d'arêtes. |
Oui | Aucune |
splitSize |
La taille du shard (en Mo) pour le job MapReduce lors de la création des données. | Non | 256 |
onlineMode |
Le mode de publication. Voir Choisir un mode de publication. | Non | type |
Paramètres des sommets
Utilisez ces paramètres lorsque labelType est défini sur vertex.
| Paramètre | Description | Obligatoire | Valeur par défaut |
|---|---|---|---|
column |
Une liste ordonnée des noms de propriétés des sommets. L'ordre doit correspondre à la liste column du lecteur. |
Oui | Aucune |
Paramètres des arêtes
Utilisez ces paramètres lorsque labelType est défini sur edge.
| Paramètre | Description | Obligatoire | Valeur par défaut |
|---|---|---|---|
srcLabel |
Le libellé du sommet source. | Oui | Aucune |
dstLabel |
Le libellé du sommet de destination. | Oui | Aucune |
column |
Une liste ordonnée d'objets de propriété. Chaque objet spécifie un name (le nom de la propriété dans le graphe) et un propertyType. |
Oui | Aucune |
name |
Le nom de la propriété dans le graphe, défini dans chaque entrée column . |
Oui | Aucune |
propertyType |
Le rôle de la propriété dans le graphe. Valeurs valides : srcPrimaryKey (clé primaire du sommet source), dstPrimaryKey (clé primaire du sommet de destination), edgeProperty (propriété d'arête ; facultatif lorsque l'arête n'a pas de propriétés). |
Oui | Aucune |
Choisir un mode de publication
Le paramètre onlineMode contrôle la manière dont Maxgraph publie les données importées. Effectuez votre choix en fonction de la capacité de vos requêtes à tolérer une fenêtre de données mixtes (anciennes et nouvelles) pendant la publication.
| Mode | Comportement pendant la publication | Vitesse | Cas d'usage |
|---|---|---|---|
partition |
Les requêtes peuvent renvoyer un mélange de données anciennes et nouvelles. La cohérence à terme est garantie. | Plus rapide | La fraîcheur des données est moins critique et vous souhaitez réduire la durée des jobs d'importation. |
type |
Les requêtes ne renvoient que les anciennes données jusqu'à la fin de la publication. | Plus lente | Les requêtes ne doivent jamais voir de données partiellement publiées. |