{"id":2060,"date":"2015-11-25T18:20:49","date_gmt":"2015-11-25T18:20:49","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2060"},"modified":"2023-08-13T23:50:52","modified_gmt":"2023-08-14T06:50:52","slug":"bulk-loading-documents-into-couchbase","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/bulk-loading-documents-into-couchbase\/","title":{"rendered":"Conversi\u00f3n de datos CSV a JSON y carga masiva de documentos en Couchbase"},"content":{"rendered":"<h2>Carga masiva de documentos en<em>\u00a0<\/em>Couchbase<\/h2>\n<p>Este art\u00edculo es un ejemplo de c\u00f3mo cargar datos como JSON en Couchbase. Para el prop\u00f3sito de este post, los datos extra\u00eddos de RDBMS como CSV ser\u00e1n convertidos a JSON. RDBMS DBAs y Admins familiarizados con Oracle, SQL server, MySQL, etc probablemente est\u00e1n buscando una manera de experimentar y probar con NoSQL. A menudo, el primer paso en el uso de NoSQL es convertir lo que tienes en JSON<strong>.\u00a0<\/strong><\/p>\n<p>Couchbase soporta datos JSON y Binarios, pero para el prop\u00f3sito de este post estamos viendo el tipo de datos m\u00e1s rico, JSON.Esto es importante de entender porque al cargar documentos en Couchbase en un formato diferente a JSON, los datos ser\u00e1n cargados como binarios y pueden impactar la flexibilidad de la vista al tratar de construir vistas o \u00edndices. Dicho esto, vamos a cargar algunos documentos. Hay dos maneras de conseguirlo, pero para el prop\u00f3sito de este post asumo que cualquier documento que quieras cargar est\u00e1 ya en formato JSON y comprimido o sin comprimir. La siguiente secci\u00f3n describir\u00e1 un posible camino para asegurar que est\u00e1s cargando datos JSON.<\/p>\n<p>Algunos socios de Couchbase ETL, como\u00a0<a href=\"https:\/\/docs.couchbase.com\/admin\/talend\/talend.html\">Talend<\/a>Talend, que ofrece un conector para Couchbase si desea una interfaz gr\u00e1fica de usuario, tal vez no quiere tratar con archivos CSV o desea reordenar sus datos antes de enviarlos a CSV o simplemente tiene la necesidad de ETL datos de varias fuentes antes de almacenar en Couchbase Server. Talend puede mapear y almacenar documentos directamente como archivos JSON antes de cargarlos en Couchbase, si se desea .<\/p>\n<p>Esta gu\u00eda asume que tienes cierta familiaridad con Linux o Mac, gestores de paquetes y Ruby.<\/p>\n<p>Para obtener m\u00e1s informaci\u00f3n sobre la configuraci\u00f3n del SDK, visite <a href=\"https:\/\/www.couchbase.com\/blog\/es\/developers\/\">www.couchbase.com\/developers\/<\/a><\/p>\n<p style=\"text-align: left\">Los pasos utilizados para preparar y cargar los datos son los siguientes:<\/p>\n<ol>\n<li><strong>Preparar los datos<\/strong>: Mira un par de herramientas de ejemplo para convertir el CSV a JSON.<\/li>\n<li><strong>Cargar los datos<\/strong>: Examinar algunos m\u00e9todos para cargar los datos en couchbase a trav\u00e9s de scripts Ruby.<\/li>\n<\/ol>\n<h3>Requisitos previos para Linux y Mac: <em>Requiere un entorno de construcci\u00f3n funcional.<\/em><\/h3>\n<ol>\n<li>Libcouchbase: Dado que este script utiliza Ruby debes tener instalado libcouchbase antes de instalar la gema couchbase\n<ul>\n<li><a href=\"https:\/\/docs.couchbase.com\/couchbase-sdk-ruby-1.3\/index.html#installing-the-couchbase-client-libraries\">Instalaci\u00f3n de bibliotecas cliente C<\/a><\/li>\n<\/ul>\n<\/li>\n<li>rubygem: aseg\u00farese de que dispone de rubygems para instalar la envoltura ruby couchbase\n<ul>\n<li>Las gemas que he utilizado son\n<ul>\n<li>ruby-progressbar<\/li>\n<li>couchbase<\/li>\n<li>yaji<\/li>\n<li>optparse<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>Yajl parser: tambi\u00e9n debe instalarse como requisito previo a YAJI.\n<ul>\n<li><a href=\"https:\/\/github.com\/avsej\/yaji\">P\u00e1gina del analizador YAJI con instrucciones para libyajl<\/a><\/li>\n<\/ul>\n<\/li>\n<li>Instalar Couchbase Gem: <em>gem install couchbase<\/em><\/li>\n<\/ol>\n<p>Si la configuraci\u00f3n se ha realizado correctamente, los scripts ruby que he proporcionado deber\u00edan ejecutarse. Puede que quieras pasar -h al streamloader y asegurarte de que recibes el mensaje de sintaxis. Por \u00faltimo, no te olvides de instalar los GEMs enumerados tambi\u00e9n, Yaji, optparse, couchbase, y ruby-progressbar. Los enlaces se proporcionan en la parte inferior de este post.<\/p>\n<p><strong>Preparar los datos<\/strong><\/p>\n<h4><u>M\u00e9todo de preparaci\u00f3n de datos 1: sencillo, r\u00e1pido y coherente: <em>csvtojson<\/em> Script NodeJS<\/u><\/h4>\n<ul>\n<li>Se puede encontrar a trav\u00e9s de Google para y hay otros tambi\u00e9n.<\/li>\n<li>Se instala mediante NPM ala <em>`npm install -g csvtojson`<\/em><\/li>\n<\/ul>\n<p>Aqu\u00ed tienes un ejemplo de conversi\u00f3n como referencia:<\/p>\n<pre><code>Austins-MBP:complaintstemp austin$ npm info csvtojson\r\n{ name: 'csvtojson',\r\n  description: 'A tool concentrating on converting csv data to JSON with customised parser supporting',\r\n  'dist-tags': { latest: '0.3.21' },\r\nAustins-MBP:complaintstemp austin$ which csvtojson\r\n\/usr\/local\/bin\/csvtojson\r\nAustins-MBP:complaintstemp austin$ csvtojson data.gov_Consumer_Complaints.csv<\/code><\/pre>\n<h4><u>M\u00e9todo 2 de preparaci\u00f3n de datos: Escribir un script Ruby: <em>csv2json.rb<\/em>\u00a0<\/u><\/h4>\n<p>El tiempo para completar el proceso variar\u00e1 porque Ruby es monohilo.<\/p>\n<p>Una nota adicional para este script es que estoy usando la funci\u00f3n <a href=\"https:\/\/github.com\/lloyd\/yajl\">YAJL<\/a> en lugar del m\u00f3dulo JSON por defecto, que no maneja la transmisi\u00f3n de datos a Couchbase.<\/p>\n<p>El script de abajo muestra el \u00fanico cambio necesario. Esto mejorar\u00e1 el uso de memoria durante la conversi\u00f3n. Si no ha instalado YAJL antes de que usted puede simplemente hacer esto: <em>'gem install yajl-ruby'<\/em><\/p>\n<pre><code class=\"language-ruby\">#!\/usr\/bin\/env ruby\r\nrequire 'rubygems'\r\nrequire 'csv'\r\nrequire 'pathname'\r\n#require 'JSON'\r\nrequire 'yajl\/json_gem'\r\n\r\nDir[\".\/**\/*.csv\"].each do |csv_file_path|\r\n\r\n  puts csv_file_path\r\n  file_name = Pathname.new(csv_file_path).basename(\".csv\").to_s\r\n\r\n  File.open(\"#{file_name}.json\",'w') do |json_file|\r\n\r\n  jsonData = CSV.read(csv_file_path,\r\n     :headers =&gt; true, :header_converters =&gt; :symbol).map{|csv_row| csv_row.to_hash}\r\n\r\n    json_file.write(JSON.pretty_generate(jsonData));\r\n  end\r\nend\r\n<\/code><\/pre>\n<h3>Pasos posteriores a la conversi\u00f3n<\/h3>\n<p>Una vez finalizada la conversi\u00f3n, es hora de comprimir el archivo con ZIP:<\/p>\n<pre><code>\u00a0Austins-MBP:complaintstemp austin$ ls\r\nConsumer_Complaints.csv        Consumer_Complaints.json    csv2json.rb\r\n \r\nAustins-MBP:complaintstemp austin$ zip Consumer_Complaints.zip Consumer_Complaints.json\r\n  adding: Consumer_Complaints.json (deflated 95%)<\/code><\/pre>\n<p>Coloca los archivos zip en un directorio. Yo he utilizado <em>~\/Downloads\/json_files\/<\/em> en mi directorio personal.<\/p>\n<pre><code>Austins-MBP:complaintstemp austin$ cp Consumer_Complaints.zip ~\/Downloads\/json_files\/<\/code><\/pre>\n<p>Una vez que los datos han sido preparados, est\u00e1s listo para empezar a cargarlos. Los siguientes ejemplos se refieren a un par de maneras comunes de obtener sus datos en Couchbase a granel.<\/p>\n<p>La instalaci\u00f3n de Couchbase viene con una herramienta integrada llamada <strong><em>cbcdocloader<\/em><\/strong>. Toma archivos de documentos individuales, de hasta 20 MB de tama\u00f1o, comprimidos o dentro de un directorio y los carga. En el momento de escribir este art\u00edculo <em><strong>cbcdocloader<\/strong><\/em>\u00a0requiere m\u00faltiples archivos formateados en JSON contenidos en un directorio. En segundo lugar, hablar\u00e9 de una herramienta que escrib\u00ed en Ruby y que emplea la herramienta de Couchbase, Sergey Asavayev. <a href=\"https:\/\/github.com\/avsej\/yaji\">YAJI<\/a> Gema Ruby. El c\u00f3digo al que se hace referencia es de uso libre y puede reescribirse en cualquier lenguaje con el que te sientas c\u00f3modo.<\/p>\n<h4><strong><u>M\u00e9todo 1 de carga de documentos <em>cbcdocloader<\/em><\/u><\/strong><\/h4>\n<p>Utilizar un conjunto de archivos individuales dentro de un directorio es un caso de uso com\u00fan, pero depende de que la estructura de los archivos y directorios que se van a importar refleje los documentos deseados tal y como aparecer\u00e1n una vez cargados. Para ayudar a preservar esa estructura, recomendamos empaquetar los archivos y directorios que se van a cargar en un archivo .zip.<\/p>\n<p><u>Los nombres de las claves de identificaci\u00f3n de los documentos se basar\u00e1n en los archivos de documentos proporcionados.<\/u><\/p>\n<p><strong><em>Nota:\u00a0<\/em><\/strong><em>t<\/em><em>ste m\u00e9todo no es ideal para grandes ficheros de documentos consolidados. Para grandes ficheros monol\u00edticos ejemplificar\u00e9 c\u00f3mo se cargan en el M\u00e9todo 2, m\u00e1s abajo.<\/em><\/p>\n<p>A continuaci\u00f3n, cargue el archivo o archivos mediante el siguiente comando:<\/p>\n<pre><code>cbdocloader -u Administrator -p s3kre7Pa55 -b MyBucketToLoad -n 127.0.0.1:8091 -s 1000 \r\n~\/json_files\/beer-sample.zip\r\n<\/code><\/pre>\n<p><strong>Nota<\/strong>:<br \/>\nEl '-s 1000' es el tama\u00f1o de memoria para el cubo. Tendr\u00e1s que ajustar este valor para tu cubo.<br \/>\nTampoco es necesario que el cubo exista como <em>cbcdocloader<\/em> lo crear\u00e1, pero sea consciente de la utilizaci\u00f3n de sus recursos antes de configurar el indicador '-s' para asegurarse de que tiene RAM disponible.<\/p>\n<p>Si todo ha ido bien, ver\u00e1s un mensaje indicando si se han cargado documentos, cu\u00e1ntos bytes, etc.<\/p>\n<pre><code>\r\nbucket: 2014-10-02-ny-json.zip, msgs transferred...\r\n       :                total |       last |    per sec\r\n byte  :            242446488 |  242446488 |  3115728.2\r\n<\/code><\/pre>\n<p>He aqu\u00ed un breve script para cargar un mont\u00f3n de archivos .zip en un directorio determinado:<\/p>\n<pre><code>#!\/bin\/bash\r\nJSON_Dir=~\/json_files\/\r\nfor ZipFile in $JSON_Dir\/*.zip ; \r\ndo \/Applications\/Couchbase Server.app\/Contents\/Resources\/couchbase-core\/bin\/cbdocloader  \r\n    -u Administrator -p s3kre7Pa55 -b MyBucketToLoad                                  \r\n    -n 127.0.0.1:8091 -s 1000 $ZipFile\r\n done\r\n<\/code><\/pre>\n<h4>M\u00e9todo de carga de documentos 2: streamloadjson<\/h4>\n<p>El otro m\u00e9todo consiste en cargar todos los documentos, separados por comas, desde un \u00fanico archivo monol\u00edtico.<\/p>\n<p>Para llevar a cabo este m\u00e9todo he preparado un peque\u00f1o pero efectivo script que utiliza el parser YAJI JSON stream y lo he llamado <em>streamjsonload<\/em>.<\/p>\n<p>Las opciones de este programa son:<\/p>\n<pre><code>~$ ruby streamloadjson.rb -h\r\nruby json loader\r\n    -f, --jsonfile jsonfile          JSON formatted filename\r\n    -b, --bucketname BUCKETNAME      bucket name\r\n    -n, --hostname hostname          hostname\/ip address\r\n    -r, --root JSONroot              JSON root to parse\r\n    -d, --docid SearchKey            JSON Key ID\r\n    -h, --help                       This menu<\/code><\/pre>\n<p>Para cargar documentos con un archivo JSON de prueba como padres.json.txt de abajo, se puede llamar as\u00ed:<\/p>\n<pre><code class=\"language-ruby\">ruby streamloadjson.rb -b TestBucket -f fathers.json -n localhost -d id -r \/fathers\/<\/code><\/pre>\n<p>El script debe proporcionar una salida como la siguiente:<\/p>\n<pre><code>Reading from fathers.json\r\nJSON path processed is \/fathers\/\r\nCouchbase  node is localhost\r\n29999 Time: 00:00:07 |&gt;&gt;---=---=---=---=---| Doc Loading<\/code><\/pre>\n<p>Una gran ventaja de utilizar el analizador YAJI es que requiere un consumo de memoria muy bajo. Esto significa que potencialmente podr\u00edas paginar los datos de entrada y dividirlos en m\u00faltiples flujos para cargarlos en couchbase. Generar\u00e1 procesos discretos ya que Ruby es de un solo hilo, pero tambi\u00e9n se podr\u00eda utilizar otro lenguaje para multihilos. Un ejemplo de esto est\u00e1 en el repositorio Github de Couchbase Labs.<\/p>\n<p><strong>Un par de cosas a tener en cuenta, <\/strong>Esta herramienta s\u00f3lo carga archivos de documentos monol\u00edticos, intentar\u00e1 crear un ID autom\u00e1ticamente si no se proporciona uno con '-d' y requerir\u00e1 alg\u00fan ajuste fino de la \"ra\u00edz\" con -r si no se cargan documentos.<\/p>\n<p>C\u00f3digo m\u00e1s reciente para el cargador est\u00e1 disponible en mi <a href=\"https:\/\/github.com\/agonyou\/cb-examples\/blob\/master\/CB_csv_streamloader\/CB_SDK_streamloadjson.rb\">repositorio github<\/a>pero tambi\u00e9n lo he puesto en l\u00ednea m\u00e1s abajo:<\/p>\n<pre><code class=\"language-ruby\">#!\/usr\/bin\/env ruby\r\n\r\n#An example JSON file for testing is at:\r\n# https:\/\/github.com\/ysharplanguage\/FastJsonParser\/raw\/master\/JsonTest\/TestData\/fathers.json.txt\r\n\r\nrequire 'ruby-progressbar'\r\nrequire 'rubygems'\r\nrequire 'couchbase'\r\nrequire 'yaji'\r\nrequire 'optparse'\r\n\r\noptions = {}\r\n\r\noptparse = OptionParser.new do |opts|\r\nopts.banner = 'ruby json loader'\r\n\r\nopts.on('-f', '--jsonfile jsonfile', 'JSON formatted filename') do |jsonfile|\r\noptions[:jsonfile] = jsonfile\r\nend\r\n\r\nopts.on('-b', '--bucketname BUCKETNAME', 'bucket name') do |bucketname|\r\noptions[:bucketname] = bucketname\r\nend\r\n\r\nopts.on('-n', '--hostname hostname', 'hostname\/ip address') do |hostname|\r\noptions[:hostname] = hostname\r\n end\r\n\r\nopts.on('-r', '--root JSONroot', 'JSON root to parse') do |root|\r\noptions[:root] = root\r\n end\r\n\r\nopts.on('-d', '--docid SearchKey', 'JSON Key ID') do |docid|\r\noptions[:docid] = docid\r\n end\r\n\r\nopts.on('-h', '--help', 'This menu') { puts opts; exit}\r\nend\r\n\r\noptparse.parse!\r\n\r\njson_file = options[:jsonfile]\r\nbucket = options[:bucketname]\r\nhost = options[:hostname]\r\nroot = options[:root]\r\ndocid = options[:docid]\r\n\r\n#set some defaults if not passed\r\nunless host\r\n      host=localhost\r\nend\r\n\r\nunless root\r\n    root=\"\/\"\r\nend\r\n\r\nputs \"Reading from #{json_file}\"\r\nputs \"JSON path processed is #{root}\"\r\nputs \"Couchbase  node is #{host}\"\r\n\r\n# Connect to couchbase host and bucket provided on the command line\r\nclient = Couchbase.connect(:bucket =&gt; bucket, :host =&gt; host)\r\n\r\n#Create the progressbar\r\nprogressbar=ProgressBar.create(:title =&gt; \"Doc Loading\",\r\n                               :starting_at =&gt; 0,\r\n                               :total =&gt; nil,\r\n                               :throttle_rate =&gt; 0.01,\r\n                               :format =&gt; '%a |%b&gt;&gt;%i| %p%% %t',\r\n                               :length =&gt; 50)\r\n\r\nparser = YAJI::Parser.new(File.open(json_file))\r\n\r\n  parser.each(root.to_s).with_index do |doc,i|\r\n  unless docid\r\n     hashinfo=doc.hash.abs\r\n     prikey=\"Doc_#{i}:#{hashinfo}\"\r\n  end\r\nprikey=\"#{docid}:#{doc[\"#{docid}\"]}\"\r\n\r\n  client.set(\"#{prikey}\", doc)\r\n  print(\"rProcessed #{i} Documents\")\r\n  progressbar.increment\r\n  end\r\nprogressbar.finished?\r\nputs<\/code><\/pre>\n<h3>Acabar el trabajo<\/h3>\n<p>Una vez cargados los datos, inicia sesi\u00f3n en la consola de Couchbase y empieza a trabajar con vistas de desarrollo para consultas e indexaci\u00f3n.<\/p>\n<p>Si utiliza <a href=\"https:\/\/www.couchbase.com\/blog\/es\/introducing-developer-preview-for-couchbase-server-4.0\/\">Couchbase Server 4.0 con N1QL<\/a> \u00a1querr\u00e1s crear un \u00edndice primario para poder explorar la interfaz tipo SQL de Couchbase inmediatamente y empezar a aprovechar el poder de consulta de N1QL a trav\u00e9s de nuestros SDKs!<\/p>\n<p>Muchas gracias a la gran gente de la comunidad Open Source por proporcionar la gema YAJL y a Sergey Avseyev por el parser YAJI. Sergey es un recurso de Couchbase muy bien informado responsable del trabajo del SDK de Ruby y tambi\u00e9n me gustar\u00eda animar a cualquiera de ustedes a probar nuestro SDK de JRuby y proporcionar retroalimentaci\u00f3n.<\/p>\n<p><strong>Enlaces<\/strong>:<\/p>\n<p>CB Ejemplos Github -\u00a0<a href=\"https:\/\/github.com\/agonyou\/cb-examples\/\">https:\/\/github.com\/agonyou\/cb-examples\/<\/a><br \/>\nYAJI Stream Parser - <a href=\"https:\/\/github.com\/avsej\/yaji\">https:\/\/github.com\/avsej\/yaji<\/a><br \/>\nGema YAJL JSON - <a href=\"https:\/\/github.com\/brianmario\/yajl-ruby\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/brianmario\/yajl-ruby <\/a><br \/>\ncsv2json Gem - <a href=\"https:\/\/rubygems.org\/gems\/csv2json\/\">https:\/\/rubygems.org\/gems\/csv2json\/<\/a><br \/>\nCouchbase Server 4 con N1QL - <a href=\"https:\/\/www.couchbase.com\/blog\/es\/nosql-databases\/downloads\/#PreRelease\">https:\/\/www.couchbase.com\/nosql-databases\/downloads<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Bulk Loading Documents into\u00a0Couchbase This blog post\u00a0is an example of how one might load data as JSON into Couchbase. For the purpose of this post, data extracted from RDBMS as a CSV will be converted to JSON.\u00a0RDBMS DBAs and Admins [&hellip;]<\/p>","protected":false},"author":50,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1],"tags":[],"ppma_author":[9024],"class_list":["post-2060","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Bulk Loading Documents into Couchbase - 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\/es\/bulk-loading-documents-into-couchbase\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Converting CSV data to JSON and Bulk Loading Documents into Couchbase\" \/>\n<meta property=\"og:description\" content=\"Bulk Loading Documents into\u00a0Couchbase This blog post\u00a0is an example of how one might load data as JSON into Couchbase. For the purpose of this post, data extracted from RDBMS as a CSV will be converted to JSON.\u00a0RDBMS DBAs and Admins [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/bulk-loading-documents-into-couchbase\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2015-11-25T18:20:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-14T06:50:52+00:00\" \/>\n<meta name=\"author\" content=\"Austin Gonyou, Solutions Engineer, 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=\"Austin Gonyou, Solutions Engineer, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/bulk-loading-documents-into-couchbase\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/bulk-loading-documents-into-couchbase\/\"},\"author\":{\"name\":\"Austin Gonyou, Solutions Engineer, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/2af7d073b54a8723d45b386488b6c23d\"},\"headline\":\"Converting CSV data to JSON and Bulk Loading Documents into Couchbase\",\"datePublished\":\"2015-11-25T18:20:49+00:00\",\"dateModified\":\"2023-08-14T06:50:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/bulk-loading-documents-into-couchbase\/\"},\"wordCount\":1317,\"commentCount\":3,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/bulk-loading-documents-into-couchbase\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Uncategorized\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/bulk-loading-documents-into-couchbase\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/bulk-loading-documents-into-couchbase\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/bulk-loading-documents-into-couchbase\/\",\"name\":\"Bulk Loading Documents into Couchbase - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/bulk-loading-documents-into-couchbase\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/bulk-loading-documents-into-couchbase\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2015-11-25T18:20:49+00:00\",\"dateModified\":\"2023-08-14T06:50:52+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/bulk-loading-documents-into-couchbase\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/bulk-loading-documents-into-couchbase\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/bulk-loading-documents-into-couchbase\/#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\/bulk-loading-documents-into-couchbase\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Converting CSV data to JSON and Bulk Loading Documents into Couchbase\"}]},{\"@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\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@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\/2af7d073b54a8723d45b386488b6c23d\",\"name\":\"Austin Gonyou, Solutions Engineer, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/a39ad9071c4f649bd25a834bc382587c\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d245d5b88af47043c834d9fc35101db4840440c89169a9a6b2460ceec055a7bc?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d245d5b88af47043c834d9fc35101db4840440c89169a9a6b2460ceec055a7bc?s=96&d=mm&r=g\",\"caption\":\"Austin Gonyou, Solutions Engineer, Couchbase\"},\"description\":\"Austin Gonyou is a Solutions Engineer at Couchbase from past 4 years. Austin brings technical solutions about Couchbase NoSQL Document Database server and mobile conversations facilitated by inside, mid-level, and enterprise sales staff for our prospects and customers.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/austin-gonyou\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Bulk Loading Documents into Couchbase - 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\/es\/bulk-loading-documents-into-couchbase\/","og_locale":"es_MX","og_type":"article","og_title":"Converting CSV data to JSON and Bulk Loading Documents into Couchbase","og_description":"Bulk Loading Documents into\u00a0Couchbase This blog post\u00a0is an example of how one might load data as JSON into Couchbase. For the purpose of this post, data extracted from RDBMS as a CSV will be converted to JSON.\u00a0RDBMS DBAs and Admins [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/es\/bulk-loading-documents-into-couchbase\/","og_site_name":"The Couchbase Blog","article_published_time":"2015-11-25T18:20:49+00:00","article_modified_time":"2023-08-14T06:50:52+00:00","author":"Austin Gonyou, Solutions Engineer, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Austin Gonyou, Solutions Engineer, Couchbase","Est. reading time":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/bulk-loading-documents-into-couchbase\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/bulk-loading-documents-into-couchbase\/"},"author":{"name":"Austin Gonyou, Solutions Engineer, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/2af7d073b54a8723d45b386488b6c23d"},"headline":"Converting CSV data to JSON and Bulk Loading Documents into Couchbase","datePublished":"2015-11-25T18:20:49+00:00","dateModified":"2023-08-14T06:50:52+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/bulk-loading-documents-into-couchbase\/"},"wordCount":1317,"commentCount":3,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/bulk-loading-documents-into-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Uncategorized"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/bulk-loading-documents-into-couchbase\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/bulk-loading-documents-into-couchbase\/","url":"https:\/\/www.couchbase.com\/blog\/bulk-loading-documents-into-couchbase\/","name":"Bulk Loading Documents into Couchbase - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/bulk-loading-documents-into-couchbase\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/bulk-loading-documents-into-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2015-11-25T18:20:49+00:00","dateModified":"2023-08-14T06:50:52+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/bulk-loading-documents-into-couchbase\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/bulk-loading-documents-into-couchbase\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/bulk-loading-documents-into-couchbase\/#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\/bulk-loading-documents-into-couchbase\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Converting CSV data to JSON and Bulk Loading Documents into Couchbase"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"El blog de Couchbase","description":"Couchbase, la base de datos 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":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@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\/2af7d073b54a8723d45b386488b6c23d","name":"Austin Gonyou, Ingeniero de soluciones, Couchbase","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/a39ad9071c4f649bd25a834bc382587c","url":"https:\/\/secure.gravatar.com\/avatar\/d245d5b88af47043c834d9fc35101db4840440c89169a9a6b2460ceec055a7bc?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d245d5b88af47043c834d9fc35101db4840440c89169a9a6b2460ceec055a7bc?s=96&d=mm&r=g","caption":"Austin Gonyou, Solutions Engineer, Couchbase"},"description":"Austin Gonyou is a Solutions Engineer at Couchbase from past 4 years. Austin brings technical solutions about Couchbase NoSQL Document Database server and mobile conversations facilitated by inside, mid-level, and enterprise sales staff for our prospects and customers.","url":"https:\/\/www.couchbase.com\/blog\/es\/author\/austin-gonyou\/"}]}},"authors":[{"term_id":9024,"user_id":50,"is_guest":0,"slug":"austin-gonyou","display_name":"Austin Gonyou, Solutions Engineer, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/d245d5b88af47043c834d9fc35101db4840440c89169a9a6b2460ceec055a7bc?s=96&d=mm&r=g","author_category":"","last_name":"Gonyou","first_name":"Austin","job_title":"","user_url":"","description":"Austin Gonyou es Ingeniero de Soluciones en Couchbase desde hace 4 a\u00f1os.\r\nAustin aporta soluciones t\u00e9cnicas sobre el servidor de bases de datos de documentos NoSQL de Couchbase y conversaciones m\u00f3viles facilitadas por personal de ventas interno, de nivel medio y empresarial para nuestros clientes potenciales y clientes."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2060","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/50"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=2060"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2060\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=2060"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=2060"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=2060"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=2060"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}