[JAVA] Comment utiliser OrientJS et OrientDB ensemble

Dans ce didacticiel, nous allons configurer ** OrientDB ** sur ** Alibaba Cloud ** et explorer comment utiliser OrientJS avec ** OrientDB **.

Conditions préalables

Ce tutoriel est de difficulté moyenne. Par conséquent, ce didacticiel nécessite des connaissances de base pertinentes. C'est également une bonne idée de faire quelques réglages avant de poursuivre ce didacticiel. Plus précisément, vous avez besoin des éléments suivants:

  1. Fonctions de l'interface de ligne de commande Linux Compréhension générale de.
  2. Compréhension générale du [groupe de sécurité ECS] d'Alibaba Cloud (https://www.alibabacloud.com/help/doc-detail/25387.htm?spm=a2c65.11461447.0.0.4e462b3eZyH0hD). 3, Java (en particulier la version 1.7 ou ultérieure) est installé et les variables d'environnement associées sont également définies. Étant. 4, Compréhension générale de JavaScript.

Installation d'OrientDB sur Alibaba Cloud ECS

La première étape de ce didacticiel consiste à créer une instance Alibaba Cloud Elastic Compute Service (ECS) (https: //www.alibabacloud. com / help / ja / doc-detail / 25424.htm # task_zjx_p1f_5db) Doit être. Dans ce didacticiel, vous allez installer Ubuntu et créer une instance ECS avec un processeur à un cœur et 512 Mo de mémoire. Ensuite, utilisez SSH ou connectez-vous à l'instance via la console Alibaba Cloud. Si vous ne savez pas encore comment faire cela, consultez ce guide (https://www.alibabacloud.com/help/ja/doc-detail/25425.htm).

Ensuite, vous devez installer le package binaire approprié. Tout d'abord, téléchargez la dernière version stable de OrientDB. Sinon, au lieu de télécharger manuellement à partir du site Web, utilisez la commande suivante pour télécharger OrientDB 3.0.21 Vous pouvez également l'essayer.

curl  https://s3.us-east-2.amazonaws.com/orientdb3/releases/3.0.21/orientdb-3.0.21.tar.gz

Lorsque le téléchargement est terminé, vous trouverez un fichier zip nommé ʻorientdb-3.0.21.tar.gz` dans le répertoire où vous avez entré la commande curl pour la première fois. Ensuite, décompressez le contenu du fichier zip et accédez au répertoire approprié sous la variable d'environnement «ORIENTDB_HOME». Les commandes correspondantes selon la version actuelle sont les suivantes.

--tar -xvzf orientdb-3.0.21.tar.gz: Décompressez le dossier. --cp -r orientdb-3.0.21 / opt: Utilisé pour copier le dossier entier dans le répertoire / opt. Le contenu de / etc / environment est le suivant.

JAVA_HOME=/usr/lib/jvm/java-8-oracle
ORIENTDB_HOME=/opt/orientdb-3.0.21
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games :$ORIENTDB_HOME/bin" 

Si vous avez installé Java 1.7 ou version ultérieure, ce qui est une condition préalable à ce didacticiel, et que vous avez ajouté de l'espace d'échange à votre instance installée par Ubuntu, c'est-à-dire votre nouveau serveur d'instance et pas encore installé.

Remarque: Après la mise à jour d'OrientDB, ce fichier doit être obtenu si nécessaire pour rendre le nouveau fichier exécutable OrientDB disponible dans le terminal. La commande à utiliser pour cela est: source / etc / environment.

Entrez maintenant l'emplacement du répertoire OrientDB de ʻORIENTDB_HOME au lieu de ʻORIENTDB_DIR (bien sûr ʻORIENTDB_HOME) et l'utilisateur système que vous voulez utiliser à la place de ʻUSER_YOU_WANT_ORIENTDB_RUN_WITH, et trouvez ʻORIENTDB_HOME / bin. Vous devez éditer le fichier sh`.

Avec l'installation d'OrientDB entièrement fonctionnelle, vous pouvez contrôler le serveur OirentDB avec la commande suivante:

--ʻOrientdb.sh status: Utilisé pour vérifier si le serveur est en cours d'exécution. --ʻOrientdb.sh start: Utilisé pour démarrer le serveur OrientDB. --ʻOrientdb.sh stop`: Utilisé pour arrêter OrientDB.

Dans la plupart des cas, une installation très sécurisée est requise dans un environnement de production. Cela signifie que vous avez besoin d'une installation OrientDB sécurisée afin qu'aucun utilisateur ne soit autorisé à démarrer ou arrêter la base de données de sa propre initiative. Par conséquent, dans le fichier ʻOrientDB bin / orientdb.sh, vous pouvez entrer l'utilisateur admin au lieu de ʻUSER_YOU_WANT_ORIENTDB_RUN_WITH. Cela signifie qu'en tant qu'administrateur, vous serez le seul utilisateur avec tous les droits sur les commandes les plus sensibles d'OriendDB.

Pour en savoir plus sur ce genre de choses, consultez la documentation OrientDB (http://orientdb.com/docs/3.0.x/?spm=a2c65.11461447.0.0.4e462b3eZyH0hD).

Maintenant que nous avons fait tout cela, passons à autre chose. Vous pouvez tester l'installation en exécutant la commande ʻorientdb.sh start. Vous pouvez accéder au portail, en particulier à OrientDB Studio, depuis http: // our_ecs_ip: 2480 ou http: // localhost: 2480`, comme indiqué dans la capture d'écran ci-dessous.

image.png

Pour vous connecter à OrientDB et accéder au tableau de bord, cliquez ici (https://orientdb.com/docs/2.0/orientdb.wiki/Security.html?spm=a2c65.11461447.0.0.4e462b3eZyH0hD#orientdb-server Vous devez définir l'utilisateur à la fin du fichier $ ORIENTDB_HOME / config / oritdenb-server-config.xml comme décrit dans -security).

Ensuite, n'oubliez pas de définir le groupe de sécurité d'instance sur le port 2480 (port OrientDB Studio).

Remarque: Doit être configuré pour un accès externe.

Vous trouverez ci-dessous la sortie des paramètres de l'instance de test.

image.png

Paramètres OrientJs

Le module OrientJS d'OrientDB peut être écrit en tant que pilote OrientDB officiel pour les projets JavaScript. Il est largement utilisé par les développeurs NodeJS. Bien sûr, comme tout autre package, vous n'avez besoin que d'une seule commande pour installer à l'aide du node package manager .. Plus précisément, pour installer localement, exécutez la commande npm install orientjs.

Et une fois OrientJS installé et initialisé, vous pourrez:

Initialisation d'OrientJS

La première étape pour faire fonctionner ensemble OrientJS et OrientDB consiste à initialiser l'API du serveur. Cela est important pour permettre à OreintJS d'interagir avec l'API serveur d'OrientDB. En effet, l'utilisateur de la base de données doit être connecté à l'hôte du serveur OrientDB et à son port.

// Initializing the Server API
var server = OrientDB({
  host:       'localhost',
  port:       2424,
  username:   'admin',
  password:   'admin'
});

Remarque: Dans ce cas, nous utilisons ʻadmin: admin` pour les informations d'identification de l'utilisateur. Cependant, cela doit être modifié par les informations d'identification correspondantes définies dans le fichier de configuration OrientDB.

Liste des bases de données

L'étape suivante de ce didacticiel consiste à exécuter une seule requête à l'aide d'OrientJS pour répertorier toutes les bases de données que vous avez créées jusqu'à présent. Ceci est suivi de l'affichage du nom et du type de chaque base de données, qui renverrait normalement un objet DB.

// Databases listing
server.list()
  .then(list => {
    console.log(list.length + ' databases created so far');

    list.forEach(db => {
      console.log(db.name + ' - ' + db.type);
    });
  });

Créer une base de données

Passons maintenant à la création de la base de données à partir de l'API du serveur. C'est relativement facile. Vous pouvez également le faire avec une seule commande qui renvoie un rendez-vous avec l'objet de base de données que vous venez de créer.

Voici le contenu des types OrientJs liés à la fonction Create.

/**
 * Create a database with the given name / config.
 *
 * @param  config The database name or configuration object.
 * @promise {Db}                  The database instance
 */
create(name: string | DbConfig): Promise<Db>;

Il est précisé que l'opération de création est terminée en fournissant à cette fonction un objet de configuration ou simplement le nom de la base de données. Cependant, dans le second cas illustré ci-dessous, la valeur par défaut sera choisie pour le champ manquant. Cette section décrit comment créer une base de données à l'aide d'objets de configuration.

// Creating a database
server.create({
    name:     'NewDatabase',
    type:     'graph',
    storage:  'plocal',
  }).then(dbCreated => {
    console.log('Database ' + dbCreated.name + ' created successfully');
  });

Utiliser la base de données existante

Une fois la base de données créée, vous pouvez récupérer l'instance ultérieurement pour en faire plus. Pour initialiser une instance de la base de données, utilisez la méthode suivante.

var db = server.use('NewDatabase');

À partir de la version 2.1.11, vous pouvez également utiliser la classe ODatabase pour initialiser l'API serveur et vous connecter immédiatement à la base de données. La syntaxe pour cela est la suivante:

var ODatabase = require('orientjs').ODatabase;
var db = new ODatabase({
  host:     'localhost',
  port:     2424,
  username: 'admin',
  password: 'admin',
  name:     'NewDatabase'
});

console.log('Connected to: ' + db.name);

Enregistrer l'API

Une fois l'instance de base de données initialisée, les enregistrements stockés, c'est-à-dire les informations stockées dans la base de données, peuvent être récupérés et manipulés à l'aide de l'ID d'enregistrement (RID) () de la base de données.

Remarque: L'ID d'enregistrement est une valeur unique, vous n'avez donc pas besoin de créer un autre champ qui référence la clé primaire, comme vous le feriez dans une base de données relationnelle SQL classique.

La syntaxe de l'ID d'enregistrement est la suivante. Il devient «# : ». Pour ce code

--cluster: fonctionne comme un identificateur de cluster. Cela fait directement référence à l'enregistrement de cluster auquel appartient le cluster. Les valeurs positives pour ce paramètre indiquent des enregistrements permanents et les valeurs négatives indiquent des enregistrements temporaires. --position: spécifie la position absolue de l'enregistrement dans le cluster. Ici, spécifions le RID de l'enregistrement pour obtenir un enregistrement.

db.record.get('#1:1')
  .then(
    function(article) {
        console.log('Loaded article:', article);
      }
  );

Maintenant que nous avons le dossier, jetons un coup d'œil à certaines opérations. La première est l'opération de suppression. En général, la suppression d'un enregistrement est relativement simple et peut être effectuée avec le code suivant:

db.record.delete('#1:1');

Vient ensuite l'opération de mise à jour. La mise à jour de l'enregistrement est un peu compliquée, mais ça me convient toujours. Vous pouvez le faire après le chargement des données correspondantes que vous souhaitez mettre à jour. Ce qui suit montre comment implémenter la fonction de mise à jour.

db.record.get('#1:1')
  .then(function(article) {
    article.title = 'New Title';
    db.record.update(article)
      .then(function() {
        console.log("Article updated successfully");
      });
  });

Remarque: tenez compte des éléments suivants lorsque vous utilisez ce code:

- The an asterisk (#) prefix is required to recognize a Record ID.
- When creating a new record, OrientDB selects the cluster to store it using a configurable strategy, which can be the default strategy, the round-robin one, or a balanced or local strategy.
- Also, note that, in our example, #1:1 represents the RID. 

API de classe

Les objets dérivés de la base de données sont spécialement utilisés pour accéder, créer et manipuler des classes. Plus précisément, lorsque nous disons «classe», nous entendons «db.class». Par exemple, voici une méthode pour créer une classe.

// Creating a new class(Article) using the Class API
var Article = db.class.create('Article');

Pour obtenir une classe existante:

var Article = db.class.get('Article');

Notez que toutes ces promesses sont de retour. Une fois la promesse résolue, le style sera plus conscient d'agir. Pour renvoyer une liste de toutes les classes stockées dans la base de données actuellement connectée, appliquez le code suivant.

// List all the database classes
db.class.list()
  .then(
    function(classes){
      console.log(classes.length + ' existing classes into ' + db.name);

      classes.forEach(cl => {
        console.log(cl.name);
      });
    }
  );

Vient ensuite l'opération de création. La création de classes est quelque chose que vous devez savoir avant de concevoir entièrement la structure de votre base de données. Nous devons charger correctement la classe avec laquelle nous travaillons avant de manipuler les propriétés.

La liste des propriétés de la classe Article est la suivante:

db.class.get('Article').then(function(Article) {
  Article.property.list()
  .then(
    function(properties) {
       console.log(Article.name + ' has the properties: ', properties);
    }
 );
});

La création de propriété se fait à peu près de la même manière.

db.class.get('Article').then(function(Article) {
  Article.property.create([{
    name: 'title',
    type: 'String'
  },{
    name: 'content',
    type: 'String'
  }]).then(
    function(properties) {
      console.log("Successfully created properties");
    }
  );
});

Il vous suffit de définir une propriété pour la classe. Vous n'avez pas besoin de définir de nombreuses propriétés. Maintenant, effectuons quelques actions.

Tout d'abord, supprimons la propriété par son nom.

db.class.get('Article').then(function(Article) {
  Article.property.drop('peroperty_to_drop').then(function(){
    console.log('Property deleted successfully.');
 });
});

Ensuite, changeons le nom de la propriété.

db.class.get('Article').then(function(Article) {
  Article.property.rename('old_name', 'new_name').then(function(p) {
    console.log('Property renamed successfully');
 });
});

Pour plus d'informations sur l'API de classe, consultez ce document (https://orientdb.com/docs/last/OrientJS-Class-Classes.html?spm=a2c65.11461447.0.0.4e462b3eZyH0hD).

Requête dans OrientDB

Les requêtes sont l'une des opérations les plus importantes fournies par le moteur de base de données pour mieux gérer vos données, et OrientDB vous permet d'interroger de deux manières. Exécutez la requête SQL directement ou utilisez Query Builder pour créer implicitement la requête dans NodeJs. est.

// Find articles viewed 200 times
var numberViews = 200;
db.query(
   'SELECT title, content FROM Article '
   + 'WHERE number_views = :numberViews,
   { params: { numberViews: numberViews, } }
).then(function(articles) {
   console.log(articles);
});

La requête ci-dessus recherche un article qui a été consulté 200 fois. Cette requête est relativement facile à exécuter. Un moyen de profiter de cette possibilité pour émettre des instructions au moteur est d'utiliser une syntaxe SQL plus intéressante en utilisant des opérateurs tels que AND, OR, LIKE. Cette possibilité (plus facile) d'utiliser des requêtes paramétriques plutôt que de concaténer des sous-chaînes de requêtes et des paramètres pour construire complètement une chaîne SQL. En savoir plus sur la syntaxe SQL d'OrientDB ici.

Au lieu d'écrire une requête SQL complète, vous pouvez utiliser le Générateur de requêtes à la place. Query Builder (https://querybuilder.js.org/?spm=a2c65.11461447.0.0.4e462b3eZyH0hD) vous permet d'appeler des méthodes spécifiques qui interrogent en interne via des actions d'API de base de données. Faire. Ici, nous exécutons la même requête dans Query Builder que dans SQL.

var numberViews = 200;
var query = db.select('title, content').from('Article')
  .where({ "number_views": numberViews })
  .all();

informations sur l'événement

Dans OrientDB, les événements agissent comme des méthodes de rappel et peuvent être exécutés à la fin ou au début d'une requête. Les événements sont utiles pour le débogage des requêtes et pour effectuer des tâches spéciales telles que la journalisation, le profilage et la coordination des données. L'événement dépend de la base de données. Autrement dit, chaque événement est attaché à une seule base de données et vous devez utiliser l'API de base de données pour le créer. Si vous souhaitez utiliser cette API, utilisez la fonction db.on (). L'exemple suivant utilise l'événement «BeginQuery» pour consigner toutes les requêtes envoyées au serveur OrientDB. (Vous pouvez également utiliser ʻendQuery` pour terminer la requête).

db.on("beginQuery", function(queryObj) {
  console.log('DEBUG: ', queryObj);
});

Conclusion

Dans ce tutoriel, nous avons vu comment configurer OrientDB sur une instance Alibaba Cloud ECS, mais nous avons également exploré comment utiliser OrientJS avec OrientDB.

Recommended Posts

Comment utiliser OrientJS et OrientDB ensemble
Comment utiliser @Builder et @NoArgsConstructor ensemble
Comment utiliser StringBurrer et Arrays.toString.
Comment utiliser EventBus3 et ThreadMode
Comment utiliser l'égalité et l'égalité (comment utiliser l'égalité)
Comment configurer et utiliser kapt
Comment utiliser les méthodes substring et substr
Comment utiliser Map
Comment utiliser rbenv
Comment utiliser with_option
Comment utiliser fields_for
Comment utiliser java.util.logging
Comment utiliser la carte
Comment utiliser collection_select
Comment utiliser Twitter4J
Comment utiliser active_hash! !!
Comment utiliser MapStruct
Comment utiliser TreeSet
[Comment utiliser l'étiquette]
Comment utiliser l'identité
Comment utiliser le hachage
Comment utiliser Dozer.mapper
Comment utiliser Gradle
Comment utiliser org.immutables
Comment utiliser java.util.stream.Collector
Comment utiliser VisualVM
Comment utiliser Map
[Java] Comment utiliser la classe FileReader et la classe BufferedReader
[Ruby] Comment utiliser la méthode gsub et la sous-méthode
Comment utiliser le contrôle segmenté et les points à noter
Comment utiliser la portée et le traitement des passes (servist)
[Java] Comment utiliser la classe Calendar et la classe Date
Comment utiliser l'API Chain
[Rails] Comment utiliser enum
Comment utiliser java Facultatif
Comment utiliser JUnit (débutant)
Comment utiliser le retour Ruby
[Rails] Comment utiliser enum
Comment utiliser @Builder (Lombok)
Comment utiliser la classe Java
Comment utiliser Big Decimal
[Java] Comment utiliser removeAll ()
Comment utiliser String [] args
Comment utiliser la jonction de rails
Comment utiliser Java Map
Ruby: Comment utiliser les cookies
Comment utiliser Dependant :: Destroy
Comment utiliser Eclipse Debug_Shell
Comment utiliser Apache POI
[Rails] Comment utiliser la validation
Comment utiliser les variables Java
[Rails] Comment utiliser authenticate_user!