Utiliser la console pour extraire des données

Découvrez comment afficher et télécharger des données de table Oracle NoSQL Database Cloud Service à l'aide de la console.

Cet article comprend les rubriques suivantes :

Visualisation des données des tables

Découvrez comment visualiser les données dans des tables Oracle NoSQL Database Cloud Service à partir de la console NoSQL.

Pour afficher les données d'une table, procédez comme suit :
  1. Accédez à la console NoSQL à partir de la console d'infrastructure. Reportez-vous à la section Accessing the Service from the Infrastructure Console.
  2. La console NoSQL répertorie toutes les tables dans la location. Pour afficher les détails d'une table, effectuez l'une des opérations suivantes :
    • Cliquer sur le nom de la table.
    • Cliquez sur le menu d'action correspondant au nom de la table et sélectionnez Afficher les détails.
    La page Détails de la table s'ouvre.
  3. Sur la page Détails de la table, sélectionnez l'onglet Explorer les données sous Ressources.
  4. Par défaut, le texte de requête est rempli avec une requête SQL qui extrait tous les enregistrements de la table. Vous pouvez remplacer cette requête par toute instruction SQL valide pour Oracle NoSQL. Vous pouvez obtenir une erreur indiquant que votre instruction est incomplète ou défectueuse. Reportez-vous à Débogage des erreurs d'instruction SQL dans la console OCI pour en savoir plus sur les erreurs possibles dans la console OCI et sur la façon de les corriger. Reportez-vous au Guide des développeurs pour obtenir des exemples de requête SQL.
  5. Cliquez sur Exécuter.
    Les données de la table sont affichées dans la section Enregistrements.
  6. Pour afficher le plan d'exécution de requête de la requête SQL qui a été exécutée, cliquez sur Afficher le plan d'exécution de requête. Le plan d'exécution détaillé des requêtes s'affiche dans une nouvelle fenêtre.

Téléchargement de données de table

Découvrez comment télécharger des données dans des tables Oracle NoSQL Database Cloud Service à partir de la console NoSQL.

Pour télécharger des données de table, procédez comme suit :
  1. Accédez à la console NoSQL à partir de la console d'infrastructure. Reportez-vous à la section Accessing the Service from the Infrastructure Console.
  2. La console NoSQL répertorie toutes les tables dans la location. Pour afficher les détails d'une table, effectuez l'une des opérations suivantes :
    • Cliquer sur le nom de la table.
    • Cliquez sur le menu d'action correspondant au nom de la table et sélectionnez Afficher les détails.
    La page Détails de la table s'ouvre.
  3. Sur la page Détails de la table, sélectionnez l'onglet Explorer les données sous Ressources.
  4. Par défaut, le texte de requête est rempli avec une requête SQL qui extrait tous les enregistrements de la table. Vous pouvez remplacer cette requête par toute instruction SQL valide pour Oracle NoSQL. Vous pouvez obtenir une erreur indiquant que votre instruction est incomplète ou défectueuse. Reportez-vous à Débogage des erreurs d'instruction SQL dans la console OCI pour en savoir plus sur les erreurs possibles dans la console OCI et sur la façon de les corriger. Reportez-vous au Guide des développeurs pour obtenir des exemples de requête SQL.
  5. Cliquez sur le menu d'action correspondant à la ligne à télécharger, puis sélectionnez Télécharger le JSON.
    La ligne est téléchargée au format JSON.

Utiliser des commandes SQL pour extraire des données

Vous pouvez utiliser une instruction SQL SELECT pour extraire des données de la table NoSQL.

Extraire toutes les lignes d'une table

Vous pouvez choisir des colonnes dans une table. Pour ce faire, répertoriez les noms des colonnes de table souhaitées après SELECT dans l'instruction. Donnez le nom de la table après la clause FROM. Pour extraire des données d'une table enfant, utilisez la notation par points, telle que parent.child. Pour choisir toutes les colonnes du tableau, utilisez le caractère générique astérisque (*). L'instruction SELECT peut également contenir des expressions de calcul basées sur les valeurs de colonnes existantes.

Exemple 1 : choisissez toutes les données de la table BaggageInfo.
SELECT * FROM BaggageInfo

Explication : le schéma BaggageInfo comporte des champs statiques fixes et une colonne JSON. Les champs statiques sont le numéro du ticket, le nom complet, le sexe, le numéro de téléphone du contact et le numéro de confirmation. Les informations de conteneur sont stockées au format JSON et sont remplies avec un tableau de documents.

Sortie (affichant uniquement une ligne du résultat par souci de concision) :
{"ticketNo":1762330498104,"fullName":"Michelle Payne","gender":"F","contactPhone":"575-781-6240","confNo":"RL3J4Q",
"bagInfo":[{
   "bagArrivalDate":"2019-02-02T23:59:00Z",   
   "flightLegs":[
      {"actions":[
           {"actionAt":"SFO","actionCode":"ONLOAD to IST","actionTime":"2019-02-02T12:10:00Z"},          
           {"actionAt":"SFO","actionCode":"BagTag Scan at SFO","actionTime":"2019-02-02T11:47:00Z"},
           {"actionAt":"SFO","actionCode":"Checkin at SFO","actionTime":"2019-02-02T10:01:00Z"}],
           "estimatedArrival":"2019-02-03T01:00:00Z", 
           "flightDate":"2019-02-02T12:00:00Z",
           "flightNo":"BM318",
           "fltRouteDest":"IST",
           "fltRouteSrc":"SFO"}, 
      {"actions":[
           {"actionAt":"IST","actionCode":"ONLOAD to ATH","actionTime":"2019-02-03T13:06:00Z"},
           {"actionAt":"IST","actionCode":"BagTag Scan at IST","actionTime":"2019-02-03T12:48:00Z"},
           {"actionAt":"IST","actionCode":"OFFLOAD from IST","actionTime":"2019-02-03T13:00:00Z"}],
           "estimatedArrival":"2019-02-03T12:12:00Z",
           "flightDate":"2019-02-02T13:10:00Z",
           "flightNo":"BM696",
           "fltRouteDest":"ATH",
           "fltRouteSrc":"IST"},
      {"actions":[
           {"actionAt":"JTR","actionCode":"Offload to Carousel at JTR","actionTime":"2019-02-03T00:06:00Z"}, 
           {"actionAt":"ATH","actionCode":"ONLOAD to JTR","actionTime":"2019-02-03T00:13:00Z"},
           {"actionAt":"ATH","actionCode":"OFFLOAD from ATH","actionTime":"2019-02-03T00:10:00Z"}],
           "estimatedArrival":"2019-02-03T00:12:00Z",
           "flightDate":"2019-2-2T12:10:00Z",
           "flightNo":"BM665",
           "fltRouteDest":"JTR",
           "fltRouteSrc":"ATH"}],  
     "id":"79039899186259",
     "lastActionCode":"OFFLOAD",
     "lastActionDesc":"OFFLOAD",
     "lastSeenStation":"JTR",
     "lastSeenTimeGmt":"2019-02-02T23:59:00Z",
     "routing":"SFO/IST/ATH/JTR",
     "tagNum":"17657806247861"}
]}
Exemple 2 : Pour choisir des colonnes spécifiques dans la table BaggageInfo, incluez les noms de colonne sous forme de liste séparée par des virgules dans l'instruction SELECT.
SELECT fullName, contactPhone, gender FROM BaggageInfo

Explication : Vous souhaitez afficher les valeurs de trois champs statiques : nom complet, numéro de téléphone et sexe.

Sortie :
{"fullName":"Lucinda Beckman","contactPhone":"364-610-4444","gender":"M"}
{"fullName":"Adelaide Willard","contactPhone":"421-272-8082","gender":"M"}
{"fullName":"Raymond Griffin","contactPhone":"567-710-9972","gender":"F"}
{"fullName":"Elane Lemons","contactPhone":"600-918-8404","gender":"F"}
{"fullName":"Zina Christenson","contactPhone":"987-210-3029","gender":"M"}
{"fullName":"Zulema Martindale","contactPhone":"666-302-0028","gender":"F"}
{"fullName":"Dierdre Amador","contactPhone":"165-742-5715","gender":"M"}
{"fullName":"Henry Jenkins","contactPhone":"960-428-3843","gender":"F"}
{"fullName":"Rosalia Triplett","contactPhone":"368-769-5636","gender":"F"}
{"fullName":"Lorenzo Phil","contactPhone":"364-610-4444","gender":"M"}
{"fullName":"Gerard Greene","contactPhone":"395-837-3772","gender":"M"}
{"fullName":"Adam Phillips","contactPhone":"893-324-1064","gender":"M"}
{"fullName":"Doris Martin","contactPhone":"289-564-3497","gender":"F"}
{"fullName":"Joanne Diaz","contactPhone":"334-679-5105","gender":"F"}
{"fullName":"Omar Harvey","contactPhone":"978-191-8550","gender":"F"}
{"fullName":"Fallon Clements","contactPhone":"849-731-1334","gender":"M"}
{"fullName":"Lisbeth Wampler","contactPhone":"796-709-9501","gender":"M"}
{"fullName":"Teena Colley","contactPhone":"539-097-5220","gender":"M"}
{"fullName":"Michelle Payne","contactPhone":"575-781-6240","gender":"F"}
{"fullName":"Mary Watson","contactPhone":"131-183-0560","gender":"F"}
{"fullName":"Kendal Biddle","contactPhone":"619-956-8760","gender":"F"}
Exemple 3 : choisissez toutes les données de la table stream_acct.
SELECT * FROM stream_acct

Explication : le schéma stream_acct comporte des champs statiques fixes et une colonne JSON.

Sortie (affichant uniquement une ligne du résultat par souci de concision) :

{"acct_id":1,"profile_name":"AP","account_expiry":"2023-10-18T00:00:00.0Z",
"acct_data":{
[{
   "showName": "At the Ranch",
   "showId": 26,
   "showtype": "tvseries",
   "genres": ["action", "crime", "spanish"],
   "numSeasons": 4,
   "seriesInfo": [{
      "seasonNum": 1,
      "numEpisodes": 2,
      "episodes": [{
         "episodeID": 20,
         "episodeName": "Season 1 episode 1",
         "lengthMin": 85,
         "minWatched": 85,
         "date": "2022-04-18"
      },
      {
         "episodeID": 30,
         "lengthMin": 60,
         "episodeName": "Season 1 episode 2",
         "minWatched": 60,
         "date": "2022 - 04 - 18 "
      }]
   },
   {
      "seasonNum": 2,
      "numEpisodes": 2,
      "episodes": [{
         "episodeID": 40,
         "episodeName": "Season 2 episode 1",
         "lengthMin": 50,
         "minWatched": 50,
         "date": "2022-04-25"
      },
      {
         "episodeID": 50,
         "episodeName": "Season 2 episode 2",
         "lengthMin": 45,
         "minWatched": 30,
         "date": "2022-04-27"
      }]
   },
   {
      "seasonNum": 3,
      "numEpisodes": 2,
      "episodes": [{
         "episodeID": 60,
         "episodeName": "Season 3 episode 1",
         "lengthMin": 50,
         "minWatched": 50,
         "date": "2022-04-25"
      },
      {
         "episodeID": 70,
         "episodeName": "Season 3 episode 2",
         "lengthMin": 45,
         "minWatched": 30,
         "date": "2022 - 04 - 27 "
      }]
   }]
},
{
   "showName": "Bienvenu",
   "showId": 15,
   "showtype": "tvseries",
   "genres": ["comedy", "french"],
   "numSeasons": 2,
   "seriesInfo": [{
      "seasonNum": 1,
      "numEpisodes": 2,
      "episodes": [{
         "episodeID": 20,
         "episodeName": "Bonjour",
         "lengthMin": 45,
         "minWatched": 45,
         "date": "2022-03-07"
      },
      {
         "episodeID": 30,
         "episodeName": "Merci",
         "lengthMin": 42,
         "minWatched": 42,
         "date": "2022-03-08"
      }]
   }]
}]}}

Filtrer les données à partir d'une table

Vous pouvez filtrer les résultats de requête en indiquant une condition de filtre dans la clause WHERE. En règle générale, une condition de filtre consiste en une ou plusieurs expressions de comparaison connectées via des opérateurs logiques AND ou OR. Les opérateurs de comparaison suivants sont également pris en charge : =, !=, >, >=, < et <= .

Exemple 1 : Recherchez le numéro d'étiquette des bagages d'un passager ainsi que le nom complet du passager pour un numéro de réservation donné FH7G1W.
SELECT bag.fullName, bag.bagInfo[].tagNum FROM BaggageInfo bag
WHERE bag.confNo="FH7G1W"

Explication : Vous extrayez le numéro d'étiquette correspondant à un numéro de réservation donné.

Sortie :
{"fullName":"Rosalia Triplett","tagNum":"17657806215913"}

Remarques :

Pour une meilleure compréhension, la ligne de données avec tous les champs statiques et le JSON bagInfo est affichée ci-dessous.
"ticketNo" : 1762344493810,
"fullName" : "Adam Phillips",
"gender" : "M",
"contactPhone" : "893-324-1064",
"confNo" : "LE6J4Z",
 [ {
    "id" : "79039899165297",
    "tagNum" : "17657806255240",
    "routing" : "MIA/LAX/MEL",
    "lastActionCode" : "OFFLOAD",
    "lastActionDesc" : "OFFLOAD",
    "lastSeenStation" : "MEL",
    "flightLegs" : [ {
      "flightNo" : "BM604",
      "flightDate" : "2019-02-01T01:00:00",
      "fltRouteSrc" : "MIA",
      "fltRouteDest" : "LAX",
      "estimatedArrival" : "2019-02-01T03:00:00",
      "actions" : [ {
        "actionAt" : "MIA",
        "actionCode" : "ONLOAD to LAX",
        "actionTime" : "2019-02-01T01:13:00"
      }, {
        "actionAt" : "MIA",
        "actionCode" : "BagTag Scan at MIA",
        "actionTime" : "2019-02-01T00:47:00"
      }, {
        "actionAt" : "MIA",
        "actionCode" : "Checkin at MIA",
        "actionTime" : "2019-02-01T23:38:00"
      } ]
    }, {
      "flightNo" : "BM667",
      "flightDate" : "2019-01-31T22:13:00",
      "fltRouteSrc" : "LAX",
      "fltRouteDest" : "MEL",
      "estimatedArrival" : "2019-02-02T03:15:00",
      "actions" : [ {
        "actionAt" : "MEL",
        "actionCode" : "Offload to Carousel at MEL",
        "actionTime" : "2019-02-02T03:15:00"
      }, {
        "actionAt" : "LAX",
        "actionCode" : "ONLOAD to MEL",
        "actionTime" : "2019-02-01T07:35:00"
      }, {
        "actionAt" : "LAX",
        "actionCode" : "OFFLOAD from LAX",
        "actionTime" : "2019-02-01T07:18:00"
      } ]
    } ],
    "lastSeenTimeGmt" : "2019-02-02T03:13:00",
    "bagArrivalDate" : "2019.02.02T03:13:00"
  } ]
Exemple 2 : Où les bagages portant le numéro de réservation FH7G1W ont-ils été vus pour la dernière fois ? Récupérez également le numéro d'étiquette du bagage.
SELECT bag.fullName, bag.bagInfo[].tagNum,bag.bagInfo[].lastSeenStation
FROM BaggageInfo bag WHERE bag.confNo="FH7G1W"

Explication : bagInfo est au format JSON et est rempli avec un tableau de documents. Le nom complet et la dernière station vue peuvent être extraits pour un numéro de réservation particulier.

Sortie :
{"fullName":"Rosalia Triplett","tagNum":"17657806215913",
"lastSeenStation":"VIE"}
Exemple 3 : sélectionnez les détails des sacs (étiquette et heure de dernière vue) pour un passager portant le numéro de billet 1762340579411.
SELECT bag.ticketNo, bag.fullName, bag.bagInfo[].tagNum,bag.bagInfo[].lastSeenStation
FROM BaggageInfo bag where bag.ticketNo=1762320369957

Explication : bagInfo est au format JSON et est rempli avec un tableau de documents. Le nom complet, le numéro de balise et la dernière station vue peuvent être extraits pour un numéro de ticket particulier.

Sortie :
{"fullName":"Lorenzo Phil","tagNum":["17657806240001","17657806340001"],
"lastSeenStation":["JTR","JTR"]}
Exemple 4 : extrayez le nom, la date d'expiration du compte et les affichages surveillés par l'utilisateur avec acct_id 1.
SELECT account_expiry, acct.acct_data.lastName, acct.acct_data.contentStreamed[].showName FROM stream_acct acct WHERE acct_id=1

Explication : acct_data est au format JSON et est rempli avec un tableau de documents. Le nom, la date d'expiration du compte et les noms d'affichage sont extraits pour un ID de compte particulier.

Sortie :
{"account_expiry":"2023-10-18T00:00:00.0Z","lastName":"Phillips","showName":["At the Ranch","Bienvenu"]}