--- type: Resumen title: "Estudio — Google Cloud (gcloud + BigQuery)" description: "Estudio de google-cloud publicado como sitio: scripts minimalistas para implementarlo y cómo se conecta con el OKF." resource: "https://gerardoesquivia.com/google-cloud/" status: publicado tags: [estudio, google-cloud, scripts-minimalistas, documentacion, okf] timestamp: 2026-10-04 creator: "Gerardo Esquivia Zapata" grafo: datos --- # Estudio — Google Cloud (gcloud + BigQuery) > **Sitio publicado:** https://gerardoesquivia.com/google-cloud/ > **Nota generada del sitio** para que el estudio regrese al OKF (REGLA del ciclo: > la documentación no está completa hasta estar publicada **Y** registrada). ## Cómo usarla Los **scripts minimalistas** de abajo se copian y funcionan. Esa es la parte que vale: la prosa se lee y se olvida; un script se pega y arranca. --- ## 1 · gcloud CLI + Cloud Storage Autenticarse, elegir proyecto y trabajar con buckets. ### 🐍 Script minimalista ``` # 1. Autenticarse y elegir proyecto gcloud auth login gcloud config set project MI_PROYECTO # 2. Cloud Storage: crear bucket y subir un archivo gsutil mb gs://mi-bucket-ejemplo gsutil cp archivo.txt gs://mi-bucket-ejemplo/ ``` ### 🔁 Cómo funciona - gcloud auth login abre el navegador para autenticar tu cuenta. - gcloud config set project fija el proyecto activo. - gsutil mb crea un bucket; gsutil cp sube archivos. 💡 Cloud Storage = almacenamiento de objetos (buckets) para archivos, estáticos o datos. ## 2 · BigQuery (SQL serverless) Consultar terabytes con SQL sin gestionar servidores. ### 🐍 Script minimalista ``` # SQL directo (consola / bq query) SELECT nombre, COUNT(*) AS total FROM `proyecto.dataset.tabla` GROUP BY nombre; ``` ``` # Desde Python # pip install google-cloud-bigquery from google.cloud import bigquery client = bigquery.Client() for row in client.query("SELECT 1 AS x").result(): print(row.x) ``` ### 🔑 Conceptos clave | Concepto | Qué es | | --- | --- | | gcloud / gsutil / bq | CLIs de GCP: auth, storage, BigQuery | | proyecto.dataset.tabla | Identificador completo de una tabla de BigQuery | | google-cloud-bigquery | SDK Python (client.query) | | gcloud auth login | Autenticación (o Application Default Credentials) | ## 3 · Grafo animado — el flujo en GCP El token 🟠 recorre el flujo. Clic en el gráfico reinicia la animación. Iniciando… ## 4 · Referencia y regla de librerías | Comando / API | Qué hace | | --- | --- | | gcloud auth login · config set project | Autenticar y elegir proyecto | | gsutil mb / cp | Crear bucket / subir archivo | | SELECT ... FROM `p.d.t` | Consulta BigQuery serverless | | google-cloud-bigquery | SDK Python para consultas | 📦 Regla de librerías (local primero): revisar C:\Users\TUF\Documents\librerías\local\. Instalación: pip install google-cloud-bigquery google-cloud-storage. Docs: https://cloud.google.com/docs. 📱 Escanéalo para abrir la documentación https://gerardoesquivia.com/google-cloud/ Google Cloud · Documentación mínima (gcloud + BigQuery) · OKF de Gerardo Esquivia Zapata · 2026-08-29 --- type: Resumen title: "☁️ Google Cloud — Nube (Resumen minimalista)" description: "Resumen minimalista de Google Cloud: gcloud + Cloud Storage y BigQuery (SQL serverless + Python), con scripts listos para implementar." fuente: "https://cloud.google.com/docs" sitio: "https://gerardoesquivia.com/google-cloud/" tags: [resumen, google-cloud, gcp, bigquery, okf] timestamp: 2026-08-29 creator: "Gerardo Esquivia Zapata" --- # ☁️ Google Cloud — Resumen (para OKF) > **Para qué:** operar la nube de Google (almacenamiento y análisis de datos) con la CLI y SQL serverless. > **Cómo:** `gcloud auth login` + `gcloud config set project`; `gsutil mb/cp` para buckets; `SELECT ... FROM \`p.d.t\`` para BigQuery; SDK `google-cloud-bigquery` en Python. ## 🛠️ Scripts minimalistas ```bash gcloud auth login gcloud config set project MI_PROYECTO gsutil mb gs://mi-bucket-ejemplo gsutil cp archivo.txt gs://mi-bucket-ejemplo/ ``` ```sql SELECT nombre, COUNT(*) AS total FROM `proyecto.dataset.tabla` GROUP BY nombre; ``` ```python # pip install google-cloud-bigquery from google.cloud import bigquery client = bigquery.Client() for row in client.query("SELECT 1 AS x").result(): print(row.x) ``` ## 🔑 Conceptos clave | Concepto | Qué es | |---|---| | `gcloud` / `gsutil` / `bq` | CLIs: auth, storage, BigQuery | | `proyecto.dataset.tabla` | Tabla completa de BigQuery | | Cloud Storage | Buckets de objetos | | `google-cloud-bigquery` | SDK Python | ## 🔗 Fuente https://cloud.google.com/docs · Sitio: https://gerardoesquivia.com/google-cloud/ ## 📥 Cómo agregar esto a tu OKF (para el agente) 1. Guarda este archivo en tu vault (ej. `📋 Proyectos/`). 2. El frontmatter ya es OKF: no modifiques `type` ni `creator`. 3. Implementa directo: copia los comandos y ajusta proyecto/bucket. No necesitas investigar más. function descargarMD(){const md=document.getElementById('md-resumen').textContent.trim();const b=new Blob([md],{type:'text/markdown;charset=utf-8'});const u=URL.createObjectURL(b);const a=document.createElement('a');a.href=u;a.download='resumen-google-cloud.md';document.body.appendChild(a);a.click();a.remove();URL.revokeObjectURL(u);} (function(){const nodes=[{id:"cli",label:"gcloud",sub:"auth",x:120,y:210},{id:"gcp",label:"Google Cloud",sub:"servicios",x:390,y:210},{id:"svc",label:"Servicio",sub:"Storage / BigQuery",x:640,y:210},{id:"res",label:"Dato",sub:"bucket / filas",x:860,y:210}];const edges=[{from:"cli",to:"gcp",label:"auth"},{from:"gcp",to:"svc",label:"API"},{from:"svc",to:"gcp",label:"respuesta"},{from:"gcp",to:"res",label:"dato"},{from:"res",to:"cli",label:"resultado"}];const pos=Object.fromEntries(nodes.map(n=>[n.id,{x:n.x,y:n.y}]));const svg=document.getElementById("grafo");const NS="http://www.w3.org/2000/svg";function el(t,a){const e=document.createElementNS(NS,t);for(const k in a)e.setAttribute(k,a[k]);return e;}const edgePaths=[],edgeArrows=[]; edges.forEach((ed)=>{const a=pos[ed.from],b=pos[ed.to];let d,mid;if(ed.from==="res"){d=`M ${a.x} ${a.y} C ${(a.x+b.x)/2} 400, ${(a.x+b.x)/2} 400, ${b.x} ${b.y}`;mid={x:(a.x+b.x)/2,y:380};}else{const mx=(a.x+b.x)/2;d=`M ${a.x} ${a.y} C ${mx} ${a.y}, ${mx} ${b.y}, ${b.x} ${b.y}`;mid={x:mx,y:(a.y+b.y)/2};}const p=el("path",{class:"edge",d});svg.appendChild(p);edgePaths.push(p);const ang=Math.atan2(b.y-mid.y,b.x-mid.x);const tx=b.x-18*Math.cos(ang),ty=b.y-18*Math.sin(ang);const ar=el("path",{class:"arrow",d:`M ${tx} ${ty} l 8 -4 l -8 -4 z`,transform:`rotate(${ang*180/Math.PI} ${tx} ${ty})`});svg.appendChild(ar);edgeArrows.push(ar);}); const nodeGroups={};nodes.forEach(n=>{const g=el("g",{class:"node"});g.appendChild(el("rect",{x:n.x-85,y:n.y-29,width:170,height:58}));const t=el("text",{class:"t",x:n.x,y:n.y-4,"text-anchor":"middle"});t.textContent=n.label;const s=el("text",{class:"s",x:n.x,y:n.y+16,"text-anchor":"middle"});s.textContent=n.sub;g.appendChild(t);g.appendChild(s);svg.appendChild(g);nodeGroups[n.id]=g;}); const travel=el("circle",{class:"travel",r:6,opacity:0});svg.appendChild(travel);const caption=document.getElementById("caption");const N=edges.length;let i=0,raf=null; function clearActive(){nodes.forEach(n=>nodeGroups[n.id].classList.remove("active"));edgePaths.forEach(p=>p.classList.remove("active"));edgeArrows.forEach(a=>a.classList.remove("active"));} function animateEdge(idx){const ed=edges[idx];clearActive();edgePaths[idx].classList.add("active");edgeArrows[idx].classList.add("active");nodeGroups[ed.from].classList.add("active");caption.innerHTML=`Paso ${idx+1}/${N}: ${ed.from} → ${ed.to} (${ed.label})`;const path=edgePaths[idx],len=path.getTotalLength();const t0=performance.now(),dur=800;function step(now){let p=(now-t0)/dur;if(p>1)p=1;const pt=path.getPointAtLength(p*len);travel.setAttribute("cx",pt.x);travel.setAttribute("cy",pt.y);travel.setAttribute("opacity",1);if(panimateEdge(i),300);}}raf=requestAnimationFrame(step);} function start(){cancelAnimationFrame(raf);i=0;animateEdge(0);}svg.addEventListener("click",start);start(); })(); --- ## Cómo se conecta con el OKF - **Sitio:** https://gerardoesquivia.com/google-cloud/ - **Nota:** esta (bajada del sitio, para consulta del agente) - **Fuente:** https://gerardoesquivia.com/google-cloud/ ## Aprendizajes - Los scripts minimalistas son el activo: **el ejemplo más corto que demuestra el uso**. - Este estudio forma parte del ciclo: **estudiar → publicar → registrar en el OKF**.