Utilisation de la console pour extraire des données

Voyez comment voir et télécharger les données de table d'Oracle NoSQL Database Cloud Service à l'aide de la console.

Cet article contient les informations suivantes :

Affichage des données de table

Voyez comment afficher des données dans les tables Oracle NoSQL Database Cloud Service à partir de la console NoSQL.

Pour voir des données de table :
  1. Accédez à la console NoSQL à partir de la console Infrastructure. Voir Accès au service à partir de la console d'infrastructure.
  2. La console NoSQL liste toutes les tables de la location. Pour voir les détails d'une table, effectuez l'une des opérations suivantes :
    • Cliquez sur le nom de la table, ou
    • Cliquez sur le menu d'actions correspondant au nom de la table et sélectionnez Afficher les détails.
    La page Détails de la table s'affiche.
  3. Dans la page Détails de la table, sélectionnez l'onglet Explorer les données sous Ressources.
  4. Par défaut, le texte de l'interrogation correspond à une interrogation SQL qui extrait tous les enregistrements de la table. Vous pouvez remplacer cette interrogation par tout énoncé SQL valide pour l'énoncé Oracle NoSQL. Vous pouvez obtenir une erreur indiquant que votre instruction est incomplète ou défectueuse. Voir Débogage des erreurs d'énoncé SQL dans la console OCI pour en savoir plus sur les erreurs possibles dans la console OCI et savoir comment les corriger. Voir le guide des développeurs pour obtenir des exemples d'interrogation SQL.
  5. Cliquez sur Exécuter.
    Les données de la table sont affichées dans la section Enregistrements.
  6. Pour voir le plan d'exécution d'interrogation de l'interrogation SQL qui a été exécutée, cliquez sur Afficher le plan d'exécution d'interrogation. Le plan d'exécution détaillé des interrogations s'affiche dans une nouvelle fenêtre.

Télécharger des données de table

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

Pour télécharger des données de table :
  1. Accédez à la console NoSQL à partir de la console Infrastructure. Voir Accès au service à partir de la console d'infrastructure.
  2. La console NoSQL liste toutes les tables de la location. Pour voir les détails d'une table, effectuez l'une des opérations suivantes :
    • Cliquez sur le nom de la table, ou
    • Cliquez sur le menu d'actions correspondant au nom de la table et sélectionnez Afficher les détails.
    La page Détails de la table s'affiche.
  3. Dans la page Détails de la table, sélectionnez l'onglet Explorer les données sous Ressources.
  4. Par défaut, le texte de l'interrogation correspond à une interrogation SQL qui extrait tous les enregistrements de la table. Vous pouvez remplacer cette interrogation par tout énoncé SQL valide pour l'énoncé Oracle NoSQL. Vous pouvez obtenir une erreur indiquant que votre instruction est incomplète ou défectueuse. Voir Débogage des erreurs d'énoncé SQL dans la console OCI pour en savoir plus sur les erreurs possibles dans la console OCI et savoir comment les corriger. Voir le guide des développeurs pour obtenir des exemples d'interrogation SQL.
  5. Cliquez sur le menu d'actions correspondant à la rangée à télécharger, puis sélectionnez Télécharger JSON.
    La rangée est téléchargée au format JSON.

Utilisation de commandes SQL pour extraire des données

Vous pouvez utiliser l'énoncé SQL SELECT pour extraire des données de votre table NoSQL.

Extraction de toutes les rangées d'une table

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

Exemple 1 : Sélectionnez toutes les données dans 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 de ticket, le nom complet, le sexe, le numéro de téléphone du contact et le numéro de confirmation. Les informations de l'entité composite sont stockées dans le format JSON et sont alimentées avec un tableau de documents.

Sortie (affichage d'une seule rangée du résultat à des fins 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 sélectionner des colonnes spécifiques dans la table BaggageInfo, incluez les noms de colonne en tant que liste séparée par des virgules dans l'énoncé SELECT.
SELECT fullName, contactPhone, gender FROM BaggageInfo

Explication : Vous voulez 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 : Sélectionnez toutes les données dans la table stream_acct.
SELECT * FROM stream_acct

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

Sortie (affichage d'une seule rangée du résultat à des fins 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 d'une table

Vous pouvez filtrer les résultats d'interrogation en spécifiant une condition de filtre dans la clause WHERE. En général, une condition de filtre consiste en une ou plusieurs expressions de comparaison connectées au moyen d'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 de marqueur correspondant à un numéro de réservation donné.

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

Note :

Pour une meilleure compréhension, la rangée 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 ayant un numéro de réservation donné ont-ils été vus pour la dernière fois FH7G1W? En outre, récupérez 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 JSON et est alimenté 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 la dernière visite) pour un passager avec 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 JSON et est alimenté avec un tableau de documents. Le nom complet, le numéro d'étiquette 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 de famille, la date d'expiration du compte et les émissions surveillées 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 JSON et est alimenté avec un tableau de documents. Le nom, la date d'expiration du compte et les noms d'affichage sont extraits pour un ID compte particulier.

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