Connect with us

Technologie

Maîtriser la sémantique nulle : Comment traduire les expressions SQL en DSL OpenSearch avec brio !

Travailler chez Coralogix, une plateforme d’observabilité de premier plan, m’a récemment confronté à un défi fascinant. Notre équipe développe le langage de requête DataPrime, permettant d’interroger facilement les journaux et autres données d’observabilité. Cependant, nous avons dû faire face à la complexité de traduire des expressions SQL en OpenSearch DSL, notamment en ce qui concerne la gestion des valeurs NULL. Cette logique à trois valeurs, où NULL se comporte différemment de TRUE et FALSE, a nécessité une réflexion approfondie pour garantir la compatibilité et l’efficacité de nos requêtes.

Published

on

Maîtriser la sémantique nulle : Comment traduire les expressions SQL en DSL OpenSearch avec brio !

En travaillant chez Coralogix, une plateforme d’observabilité complète, j’ai récemment été confronté à un défi intéressant.

Mon équipe développe le langage de requête DataPrime et le moteur de requête, qui permettent d’interroger facilement les journaux et autres données d’observabilité sur la plateforme, généralement sous forme de fichiers Parquet sur AWS S3. Au sein du moteur, nos requêtes DataPrime sont transformées en plans de requête avec des expressions similaires à SQL, par exemple dans les filtres. Pour assurer la compatibilité avec les versions antérieures, le moteur de requête doit également pouvoir interroger OpenSearch au lieu des fichiers Parquet. Nous avons donc dû traduire ces expressions en DSL de requête OpenSearch.

Bien qu’OpenSearch offre un certain support pour SQL, nos expérimentations ont rapidement montré que ce support n’est pas très complet. Dans cet article, je souhaite aborder un aspect spécifique de cette traduction qui s’est révélé particulièrement intéressant : la sémantique des valeurs nulles.

Les Fondamentaux de la Technologie

Dans SQL, une expression de filtre valide, par exemple dans une clause WHERE, peut avoir trois résultats : VRAI, FAUX ou NULL. Les lignes dont le résultat est NULL seront bien sûr également exclues, tout comme celles avec FAUX, mais NULL se comporte de manière très différente par rapport à VRAI et FAUX dans l’expression.

Illustration :

CREATE TABLE test (
  prenom varchar(255),
  nom varchar(255),
  nom_de_famille varchar(255)
 );

INSERT INTO test (prenom, nom_de_famille)
VALUES ('Marc', 'Dupont');


SELECT * FROM test WHERE prenom='Garry';
// 0 Résultat


SELECT * FROM test WHERE !(prenom='Garry');
// 1 Résultat


SELECT * FROM test WHERE nom='Garry';
// 0 Résultat


SELECT * FROM test WHERE !(nom='Garry');
// 0 Résultat !!!

La quatrième requête SELECT ne renverra aucun résultat car pour la seule ligne, nom est NULL, et l’opérateur = renverra NULL si l’un des côtés est NULL. De plus, !NULL est également NULL.

Cela s’appelle la logique à trois valeurs, spécifiquement les logiques de Kleene et Priest. L’idée est assez simple : si vous considérez NULL comme indéterminé, vous obtiendrez toujours NULL si le résultat ne peut pas être déterminé.

Par exemple, FAUX && NULL est FAUX car peu importe ce que NULL représente, le résultat sera toujours FAUX.

En revanche, FAUX || NULL sera NULL, car en substituant FAUX, le résultat sera FAUX, et en substituant VRAI, le résultat sera VRAI.

Par ailleurs, le DSL d’OpenSearch ne comprend pas du tout les expressions. Il ne connaît que les filtres, c’est-à-dire des opérations qui prennent un ensemble de documents et renvoient ceux qui correspondent.

La Théorie de la Technologie

À première vue, réduire VRAI, FAUX et NULL à seulement VRAI et FAUX peut sembler une tâche impossible.

Cependant, la solution réside dans le contexte dans lequel une expression est utilisée. J’ai précédemment mentionné qu’une clause WHERE interprétera une expression renvoyant NULL de la même manière que FAUX, en filtrant la ligne. Ainsi, WHERE est en réalité également binaire, il filtrera ou ne filtrera pas la ligne !

Formellement, en utilisant du pseudocode :

filter(expr)=expr==true
            =!(expr==false || expr==null)
            =!is_false_or_null(expr)

Nous commençons à avancer. Il nous suffit maintenant de déterminer is_false_or_null pour toutes les expressions que nous souhaitons prendre en charge. Commençons par les bases :

is_false_or_null(null) =true
                       ={ "match_all": {}}
is_false_or_null(true) =false
                       ={ "match_none": {}}
is_false_or_null(false)=true
                       ={ "match_all": {}}
is_false_or_null(field)=!matches(field, true) || !exists(field)
                       ={
                           "bool": {
  	                     "should": [
                               {
        	                 "bool": {
           	                   "must_not": {
              	                     "matches": {
                 		       "field": "true"
              	                    }
           	                  }
        	                }
                              },
     	                      {
        	                "bool": {
           	                  "must_not": {
              	                   "exists": "field"
           	                 }
        	               }
     	     

Comprendre les Opérateurs Booléens dans les Requêtes

Les opérateurs booléens, à savoir OU, ET et NON, jouent un rôle crucial dans la formulation des requêtes. Leur utilisation permet de structurer des conditions complexes de manière efficace.

Analyse des Opérateurs Booléens

Pour mieux appréhender ces opérateurs, il est utile de se référer aux tables de vérité, qui fournissent une base logique pour leur fonctionnement.

Table de vérité pour les opérateurs booléens

Par exemple, considérons l’expression est_faux_ou_nul(expr1 && expr2). Les résultats où cette expression est vraie sont mis en évidence ci-dessous :

Résultats de l'expression

Il est intéressant de noter que cela correspond à l’union des cas où A est FAUX ou NUL, et où B est également FAUX ou NUL.

Union des résultats

En conséquence, nous pouvons établir que :

est_faux_ou_nul(expr1 && expr2)=est_faux_ou_nul(expr1) || est_faux_ou_nul(expr2)

Exploration de l’Opérateur OU

Pour l’opérateur OU, la table de vérité présente une configuration différente :

Table de vérité pour l'opérateur OU

Dans ce cas, il s’agit de l’intersection des situations où A est FAUX ou NUL, et où B est également FAUX ou NUL. Ainsi, nous avons :

est_faux_ou_nul(expr1 || expr2)=est_faux_ou_nul(expr1) && est_faux_ou_nul(expr2)

Comprendre l’Opérateur NON

Enfin, examinons l’opérateur NON.

Table de vérité pour l'opérateur NON

Il est clair que NON(A) est FAUX ou NUL lorsque A est VRAI ou NUL :

est_faux_ou_nul(!expr)=est_vrai_ou_nul(expr)

Nous devons également définir est_vrai_ou_nul, qui est assez similaire à mettre en œuvre :

est_vrai_ou_nul(nul)=vrai
est_vrai_ou_nul(vrai)=vrai
est_vrai_ou_nul(faux)=faux
est_vrai_ou_nul(champ)=correspond(champ, vrai) || !existe(champ)

Conclusion sur les Technologies

Avec cette compréhension théorique, la partie la plus complexe du problème est résolue.

Le reste consiste principalement à traduire les concepts de la langue source que l’on souhaite prendre en charge. Il est à noter que les capacités du DSL d’ElasticSearch peuvent rapidement atteindre leurs limites, car même des opérations arithmétiques simples n’ont pas d’équivalent direct, ce qui oblige à recourir à des requêtes scriptées, moins performantes mais capables de couvrir presque tous les cas d’utilisation. Pour éviter de traduire chaque expression deux fois avec des différences minimes pour est_vrai_ou_nul et est_faux_ou_nul, il est préférable d’avoir une fonction unique est_valeur_ou_nul(valeur: bool, ...).

Pour éviter que les requêtes ne deviennent trop volumineuses et surtout trop imbriquées, nous avons également choisi une représentation intermédiaire du DSL d’ElasticSearch avant de la convertir en JSON.

Cela nous permet d’effectuer confortablement une série d’optimisations en amont :

  • Appliquer les lois de De Morgan
  • Aplatir les clauses booléennes imbriquées par associativité
  • Inverser les clauses négatives

Il semble que le texte fourni soit incomplet ou ne contienne pas d’article à réécrire. Veuillez fournir un article complet pour que je puisse le reformuler selon vos instructions.

Continue Reading
Click to comment

Leave a Reply

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Général

Anker SOLIX dévoile la Solarbank 2 AC : la nouvelle ère du stockage d’énergie ultra-compatible !

Découvrez le Solarbank 2 AC, une véritable révolution dans le domaine de l’énergie solaire ! Grâce à ses batteries au phosphate de fer lithium, ce système s’adapte parfaitement à vos besoins. Avec une puissance impressionnante de 2400 watts et la possibilité d’ajouter jusqu’à cinq batteries supplémentaires, il assure un stockage optimal. Sa compatibilité avec le compteur Anker SOLIX Smart favorise une gestion intelligente de votre consommation énergétique. Ne ratez pas l’offre spéciale « early bird », disponible dès maintenant pour seulement 999 euros ! Saisissez cette chance unique !

Published

on

Anker SOLIX dévoile la Solarbank 2 AC : la nouvelle ère du stockage d’énergie ultra-compatible !

Le Solarbank 2 AC : Une Révolution dans le Stockage Énergétique

Batteries au Lithium Fer Phosphate

Le Solarbank 2 AC se démarque par l’utilisation de batteries au lithium fer phosphate (LFP), reconnues pour leur sécurité et leur efficacité. Ce modèle est particulièrement innovant grâce à son système de couplage alternatif, qui lui permet de s’adapter facilement à divers systèmes solaires déjà en place.Que ce soit pour des installations sur toiture, des systèmes solaires compacts pour balcons ou d’autres configurations réduites, il peut fonctionner avec un micro-onduleur de 800 Watts.

Capacité et flexibilité Énergétique

Avec une capacité maximale d’injection dans le réseau domestique atteignant 1200 watts,le Solarbank 2 AC peut être associé à deux régulateurs solaires MPPT. Cela ouvre la possibilité d’ajouter jusqu’à 1200 watts supplémentaires via des panneaux solaires additionnels, portant ainsi la puissance totale à un impressionnant 2400 watts. Pour les utilisateurs nécessitant davantage de stockage énergétique, il est possible d’intégrer jusqu’à cinq batteries supplémentaires de 1,6 kilowattheure chacune, augmentant la capacité totale à 9,6 kilowattheures.

Intégration dans un Écosystème Intelligent

Le Solarbank 2 AC s’intègre parfaitement dans un écosystème énergétique intelligent grâce à sa compatibilité avec le compteur Anker SOLIX Smart et les prises intelligentes proposées par Anker. cette fonctionnalité permet une gestion optimisée de la consommation électrique tout en réduisant les pertes énergétiques inutiles. De plus, Anker SOLIX prévoit d’étendre cette compatibilité aux dispositifs Shelly.

Durabilité et Résistance aux Intempéries

Anker SOLIX met également l’accent sur la longévité du Solarbank 2 AC. Conçu pour supporter au moins 6000 cycles de charge, cet appareil a une durée de vie estimée dépassant quinze ans. Il est accompagné d’une garantie fabricant décennale et possède une certification IP65 qui assure sa résistance face aux intempéries tout en étant capable de fonctionner dans des températures variant entre -20 °C et +55 °C.

Disponibilité et Offres Promotionnelles

Le solarbank 2 AC est disponible sur le site officiel d’Anker SOLIX ainsi que sur Amazon au prix standard de 1299 euros. Cependant, une offre promotionnelle « early bird » sera active du 20 janvier au 23 février 2025, permettant aux acheteurs intéressés d’acquérir cet appareil dès 999 euros ! Cette promotion inclut également un compteur Anker SOLIX Smart offert pour chaque commande passée durant cette période spéciale.

le Solarbank 2 AC représente une avancée significative dans le domaine du stockage énergétique domestique grâce à ses caractéristiques techniques avancées et son engagement envers la durabilité environnementale.

Continue Reading

Technologie

Ne manquez pas cette offre incroyable : le Air Fryer Moulinex Easy Fry Max à -42% sur Amazon !

Les soldes d’hiver sont là ! Ne ratez pas l’incroyable offre d’Amazon sur le Moulinex Easy Fry Max, à seulement 69 euros au lieu de 119 euros, soit une réduction sensationnelle de -42% ! Avec sa capacité généreuse de 5 L, cette friteuse sans huile est idéale pour régaler jusqu’à 6 convives. Grâce à ses 10 programmes de cuisson et son interface tactile intuitive, préparez des plats sains et savoureux en un clin d’œil. Dépêchez-vous, les stocks s’épuisent vite et cette offre est limitée dans le temps !

Published

on

Ne manquez pas cette offre incroyable : le Air Fryer Moulinex Easy Fry Max à -42% sur Amazon !

Technologie

Les soldes d’hiver sont en cours, et Amazon en profite pour offrir des promotions intéressantes, notamment sur les friteuses à air. Actuellement, le Moulinex Easy Fry Max est proposé à un prix attractif de 69 euros au lieu de 119 euros, ce qui représente une réduction immédiate de 42 %. C’est une occasion parfaite pour acquérir une friteuse sans huile XL d’une capacité généreuse de 5 L, idéale pour préparer des repas pour jusqu’à six personnes à un tarif très compétitif.

Étant donné que cette offre est limitée dans le temps,il est conseillé d’agir rapidement si vous souhaitez en bénéficier. De plus, avec un tel prix, les stocks pourraient s’épuiser rapidement. Ce modèle se classe parmi les meilleures ventes sur Amazon avec plus de 1000 unités écoulées le mois dernier.

Profitez des offres sur Amazon

Amazon propose également la livraison gratuite et rapide pour cet article qui bénéficie d’une garantie de deux ans. En outre, il existe une option de paiement échelonné en quatre fois sans frais sur ce modèle. Enfin, sachez que vous avez la possibilité de changer d’avis et retourner le produit gratuitement dans un délai de 30 jours afin d’obtenir un remboursement intégral.

Moulinex Easy Fry Max : cuisinez sainement pour toute la famille

Le moulinex Easy Fry Max fonctionne comme un four à air chaud permettant la préparation de plats savoureux tout en utilisant peu ou pas du tout d’huile. En plus des frites croustillantes qu’il réalise parfaitement, cet appareil se révèle très polyvalent et peut cuisiner une multitude d’autres recettes.

avec ses dix programmes prédéfinis adaptés à divers ingrédients tels que poulet,steak,poisson ou légumes ainsi que des options pour bacon et desserts comme les pizzas ,cet appareil répond aux besoins variés des familles modernes. De plus, Moulinex met à disposition un livre numérique rempli de recettes accessible via QR Code afin que vous puissiez facilement trouver l’inspiration culinaire lorsque nécessaire.

Sa capacité généreuse permet non seulement la préparation rapide mais aussi économique : jusqu’à 70 % moins énergivore et presque deux fois plus rapide qu’un four traditionnel ! Son interface intuitive avec écran tactile facilite son utilisation quotidienne.

en outre, le panier antiadhésif compatible lave-vaisselle simplifie grandement l’entretien après chaque utilisation. N’oubliez pas qu’il s’agit là encore d’une offre temporaire ; ne tardez donc pas si vous souhaitez profiter du meilleur prix possible sur cette friteuse innovante !

Pour accéder à cette remise exceptionnelle :

Continue Reading

Technologie

TikTok revient en force aux États-Unis, mais pas sur l’App Store !

Le suspense autour de TikTok est à son comble ! En avril 2024, le Congrès américain a voté une loi obligeant l’application à changer de propriétaire avant le 19 janvier. Les utilisateurs ont anxieusement attendu la décision finale. Bien que TikTok ait brièvement cessé ses activités, elle est revenue en ligne, mais absente de l’App Store. Apple justifie cette décision par des obligations légales. Cependant, les utilisateurs peuvent toujours accéder à leur compte… sans mises à jour. L’avenir de TikTok pourrait prendre un tournant décisif avec les promesses du nouveau président.

Published

on

TikTok revient en force aux États-Unis, mais pas sur l’App Store !

Technologie

En avril 2024, le Congrès américain a adopté une législation obligeant TikTok à trouver un nouvel acquéreur, ByteDance étant accusé d’activités d’espionnage. Les utilisateurs de l’submission aux États-Unis ont donc attendu avec impatience le week-end précédent la date limite du 19 janvier pour savoir si TikTok serait interdit dans le pays.

Bien que TikTok n’ait pas réussi à dénicher un repreneur avant cette échéance, l’application a temporairement suspendu ses activités… mais seulement pour quelques heures. le réseau social est désormais de retour en ligne, mais il n’est plus accessible sur l’App Store.

Retour de TikTok : Une Absence Persistante sur l’App Store

Apple a expliqué sa décision de retirer TikTok de son App store par un communiqué officiel. « Apple doit respecter les lois en vigueur dans les régions où elle opère. Selon la loi Protecting Americans from Foreign Adversary Controlled Applications act, les applications développées par ByteDance ltd., y compris TikTok et ses filiales comme CapCut et Lemon8, ne pourront plus être téléchargées ou mises à jour sur l’App Store pour les utilisateurs américains après le 19 janvier 2025 », précise la société.

Il est crucial de souligner que les utilisateurs américains ayant déjà installé TikTok peuvent toujours accéder au service. Cependant, ils ne recevront plus aucune mise à jour future de l’application. L’avenir du réseau social pourrait dépendre des décisions du nouveau président des États-Unis.

DÉCLARATION DE TIKTOK :

>

En collaboration avec nos partenaires techniques, nous travaillons activement à rétablir notre service. Nous remercions le président Trump pour avoir clarifié la situation et rassuré nos partenaires qu’ils ne subiront aucune sanction en continuant d’offrir TikTok aux plus de 170 millions d’utilisateurs…

Le successeur de Joe Biden sera investi comme président ce lundi 20 janvier et prévoit d’émettre un décret afin d’accorder un délai supplémentaire à TikTok pour trouver un acquéreur potentiel.Donald Trump propose même que les États-Unis détiennent une participation significative dans cette application.

« Je souhaite que les États-Unis possèdent une part importante dans une coentreprise avec cet outil numérique afin que nous puissions préserver son intégrité tout en lui permettant d’évoluer […]. Ainsi,notre pays détiendrait la moitié des parts dans une coentreprise établie entre nous et tout acheteur sélectionné »,a déclaré Donald Trump.

L’avenir immédiat de TikTok pourrait donc connaître des évolutions majeures très prochainement. Il convient également de noter qu’une rumeur circulait selon laquelle Elon Musk envisagerait d’acquérir des parts dans la plateforme,mais celle-ci a été rapidement démentie par un porte-parole officiel.

Continue Reading

Trending

Copyright © 2024 Tecknews.