{"id":2062,"date":"2015-09-01T16:57:05","date_gmt":"2015-09-01T16:57:05","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2062"},"modified":"2025-06-13T23:47:44","modified_gmt":"2025-06-14T06:47:44","slug":"introducing-n1ql-sql-gene-in-nosql","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/introducing-n1ql-sql-gene-in-nosql\/","title":{"rendered":"Apresentando o N1QL: Gene SQL em NoSQL"},"content":{"rendered":"<h2>Gene SQL em NoSQL: Apresentando o N1QL<\/h2>\n<p>O NoSQL foi uma rea\u00e7\u00e3o ao movimento relacional que exigia um esquema r\u00edgido. O banco de dados relacional inclu\u00eda a linguagem de consulta SQL para pesquisar e remodelar os resultados de forma poderosa para compensar. Com a vers\u00e3o 4.0, o Couchbase Server cont\u00e9m tanto o gene SQL quanto o gene NoSQL em seu pool gen\u00e9tico! O Couchbase Server com SQL tem o modelo de dados flex\u00edvel com documentos JSON E tem uma linguagem SQL poderosa - N1QL, que \u00e9 de longe a linguagem mais expressiva para dados JSON. A combina\u00e7\u00e3o de JSON e SQL produz um emparelhamento poderoso que permite a programa\u00e7\u00e3o simplificada e novos aplicativos empresariais poderosos que capacitam a nova economia digital.<\/p>\n<h2>Por que adicionar um Gene SQL ao Couchbase Server?<\/h2>\n<p>Essa \u00e9 uma pergunta f\u00e1cil de responder:<\/p>\n<ul>\n<li>\n<p><strong>O SQL \u00e9 a maneira mais avan\u00e7ada de consultar dados. <\/strong>O SQL existe h\u00e1 mais de quatro d\u00e9cadas. Embora a maioria das outras linguagens de sua faixa et\u00e1ria n\u00e3o seja mais procurada, o SQL continua sendo a linguagem preferida em muitas plataformas modernas de processamento de dados.<\/p>\n<\/li>\n<li>\n<p><strong>O SQL \u00e9 o padr\u00e3o de fato para a consulta de dados entre v\u00e1rias ferramentas e plataformas de dados. <\/strong>O SQL est\u00e1 no centro de uma ampla gama de ferramentas, desde ferramentas de visualiza\u00e7\u00e3o de dados, ambientes de relat\u00f3rios empresariais, aplicativos de an\u00e1lise at\u00e9 plataformas ETL.<\/p>\n<\/li>\n<li>\n<p>Isso tamb\u00e9m ajuda, com sua longa vida \u00fatil, <strong>O SQL j\u00e1 \u00e9 uma ferramenta presente na caixa de ferramentas de muitos desenvolvedores.<\/strong> Pode ser a \u00fanica coisa que voc\u00ea e seu pai cientista da computa\u00e7\u00e3o t\u00eam em comum.<\/p>\n<\/li>\n<\/ul>\n<table align=\"center\" style=\"background-color:red;color:white;text-align:center\">\n<tbody>\n<tr>\n<th style=\"text-align:center\"><strong><a href=\"https:\/\/www.couchbase.com\/blog\/pt\/nosql-databases\/downloads\/#PreRelease\" style=\"color:white\">Download do Couchbase Server 4.0 Release Candidate<\/a><\/strong><\/th>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>\u00a0Primeira olhada em N1QL<\/h2>\n<p>Com o novo gene SQL no Couchbase Server, voc\u00ea obt\u00e9m uma linguagem de consulta expressiva e um mecanismo de consulta - N1QL, combinados com um novo e poderoso mecanismo de indexa\u00e7\u00e3o - os novos \u00edndices secund\u00e1rios globais.<\/p>\n<p>Isso deve parecer familiar para muitos de voc\u00eas. Este \u00e9 o N1QL:<\/p>\n<pre style=\"margin-left:40px\">\r\n<strong><em>SELECT * FROM bucket\r\nWHERE bucket.quantity&gt;100 OR \r\nbucket.price &lt; 9.95<\/em><\/strong><\/pre>\n<p>N\u00e3o sabe dizer a diferen\u00e7a entre o SQL relacional que voc\u00ea conhece e o N1QL do Couchbase? N\u00e3o se preocupe... Eles s\u00e3o primos muito pr\u00f3ximos. No entanto, h\u00e1 muitas coisas que s\u00e3o exclusivas do N1QL.<\/p>\n<ul>\n<li>\n<p><strong>N1QL \u00e9 SQL+JSON:<\/strong> O Couchbase Server \u00e9 um banco de dados de documentos com esquema flex\u00edvel criado com base em JSON. Com o N1QL + JSON, o desenvolvimento \u00e9 simplificado. O N1QL trabalha com JSON, mas n\u00e3o compromete a integridade da linguagem SQL, oferecendo suporte a opera\u00e7\u00f5es entre documentos, como JOINs, ou com cl\u00e1usulas que podem dinamizar dados JSON, como NEST e UNNEST.<\/p>\n<\/li>\n<li>\n<p><strong>O N1QL oferece a voc\u00ea desempenho com um novo e poderoso indexador - o GSI: <\/strong>Os \u00edndices secund\u00e1rios globais permitem baixa lat\u00eancia e escalabilidade inigual\u00e1veis. Os \u00edndices secund\u00e1rios globais s\u00e3o criados para oferecer a melhor lat\u00eancia e rendimento de varredura para aplicativos modernos e exigentes de big data.<\/p>\n<\/li>\n<li>\n<p><strong>O N1QL \u00e9 dimensionado com o novo modelo de dimensionamento multidimensional: <\/strong>O ambiente de consulta N1QL e os novos \u00edndices secund\u00e1rios globais s\u00e3o arquitetados para serem dimensionados independentemente das opera\u00e7\u00f5es de dados principais, eliminando as compensa\u00e7\u00f5es comuns de outros bancos de dados relacionais e NoSQL de escolher um modelo de escala unificado para todas as cargas de trabalho, desde as opera\u00e7\u00f5es de dados principais at\u00e9 a indexa\u00e7\u00e3o e as consultas.<\/p>\n<\/li>\n<\/ul>\n<p>Vamos dar uma olhada mais detalhada nessas tr\u00eas propriedades exclusivas do N1QL.<\/p>\n<h2>N1QL: SQL+JSON<\/h2>\n<p>O SQL relacional opera sobre tabelas e colunas e precisa de um esquema r\u00edgido. Com o N1QL, todas as consultas s\u00e3o executadas sobre dados JSON no Couchbase Server. Voc\u00ea n\u00e3o precisa lidar com uma estrutura r\u00edgida de tabelas e colunas OU se preocupar em alterar o esquema \u00e0 medida que seu modelo de dados evolui.<\/p>\n<p>O N1QL se adaptar\u00e1 ao esquema que os documentos JSON apresentam \u00e0 medida que forem criados e atualizados em seu bucket do Couchbase Server. Diferentemente do SQL em bancos de dados relacionais, atributos como quantidade ou pre\u00e7o, mencionados acima, podem estar ausentes. Voc\u00ea pode expressar sua consulta para desqualificar documentos que n\u00e3o contenham o atributo OU pode consultar o atributo somente quando ele existir.<\/p>\n<pre style=\"margin-left:40px\">\r\n<strong><em>SELECT * FROM bucket b1\r\nWHERE b1.quantity&gt;100 OR\r\n(b1.price IS NOT MISSING AND b1.price &lt; 9.95)<\/em><\/strong><\/pre>\n<p>Outra diferen\u00e7a importante \u00e9 que o N1QL fornece conjuntos de resultados JSON e permite que voc\u00ea modele o JSON com operadores avan\u00e7ados, como JOINs, NEST e UNNEST.<\/p>\n<pre style=\"margin-left:40px\">\r\n<em><strong>\"results\": [\r\n        {\r\n            \"beer_name\": \"Benchwarmer Porter\",\r\n            \"brewery_name\": \"Cooperstown Brewing Company\",\r\n            \"country\": \"United States\"\r\n        },\r\n        {\r\n            \"beer_name\": \"Old Jubilation Ale\",\r\n            \"brewery_name\": \"Avery Brewing Company\",\r\n            \"country\": \"United States\"\r\n        }, ...<\/strong><\/em><\/pre>\n<p>\u00a0<\/p>\n<p>Para aqueles que usam ferramentas cl\u00e1ssicas de gera\u00e7\u00e3o de relat\u00f3rios, visualiza\u00e7\u00e3o de dados ou ETL (extrair-transformar-carregar): a boa not\u00edcia \u00e9 que voc\u00ea pode obter drivers ODBC e JDBC de alta fidelidade que proporcionam uma integra\u00e7\u00e3o perfeita com um conjunto de resultados no estilo \"linhas e colunas\" do N1QL. Gra\u00e7as a <a href=\"https:\/\/www.simba.com\/couchbase\/couchbase-odbc-jdbc-connectivity-solutions-beta-now-available\" style=\"text-decoration:none\"><u>Drivers Simba ODBC e JDBC<\/u><\/a>Com o ODBC\/JDBC, voc\u00ea pode usar suas ferramentas favoritas, como Tableau, Excel ou PowerBI, com os drivers ODBC\/JDBC para integrar toda a hist\u00f3ria do ciclo de vida dos dados.<\/p>\n<h2>Consultas de alto desempenho com a nova indexa\u00e7\u00e3o secund\u00e1ria global (GSI)<\/h2>\n<p>O GSI traz um novo e poderoso indexador, al\u00e9m dos indexadores View e Spatial com redu\u00e7\u00e3o incremental de mapas no Couchbase Server 4.0. O recurso GSI foi criado especificamente para o N1QL e para aplicativos de big data com alta taxa de consultas. Os GSIs alcan\u00e7am um grande aumento de desempenho com uma arquitetura exclusiva que minimiza os efeitos de amplas dispers\u00f5es para o processamento de consultas.<\/p>\n<p>Os GSIs v\u00eam com particionamento independente e escalabilidade com o Multi-dimensional Scaling (mais sobre o MDS posteriormente). O GSI tamb\u00e9m foi desenvolvido com base em um mecanismo robusto de armazenamento e cache chamado ForestDB.<\/p>\n<p>Na figura abaixo, os lados esquerdo e direito mostram as etapas aproximadas de execu\u00e7\u00e3o de uma consulta comum.<\/p>\n<ul>\n<li>\n<p><strong>Consulta sem GSI: <\/strong>O caso \u00e0 esquerda mostra como muitos produtos existentes funcionam para executar consultas em um ambiente distribu\u00eddo. Na aus\u00eancia de GSI, os \u00edndices s\u00e3o distribu\u00eddos de acordo com o esquema de particionamento de dados em <em>N<\/em> n\u00f3s. O plano de execu\u00e7\u00e3o de uma consulta t\u00edpica envolve uma ampla <em>espalhar-se para<\/em> <em>N<\/em> n\u00f3s, um <em>coleta de N n\u00f3s<\/em> para capturar os resultados de cada n\u00f3, e <em>uma execu\u00e7\u00e3o final<\/em> que compila os resultados finais da consulta.<\/p>\n<\/li>\n<li>\n<p><strong>Consulta com o GSI<\/strong>: As etapas de execu\u00e7\u00e3o com o GSI n\u00e3o precisam se dispersar. A consulta pode atingir o \u00edndice que existe em um \u00fanico n\u00f3 e retornar os resultados.<\/p>\n<\/li>\n<\/ul>\n<p style=\"text-align:center\"><img decoding=\"async\" src=\"\/wp-content\/original-assets\/introducing-n1ql-sql-gene-in-nosql\/image02.png\" \/><\/p>\n<p>A maneira de gerenciar o GSI deve ser muito familiar se voc\u00ea j\u00e1 trabalhou com \u00edndices relacionais antes.<\/p>\n<pre style=\"margin-left:40px\">\r\n<strong><em>CREATE INDEX friends_index\r\nON user_profiles(friends.id)\r\nWHERE type=\u201duser profile\u201d\r\nUSING GSI;<\/em><\/strong><\/pre>\n<h2>Novo modelo de escalabilidade: Escalonamento multidimensional<\/h2>\n<p>Para explicar o dimensionamento multidimensional, vamos come\u00e7ar pela arquitetura de alto n\u00edvel do servidor: Com o Couchbase Server 4.0, cada n\u00f3 cont\u00e9m um gerenciador de cluster, dados, \u00edndice e componentes de servi\u00e7o de consulta, bem como o mecanismo de armazenamento e o cache gerenciado.<\/p>\n<p style=\"text-align:center\"><img decoding=\"async\" src=\"\/wp-content\/original-assets\/introducing-n1ql-sql-gene-in-nosql\/image01.png\" \/><\/p>\n<p>Veja a seguir os detalhes de cada componente:<\/p>\n<ul>\n<li>\n<p>O Cluster Manager \u00e9 respons\u00e1vel por controlar as opera\u00e7\u00f5es do cluster. Os n\u00f3s que entram e saem do cluster ou opera\u00e7\u00f5es como rebalanceamento s\u00e3o realizados pelo gerenciador de cluster.<\/p>\n<\/li>\n<li>\n<p>O Data Service \u00e9 respons\u00e1vel pelas principais opera\u00e7\u00f5es de dados por meio da API get\/set, que permite que voc\u00ea interaja com uma determinada chave. O Data Service tamb\u00e9m cont\u00e9m o mecanismo View: o mecanismo Map-Reduce incremental que existia nas vers\u00f5es anteriores.<\/p>\n<\/li>\n<li>\n<p>O servi\u00e7o de \u00edndice gerencia os novos \u00edndices criados especificamente para consultas N1QL. Os novos \u00edndices secund\u00e1rios globais s\u00e3o mantidos e podem ser consultados por meio do servi\u00e7o de \u00edndices.<\/p>\n<\/li>\n<li>\n<p>O Query Service gerencia as intera\u00e7\u00f5es de consulta N1QL. Ele recebe e executa a consulta para gerar o resultado final para os aplicativos.<\/p>\n<\/li>\n<li>\n<p>Todos os servi\u00e7os v\u00eam com servi\u00e7os principais que gerenciam suas necessidades de armazenamento e cache.<\/p>\n<\/li>\n<li>\n<p>Todos os clientes inteligentes e os drivers ODBC e JDBC v\u00eam com um \"mapa de cluster\" que descreve quais n\u00f3s devem ser acessados para as chamadas de API fornecidas para uma execu\u00e7\u00e3o mais eficiente.<\/p>\n<\/li>\n<\/ul>\n<p>Mesmo que cada n\u00f3 contenha o mesmo conjunto de componentes, com o novo modelo de escalabilidade, voc\u00ea pode ativar\/desativar com elasticidade os servi\u00e7os em azul em cada n\u00f3 e criar \"zonas\" que dimensionam independentemente os servi\u00e7os, como dados, \u00edndice e opera\u00e7\u00f5es de consulta, e escolher o melhor design de HW por zona com base em sua carga de trabalho.<\/p>\n<p>Voc\u00ea ainda pode implantar o cluster da mesma forma que faz hoje com o Couchbase Server 3.0 - escolha uma \u00fanica configura\u00e7\u00e3o de HW para todos os n\u00f3s, ative todos os servi\u00e7os em todos os n\u00f3s e distribua a carga por todos os n\u00f3s. Esse \u00e9 o bom e velho escalonamento horizontal uniforme. No entanto, o trabalho que precisa ser feito nos n\u00f3s para realizar opera\u00e7\u00f5es de dados essenciais, como GET\/SETs r\u00e1pidos, manter \u00edndices GSI e processar consultas N1QL, tem requisitos concorrentes. Compartilhar o mesmo n\u00f3 nem sempre faz sentido se voc\u00ea for sens\u00edvel \u00e0s lat\u00eancias de suas opera\u00e7\u00f5es.<\/p>\n<p>O modelo adicional de escalabilidade multidimensional permite que voc\u00ea divida o cluster em \"zonas\" que executam servi\u00e7os individuais (dados, consulta e \u00edndice) e, por sua vez, permite a escolha independente do HW para cada zona. Voc\u00ea pode escolher o melhor HW que combina com o tipo de indexa\u00e7\u00e3o e consulta que deseja fazer e ainda manter a baixa lat\u00eancia em suas opera\u00e7\u00f5es principais de GET\/SET.<\/p>\n<p>Na figura abaixo, o cluster tem tr\u00eas zonas que separam os servi\u00e7os de dados, \u00edndice e consulta. As caixas cinzas representam servi\u00e7os que est\u00e3o desativados em um determinado n\u00f3.<\/p>\n<p style=\"text-align:center\"><img decoding=\"async\" src=\"\/wp-content\/original-assets\/introducing-n1ql-sql-gene-in-nosql\/image03.png\" \/><\/p>\n<h2>H\u00e1 mais... muito mais...<\/h2>\n<p>Fizemos uma an\u00e1lise superficial do N1QL e, para ter uma vis\u00e3o mais aprofundada, voc\u00ea pode fazer o download e jogar com a vers\u00e3o Release Candidate do Couchbase Server 4.0.<\/p>\n<p>Para fazer o download do Couchbase Server 4.0, visite: <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/downloads\/\">p\u00e1gina de downloads<\/a> E para come\u00e7ar a usar o N1QL, basta acessar <a href=\"https:\/\/docs.couchbase.com\/server\/current\/getting-started\/try-a-query.html\">Guia de introdu\u00e7\u00e3o ao N1QL<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>SQL Gene in NoSQL:\u00a0Introducing N1QL NoSQL have been a reaction to relational movement that required rigid schema. Relational database bundled SQL query language to powerfully search and reshape the results to compensate. With version 4.0, Couchbase Server contains both the [&hellip;]<\/p>","protected":false},"author":7,"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":[1435,1261],"ppma_author":[8978],"class_list":["post-2062","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-n1ql-query","tag-couchbase-server-4-0","tag-json"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.1 (Yoast SEO v26.1.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Introducing N1QL: SQL gene in NoSQL - 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\/introducing-n1ql-sql-gene-in-nosql\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Introducing N1QL: SQL gene in NoSQL\" \/>\n<meta property=\"og:description\" content=\"SQL Gene in NoSQL:\u00a0Introducing N1QL NoSQL have been a reaction to relational movement that required rigid schema. Relational database bundled SQL query language to powerfully search and reshape the results to compensate. With version 4.0, Couchbase Server contains both the [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/introducing-n1ql-sql-gene-in-nosql\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2015-09-01T16:57:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T06:47:44+00:00\" \/>\n<meta name=\"author\" content=\"Cihan Biyikoglu, Director of Product Management, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Cihan Biyikoglu, Director of Product Management, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-n1ql-sql-gene-in-nosql\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-n1ql-sql-gene-in-nosql\/\"},\"author\":{\"name\":\"Cihan Biyikoglu, Director of Product Management, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3d8c60500ca29254fcdb2f76f29fb088\"},\"headline\":\"Introducing N1QL: SQL gene in NoSQL\",\"datePublished\":\"2015-09-01T16:57:05+00:00\",\"dateModified\":\"2025-06-14T06:47:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-n1ql-sql-gene-in-nosql\/\"},\"wordCount\":1450,\"commentCount\":3,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-n1ql-sql-gene-in-nosql\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"Couchbase Server 4.0\",\"JSON\"],\"articleSection\":[\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/introducing-n1ql-sql-gene-in-nosql\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-n1ql-sql-gene-in-nosql\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/introducing-n1ql-sql-gene-in-nosql\/\",\"name\":\"Introducing N1QL: SQL gene in NoSQL - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-n1ql-sql-gene-in-nosql\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-n1ql-sql-gene-in-nosql\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2015-09-01T16:57:05+00:00\",\"dateModified\":\"2025-06-14T06:47:44+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-n1ql-sql-gene-in-nosql\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/introducing-n1ql-sql-gene-in-nosql\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/introducing-n1ql-sql-gene-in-nosql\/#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\/introducing-n1ql-sql-gene-in-nosql\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Introducing N1QL: SQL gene in NoSQL\"}]},{\"@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\/3d8c60500ca29254fcdb2f76f29fb088\",\"name\":\"Cihan Biyikoglu, Director of Product Management, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/a878e65cb37ac2419416d3289816abd5\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/3e1ac58dd480dd8a6e93d700a58d329bb81df928061de04395055a45274b8702?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/3e1ac58dd480dd8a6e93d700a58d329bb81df928061de04395055a45274b8702?s=96&d=mm&r=g\",\"caption\":\"Cihan Biyikoglu, Director of Product Management, Couchbase\"},\"description\":\"Cihan Biyikoglu is a director of product management at Couchbase, responsible for the Couchbase Server product. Cihan is a big data enthusiast who brings over twenty years of experience to Redis Labs\u2019 product team. Cihan started his career as a C\/C++ developer.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/cihan-biyikoglu\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Introducing N1QL: SQL gene in NoSQL - 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\/introducing-n1ql-sql-gene-in-nosql\/","og_locale":"pt_BR","og_type":"article","og_title":"Introducing N1QL: SQL gene in NoSQL","og_description":"SQL Gene in NoSQL:\u00a0Introducing N1QL NoSQL have been a reaction to relational movement that required rigid schema. Relational database bundled SQL query language to powerfully search and reshape the results to compensate. With version 4.0, Couchbase Server contains both the [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/introducing-n1ql-sql-gene-in-nosql\/","og_site_name":"The Couchbase Blog","article_published_time":"2015-09-01T16:57:05+00:00","article_modified_time":"2025-06-14T06:47:44+00:00","author":"Cihan Biyikoglu, Director of Product Management, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Cihan Biyikoglu, Director of Product Management, Couchbase","Est. reading time":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/introducing-n1ql-sql-gene-in-nosql\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-n1ql-sql-gene-in-nosql\/"},"author":{"name":"Cihan Biyikoglu, Director of Product Management, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3d8c60500ca29254fcdb2f76f29fb088"},"headline":"Introducing N1QL: SQL gene in NoSQL","datePublished":"2015-09-01T16:57:05+00:00","dateModified":"2025-06-14T06:47:44+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-n1ql-sql-gene-in-nosql\/"},"wordCount":1450,"commentCount":3,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-n1ql-sql-gene-in-nosql\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["Couchbase Server 4.0","JSON"],"articleSection":["SQL++ \/ N1QL Query"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/introducing-n1ql-sql-gene-in-nosql\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/introducing-n1ql-sql-gene-in-nosql\/","url":"https:\/\/www.couchbase.com\/blog\/introducing-n1ql-sql-gene-in-nosql\/","name":"Introducing N1QL: SQL gene in NoSQL - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-n1ql-sql-gene-in-nosql\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-n1ql-sql-gene-in-nosql\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2015-09-01T16:57:05+00:00","dateModified":"2025-06-14T06:47:44+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/introducing-n1ql-sql-gene-in-nosql\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/introducing-n1ql-sql-gene-in-nosql\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/introducing-n1ql-sql-gene-in-nosql\/#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\/introducing-n1ql-sql-gene-in-nosql\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Introducing N1QL: SQL gene in NoSQL"}]},{"@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\/3d8c60500ca29254fcdb2f76f29fb088","name":"Cihan Biyikoglu, diretor de gerenciamento de produtos, Couchbase","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/a878e65cb37ac2419416d3289816abd5","url":"https:\/\/secure.gravatar.com\/avatar\/3e1ac58dd480dd8a6e93d700a58d329bb81df928061de04395055a45274b8702?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3e1ac58dd480dd8a6e93d700a58d329bb81df928061de04395055a45274b8702?s=96&d=mm&r=g","caption":"Cihan Biyikoglu, Director of Product Management, Couchbase"},"description":"Cihan Biyikoglu \u00e9 diretor de gerenciamento de produtos da Couchbase, respons\u00e1vel pelo produto Couchbase Server. Cihan \u00e9 um entusiasta de big data que traz mais de vinte anos de experi\u00eancia para a equipe de produtos da Redis Labs. Cihan come\u00e7ou sua carreira como desenvolvedor C\/C++.","url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/cihan-biyikoglu\/"}]}},"authors":[{"term_id":8978,"user_id":7,"is_guest":0,"slug":"cihan-biyikoglu","display_name":"Cihan Biyikoglu, Director of Product Management, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/3e1ac58dd480dd8a6e93d700a58d329bb81df928061de04395055a45274b8702?s=96&d=mm&r=g","author_category":"","last_name":"Biyikoglu","first_name":"Cihan","job_title":"","user_url":"","description":"Cihan Biyikoglu \u00e9 diretor de gerenciamento de produtos da Couchbase, respons\u00e1vel pelo produto Couchbase Server. Cihan \u00e9 um entusiasta de big data que traz mais de vinte anos de experi\u00eancia para a equipe de produtos da Redis Labs. Cihan come\u00e7ou sua carreira como desenvolvedor C\/C++."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2062","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\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=2062"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2062\/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=2062"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=2062"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=2062"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=2062"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}