{"id":2308,"date":"2016-06-28T18:35:52","date_gmt":"2016-06-28T18:35:51","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2308"},"modified":"2024-09-12T01:15:19","modified_gmt":"2024-09-12T08:15:19","slug":"sql-and-n1ql-in-harmony-collaborative-query-execution-in-simba-couchbase-drivers","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/sql-and-n1ql-in-harmony-collaborative-query-execution-in-simba-couchbase-drivers\/","title":{"rendered":"Postagem no blog do parceiro: SQL e N1QL em harmonia: Execu\u00e7\u00e3o de consulta colaborativa em drivers Simba Couchbase"},"content":{"rendered":"<p>A Structured Query Language (SQL) foi originalmente projetada como uma linguagem de consulta intuitiva para armazenamentos de dados relacionais. O NoSQL, relativamente recente em compara\u00e7\u00e3o, ainda exige compatibilidade com o SQL, pois muitas ferramentas e aplicativos de BI o entendem. O Couchbase oferece suporte \u00e0 sua pr\u00f3pria linguagem de consulta, <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/n1ql\/\">N1QL<\/a>que estende o SQL para consultar documentos JSON armazenados em <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/nosql-databases\/couchbase-server\/\">Servidor Couchbase<\/a>. Os drivers Simba Couchbase ODBC e JDBC permitem que os usu\u00e1rios \"tenham o bolo e o comam tamb\u00e9m\", possibilitando que os usu\u00e1rios aproveitem tanto o SQL quanto o N1QL. Uma das maneiras de conseguir isso \u00e9 com o <a href=\"https:\/\/www.simba.com\/resources\/sdk\/knowledge-base\/cqe-filters\/?__hstc=1833966.e43638dbb6ffde0bd1799c71f6128f04.1466541164167.1466636500735.1466646529605.4&amp;__hssc=1833966.1.1466646529605&amp;__hsfp=3049910071\">Execu\u00e7\u00e3o de consulta colaborativa (CQE) <\/a>oferecido pelo SimbaEngine X. Este artigo explica como os drivers do Simba Couchbase usam o CQE, aproveitando as semelhan\u00e7as entre o SQL e o N1QL, para garantir o desempenho ideal.<\/p>\n<h2>Opera\u00e7\u00e3o JOIN<\/h2>\n<p>N1QL suporta<a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.5\/n1ql\/n1ql-language-reference\/from.html#story-h2-3\"> Jun\u00e7\u00f5es de pesquisa<\/a>que podem ser traduzidos de forma aproximada em JOINs an\u00e1logos no SQL. Aqui, explicaremos como os drivers do Simba Couchbase aproveitam o recurso CQE para transmitir as opera\u00e7\u00f5es JOIN para o Couchbase Server.<\/p>\n<p>Considere o conjunto de dados de amostra de cerveja com documentos de cerveja e cervejaria. Usando os drivers do Simba Couchbase, esses documentos podem ser mapeados para duas tabelas diferentes - cerveja e cervejaria - e os usu\u00e1rios podem executar consultas JOIN nessas duas tabelas.<\/p>\n<p>Digamos que um usu\u00e1rio queira descobrir todas as cervejas fabricadas no estado da Calif\u00f3rnia, ele emitiria uma instru\u00e7\u00e3o SQL da seguinte forma:<\/p>\n<pre>\r\n<code class=\"language-sql\">SELECT beer.name, brewery.name FROM beer JOIN brewery ON beer.brewery_id=brewery.PK WHERE brewery.state=&apos;California&apos;<\/code><\/pre>\n<p>Para gerar o resultado dessa consulta SQL, voc\u00ea teria que fazer o seguinte:<\/p>\n<ul>\n<li>Recuperar todos os documentos de cerveja do Couchbase Server para o cliente<\/li>\n<li>Recuperar todos os documentos de fermenta\u00e7\u00e3o do Couchbase Server para o cliente<\/li>\n<li>Executar a uni\u00e3o<\/li>\n<li>Filtre os resultados em que o estado \u00e9 Calif\u00f3rnia.<\/li>\n<\/ul>\n<p>\u00a0<\/p>\n<p>Isso n\u00e3o \u00e9 muito eficiente, pois pode sobrecarregar o lado do cliente se as tabelas de uni\u00e3o forem muito grandes. Al\u00e9m disso, as opera\u00e7\u00f5es JOIN e WHERE s\u00e3o compat\u00edveis com o N1QL. A transfer\u00eancia da carga para o lado do servidor resultaria em melhor desempenho.<br \/>\nOs drivers do Simba Couchbase fazem exatamente isso. Com o CQE, os drivers do Simba Couchbase traduzem o SQL fornecido em N1QL an\u00e1logo, que pode ser passado para o Couchbase Server para execu\u00e7\u00e3o. A instru\u00e7\u00e3o SQL acima pode ser traduzida para N1QL da seguinte forma:<\/p>\n<pre>\r\n<code class=\"language-sql\">SELECT `$sb_c5_name`,`$sb_c6_name` \r\nFROM `beer-sample` `$sb_t0_beer` \r\nJOIN `beer-sample` `$sb_t1_brewery` \r\nON KEYS TOSTRING(IFMISSING(`$sb_t0_beer`.`brewery_id`,NULL)) \r\nLET `$sb_c0_PK` = META(`$sb_t0_beer`).id,\r\n    `$sb_c1_TableType` = TOSTRING(IFMISSING(`$sb_t0_beer`.`type`,NULL)),\r\n    `$sb_c2_PK` = META(`$sb_t1_brewery`).id,\r\n    `$sb_c3_TableType` = TOSTRING(IFMISSING(`$sb_t1_brewery`.`type`,NULL)),\r\n    `$sb_c4_state` = TOSTRING(IFMISSING(`$sb_t1_brewery`.`state`,NULL)),\r\n    `$sb_c5_name` = TOSTRING(IFMISSING(`$sb_t0_beer`.`name`,NULL)),\r\n    `$sb_c6_name` = TOSTRING(IFMISSING(`$sb_t1_brewery`.`name`,NULL)) \r\nWHERE \r\n(`$sb_c0_PK`!=&apos;~~~SchemaMap&apos;)\r\nAND(`$sb_c1_TableType` = &apos;beer&apos;)\r\nAND(`$sb_c2_PK`!=&apos;~~~SchemaMap&apos;)\r\nAND(`$sb_c3_TableType` = &apos;brewery&apos;)\r\nAND(`$sb_c4_state` = \"California\");<\/code><\/pre>\n<p>\u00a0<\/p>\n<p>Por baixo do cap\u00f4, os drivers do Simba Couchbase usam o Simba SQL Engine para an\u00e1lise, prepara\u00e7\u00e3o e execu\u00e7\u00e3o de consultas. Antes da execu\u00e7\u00e3o da consulta, os drivers criam uma representa\u00e7\u00e3o de \u00c1rvore de Express\u00e3o Alg\u00e9brica (AE-Tree). A instru\u00e7\u00e3o SQL assume essa forma pouco antes de o Simba SQL Engine transform\u00e1-la em um plano de execu\u00e7\u00e3o e execut\u00e1-la. Antes da execu\u00e7\u00e3o, o driver pode revisar o plano e verificar se pode executar alguma parte dele. Isso \u00e9 chamado de etapa de passagem para baixo.<\/p>\n<p>Pouco antes da etapa de passagem para baixo (conforme descrito na se\u00e7\u00e3o <a href=\"https:\/\/www.simba.com\/resources\/sdk\/knowledge-base\/sqlengine-aetree-optimization-overview\/?__hstc=1833966.e43638dbb6ffde0bd1799c71f6128f04.1466541164167.1466636500735.1466646529605.4&amp;__hssc=1833966.1.1466646529605&amp;__hsfp=3049910071\">Otimiza\u00e7\u00e3o do AETree <\/a>artigo), a \u00e1rvore AE tem a seguinte apar\u00eancia:<\/p>\n<pre>\r\n<code class=\"language-sql\">AEQuery\r\n    AEProject\r\n        AEJoin: AE_INNER_JOIN\r\n            AETable: cbdefault.beer-sample.beer\r\n            AESelect\r\n                AETable: cbdefault.beer-sample.brewery\r\n                AEComparison: EQ\r\n                    AEValueList\r\n                        AEColumn: \"cbdefault\".\"beer-sample\".\"brewery\".\"state\"\r\n                    AEValueList\r\n                        AELiteral: California; Character String Literal\r\n            AEComparison: EQ\r\n                AEValueList\r\n                    AEColumn: \"cbdefault\".\"beer-sample\".\"beer\".\"brewery_id\"\r\n                AEValueList\r\n                    AEColumn: \"cbdefault\".\"beer-sample\".\"brewery\".\"PK\"\r\n        AEValueList\r\n            AEColumn: \"cbdefault\".\"beer-sample\".\"beer\".\"name\"\r\n            AEColumn: \"cbdefault\".\"beer-sample\".\"brewery\".\"name\"<\/code><\/pre>\n<p>\u00a0<\/p>\n<p>E, ap\u00f3s a transfer\u00eancia, o AETree tem a seguinte apar\u00eancia:<\/p>\n<p>\u00a0<\/p>\n<pre>\r\n<code class=\"language-sql\">        AEQuery\r\n            AETable: beer_JOIN_brewery<\/code><\/pre>\n<p>\nComo voc\u00ea pode ver, a AE-Tree cont\u00e9m apenas um n\u00f3 que representa a tabela unida, o que significa que todo o resto, inclusive a uni\u00e3o e a filtragem, \u00e9 passado para o Couchbase Server. Menos dados enviados atrav\u00e9s do fio do Couchbase Server para o driver e menos opera\u00e7\u00f5es feitas no lado do cliente = melhor desempenho!<\/p>\n<h1>Opera\u00e7\u00e3o UNNEST<\/h1>\n<p>O N1QL suporta a cl\u00e1usula UNNEST, que conceitualmente executa uma jun\u00e7\u00e3o de uma matriz aninhada com seu objeto pai.<\/p>\n<p>Nos drivers do Simba Couchbase, qualquer matriz aninhada \u00e9 mapeada para uma tabela virtual e os usu\u00e1rios podem se unir \u00e0 tabela principal com a tabela virtual. Isso usa novamente o recurso CQE do SimbaEngine X e aproveita a cl\u00e1usula N1QL UNNEST.<\/p>\n<p>Por exemplo, todos os documentos de cervejarias no conjunto de dados de amostras de cerveja cont\u00eam matrizes aninhadas chamadas brewery_address. Nos drivers do Simba Couchbase, esses documentos s\u00e3o mapeados para uma tabela brewery e uma tabela virtual brewery_address. Digamos que um usu\u00e1rio queira obter todos os nomes de cervejarias depois de unir brewery e brewery_address, ele emitiria uma instru\u00e7\u00e3o SQL da seguinte forma:<\/p>\n<pre>\r\n<code class=\"language-sql\">      SELECT brewery.name FROM brewery JOIN brewery_address ON brewery.PK=brewery_address.PK;<\/code><\/pre>\n<p>\nOs drivers do Simba Couchbase traduzem a instru\u00e7\u00e3o SQL acima para N1QL da seguinte forma:<\/p>\n<pre>\r\n<code class=\"language-sql\">      SELECT `$sb_c4_name` \r\n      FROM `beer-sample` `$sb_t0_brewery` \r\n      UNNEST `$sb_t0_brewery`.`address` `$sb_t1_brewery_address` \r\n      LET `$sb_c0_PK` = META(`$sb_t0_brewery`).id,\r\n          `$sb_c1_TableType` = TOSTRING(IFMISSING(`$sb_t0_brewery`.`type`,NULL)),\r\n          `$sb_c2_PK` = META(`$sb_t0_brewery`).id,\r\n          `$sb_c3_TableType` = TOSTRING(IFMISSING(`$sb_t0_brewery`.`type`,NULL)),\r\n          `$sb_c4_name` = TOSTRING(IFMISSING(`$sb_t0_brewery`.`name`,NULL)) \r\n      WHERE \r\n             (`$sb_c0_PK`!=&apos;~~~SchemaMap&apos;)\r\n          AND(`$sb_c1_TableType` = &apos;brewery&apos;)\r\n          AND(`$sb_c2_PK`!=&apos;~~~SchemaMap&apos;)\r\n          AND(`$sb_c3_TableType` = &apos;brewery&apos;);<\/code><\/pre>\n<p>\u00a0<\/p>\n<p>Antes da transfer\u00eancia, a \u00e1rvore AE tem a seguinte apar\u00eancia:<\/p>\n<pre>\r\n<code class=\"language-sql\">AEQuery\r\n    AEProject\r\n        AEJoin: AE_INNER_JOIN\r\n            AETable: cbdefault.beer-sample.brewery\r\n            AETable: cbdefault.beer-sample.brewery_address\r\n            AEComparison: EQ\r\n                AEValueList\r\n                    AEColumn: \"cbdefault\".\"beer-sample\".\"brewery\".\"PK\"\r\n                AEValueList\r\n                    AEColumn: \"cbdefault\".\"beer-sample\".\"brewery_address\".\"PK\"\r\n        AEValueList\r\n            AEColumn: \"cbdefault\".\"beer-sample\".\"brewery\".\"name\"<\/code><\/pre>\n<p>\u00a0<\/p>\n<p>Ap\u00f3s a transfer\u00eancia, a \u00e1rvore AE tem a seguinte apar\u00eancia:<\/p>\n<pre>\r\n<code class=\"language-sql\">AEQuery\r\n    AETable: brewery_JOIN_brewery_address<\/code><\/pre>\n<p>\nComo voc\u00ea pode ver, a AE-Tree novamente cont\u00e9m apenas um n\u00f3 que representa a tabela unida, o que significa que todo o resto \u00e9 passado para o Couchbase Server para execu\u00e7\u00e3o. Novamente, quanto mais opera\u00e7\u00f5es ocorrerem no lado do servidor e quanto menos dados retornarem pelo fio para o driver, mais eficiente ser\u00e1 a consulta.<\/p>\n<p>Esses dois exemplos destacam como os drivers do Simba Couchbase utilizam todo o potencial do Couchbase Server, passando as opera\u00e7\u00f5es N1QL compat\u00edveis para o servidor executar. Para quaisquer recursos SQL que n\u00e3o sejam compat\u00edveis com o N1QL, os drivers executam as opera\u00e7\u00f5es (no lado do cliente). Dessa forma, os drivers garantem a amplitude do suporte para SQL e N1QL, bem como o alto desempenho.<\/p>\n<h1>Agora \u00e9 sua vez<\/h1>\n<p>Fa\u00e7a o download de uma avalia\u00e7\u00e3o gratuita de <a href=\"https:\/\/www.simba.com\/drivers\/couchbase-odbc-jdbc\/?__hstc=1833966.e43638dbb6ffde0bd1799c71f6128f04.1466541164167.1466636500735.1466646529605.4&amp;__hssc=1833966.1.1466646529605&amp;__hsfp=3049910071\">Drivers ODBC\/JDBC do Couchbase<\/a> e experimente-os com o novo Couchbase Server 4.5!<\/p>","protected":false},"excerpt":{"rendered":"<p>Structured Query Language (SQL) was originally designed as an intuitive query language for relational data stores. NoSQL, relatively nascent in comparison, still requires compatibility with SQL as many BI tools and applications understand it. Couchbase supports its own query language, [&hellip;]<\/p>","protected":false},"author":77,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1812],"tags":[],"ppma_author":[9047],"class_list":["post-2308","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-n1ql-query"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.0 (Yoast SEO v26.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Partner Blog Post: SQL and N1QL in Harmony: Collaborative Query Execution in Simba Couchbase Drivers - The Couchbase Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/pt\/sql-and-n1ql-in-harmony-collaborative-query-execution-in-simba-couchbase-drivers\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Partner Blog Post: SQL and N1QL in Harmony: Collaborative Query Execution in Simba Couchbase Drivers\" \/>\n<meta property=\"og:description\" content=\"Structured Query Language (SQL) was originally designed as an intuitive query language for relational data stores. NoSQL, relatively nascent in comparison, still requires compatibility with SQL as many BI tools and applications understand it. Couchbase supports its own query language, [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/sql-and-n1ql-in-harmony-collaborative-query-execution-in-simba-couchbase-drivers\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-06-28T18:35:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-12T08:15:19+00:00\" \/>\n<meta name=\"author\" content=\"Nowrin Anwar Joyita\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nowrin Anwar Joyita\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/sql-and-n1ql-in-harmony-collaborative-query-execution-in-simba-couchbase-drivers\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/sql-and-n1ql-in-harmony-collaborative-query-execution-in-simba-couchbase-drivers\/\"},\"author\":{\"name\":\"Nowrin Anwar Joyita\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/90dc5afc5f8781a07c9d3f9b19ca2c40\"},\"headline\":\"Partner Blog Post: SQL and N1QL in Harmony: Collaborative Query Execution in Simba Couchbase Drivers\",\"datePublished\":\"2016-06-28T18:35:51+00:00\",\"dateModified\":\"2024-09-12T08:15:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/sql-and-n1ql-in-harmony-collaborative-query-execution-in-simba-couchbase-drivers\/\"},\"wordCount\":802,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/sql-and-n1ql-in-harmony-collaborative-query-execution-in-simba-couchbase-drivers\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/sql-and-n1ql-in-harmony-collaborative-query-execution-in-simba-couchbase-drivers\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/sql-and-n1ql-in-harmony-collaborative-query-execution-in-simba-couchbase-drivers\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/sql-and-n1ql-in-harmony-collaborative-query-execution-in-simba-couchbase-drivers\/\",\"name\":\"Partner Blog Post: SQL and N1QL in Harmony: Collaborative Query Execution in Simba Couchbase Drivers - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/sql-and-n1ql-in-harmony-collaborative-query-execution-in-simba-couchbase-drivers\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/sql-and-n1ql-in-harmony-collaborative-query-execution-in-simba-couchbase-drivers\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2016-06-28T18:35:51+00:00\",\"dateModified\":\"2024-09-12T08:15:19+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/sql-and-n1ql-in-harmony-collaborative-query-execution-in-simba-couchbase-drivers\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/sql-and-n1ql-in-harmony-collaborative-query-execution-in-simba-couchbase-drivers\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/sql-and-n1ql-in-harmony-collaborative-query-execution-in-simba-couchbase-drivers\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/sql-and-n1ql-in-harmony-collaborative-query-execution-in-simba-couchbase-drivers\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Partner Blog Post: SQL and N1QL in Harmony: Collaborative Query Execution in Simba Couchbase Drivers\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/90dc5afc5f8781a07c9d3f9b19ca2c40\",\"name\":\"Nowrin Anwar Joyita\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/05dcdd5d72e8fe12ef046bbcceb50427\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/79860cfbf2db4a2eab20600a0c7fe3593ee307b568bdc720fd1b253170778ae6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/79860cfbf2db4a2eab20600a0c7fe3593ee307b568bdc720fd1b253170778ae6?s=96&d=mm&r=g\",\"caption\":\"Nowrin Anwar Joyita\"},\"description\":\"Currently, Nowrin Anwar Joyita is working a Software Developer at Bit Quill Technologies. Prior joining to bit Quill Technologies, Nowrin spent around 2 years in Simba Technologies as a Computer Scientist. She has worked on multiple ODBC (C++) and JDBC (Java) drivers in Simba namely Athena ODBC and JDBC drivers, Couchbase ODBC and JDBC drivers, MongoDB ODBC driver, Presto JDBC driver, Drill ODBC driver.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/nowrin-joyita\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Partner Blog Post: SQL and N1QL in Harmony: Collaborative Query Execution in Simba Couchbase Drivers - The Couchbase Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/pt\/sql-and-n1ql-in-harmony-collaborative-query-execution-in-simba-couchbase-drivers\/","og_locale":"pt_BR","og_type":"article","og_title":"Partner Blog Post: SQL and N1QL in Harmony: Collaborative Query Execution in Simba Couchbase Drivers","og_description":"Structured Query Language (SQL) was originally designed as an intuitive query language for relational data stores. NoSQL, relatively nascent in comparison, still requires compatibility with SQL as many BI tools and applications understand it. Couchbase supports its own query language, [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/sql-and-n1ql-in-harmony-collaborative-query-execution-in-simba-couchbase-drivers\/","og_site_name":"The Couchbase Blog","article_published_time":"2016-06-28T18:35:51+00:00","article_modified_time":"2024-09-12T08:15:19+00:00","author":"Nowrin Anwar Joyita","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Nowrin Anwar Joyita","Est. reading time":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/sql-and-n1ql-in-harmony-collaborative-query-execution-in-simba-couchbase-drivers\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/sql-and-n1ql-in-harmony-collaborative-query-execution-in-simba-couchbase-drivers\/"},"author":{"name":"Nowrin Anwar Joyita","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/90dc5afc5f8781a07c9d3f9b19ca2c40"},"headline":"Partner Blog Post: SQL and N1QL in Harmony: Collaborative Query Execution in Simba Couchbase Drivers","datePublished":"2016-06-28T18:35:51+00:00","dateModified":"2024-09-12T08:15:19+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/sql-and-n1ql-in-harmony-collaborative-query-execution-in-simba-couchbase-drivers\/"},"wordCount":802,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/sql-and-n1ql-in-harmony-collaborative-query-execution-in-simba-couchbase-drivers\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["SQL++ \/ N1QL Query"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/sql-and-n1ql-in-harmony-collaborative-query-execution-in-simba-couchbase-drivers\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/sql-and-n1ql-in-harmony-collaborative-query-execution-in-simba-couchbase-drivers\/","url":"https:\/\/www.couchbase.com\/blog\/sql-and-n1ql-in-harmony-collaborative-query-execution-in-simba-couchbase-drivers\/","name":"Partner Blog Post: SQL and N1QL in Harmony: Collaborative Query Execution in Simba Couchbase Drivers - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/sql-and-n1ql-in-harmony-collaborative-query-execution-in-simba-couchbase-drivers\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/sql-and-n1ql-in-harmony-collaborative-query-execution-in-simba-couchbase-drivers\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2016-06-28T18:35:51+00:00","dateModified":"2024-09-12T08:15:19+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/sql-and-n1ql-in-harmony-collaborative-query-execution-in-simba-couchbase-drivers\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/sql-and-n1ql-in-harmony-collaborative-query-execution-in-simba-couchbase-drivers\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/sql-and-n1ql-in-harmony-collaborative-query-execution-in-simba-couchbase-drivers\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/sql-and-n1ql-in-harmony-collaborative-query-execution-in-simba-couchbase-drivers\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Partner Blog Post: SQL and N1QL in Harmony: Collaborative Query Execution in Simba Couchbase Drivers"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"Blog do Couchbase","description":"Couchbase, o banco de dados NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/90dc5afc5f8781a07c9d3f9b19ca2c40","name":"Nowrin Anwar Joyita","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/05dcdd5d72e8fe12ef046bbcceb50427","url":"https:\/\/secure.gravatar.com\/avatar\/79860cfbf2db4a2eab20600a0c7fe3593ee307b568bdc720fd1b253170778ae6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/79860cfbf2db4a2eab20600a0c7fe3593ee307b568bdc720fd1b253170778ae6?s=96&d=mm&r=g","caption":"Nowrin Anwar Joyita"},"description":"Atualmente, Nowrin Anwar Joyita est\u00e1 trabalhando como desenvolvedor de software na Bit Quill Technologies. Antes de ingressar na Bit Quill Technologies, Nowrin passou cerca de dois anos na Simba Technologies como cientista da computa\u00e7\u00e3o. Ela trabalhou em v\u00e1rios drivers ODBC (C++) e JDBC (Java) na Simba, a saber: drivers Athena ODBC e JDBC, drivers Couchbase ODBC e JDBC, driver MongoDB ODBC, driver Presto JDBC, driver Drill ODBC.","url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/nowrin-joyita\/"}]}},"authors":[{"term_id":9047,"user_id":77,"is_guest":0,"slug":"nowrin-joyita","display_name":"Nowrin Anwar Joyita","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/79860cfbf2db4a2eab20600a0c7fe3593ee307b568bdc720fd1b253170778ae6?s=96&d=mm&r=g","author_category":"","last_name":"Joyita","first_name":"Nowrin Anwar","job_title":"","user_url":"","description":"Atualmente, Nowrin Anwar Joyita est\u00e1 trabalhando como desenvolvedor de software na Bit Quill Technologies. Antes de ingressar na Bit Quill Technologies, Nowrin passou cerca de dois anos na Simba Technologies como cientista da computa\u00e7\u00e3o. Ela trabalhou em v\u00e1rios drivers ODBC (C++) e JDBC (Java) na Simba, a saber: drivers Athena ODBC e JDBC, drivers Couchbase ODBC e JDBC, driver MongoDB ODBC, driver Presto JDBC, driver Drill ODBC."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2308","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/77"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=2308"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2308\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=2308"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=2308"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=2308"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=2308"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}