<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>SolidQ Blogs</title>
    <link>http://www.solidq.com</link>
    <description> RSSAgregator WebPart by SolidQ</description>
    <ttl>5</ttl>
    <item>
      <title>Accediendo a Facebook con Data Explorer</title>
      <ItemID>174</ItemID>
      <link>http://blogs.solidq.com/BICorner/Post.aspx?ID=174&amp;title=Accediendo+a+Facebook+con+Data+Explorer</link>
      <pubDate>2013-05-22T11:08:00+02:00</pubDate>
      <author>Pau Sempere Sanchez</author>
      <authorEncoded>Pau+Sempere+Sanchez</authorEncoded>
      <authorID>94</authorID>
      <comments>None</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">None</wfw:commentRss>
      <description>&lt;div class="ExternalClass03F1DB1C25954085A3677B4127A8132C"&gt;&lt;p&gt;En nuestro anterior post accedíamos a &lt;strong&gt;Twitter&lt;/strong&gt; utilizando &lt;strong&gt;Data Explorer&lt;/strong&gt; para descubrir quién mencionaba a &lt;strong&gt;SolidQ&lt;/strong&gt; y en qué parte del mundo se encontraban (&lt;a href="http://bit.ly/WIyJS0"&gt;puedes verlo aquí&lt;/a&gt;). Hoy veremos cómo acceder a otra red social, &lt;strong&gt;Facebook&lt;/strong&gt;, mediante la característica propia de &lt;strong&gt;Data Explorer&lt;/strong&gt; para conectar con ella y consumiendo estos datos finalmente con &lt;strong&gt;Excel&lt;/strong&gt; &lt;strong&gt;2013&lt;/strong&gt;. &lt;/p&gt;
&lt;p&gt;Empezaremos seleccionando la fuente de datos, en este caso Facebook (desde la opción From Other Sources): &lt;/p&gt;
&lt;p&gt;&lt;a href="/bicorner/Lists/Posts/Attachments/174/image_2_1F478EE1.png"&gt;&lt;img width="270" height="350" title="ImportandoFacebook" alt="ImportandoFacebook" src="/bicorner/Lists/Posts/Attachments/174/image_thumb_1F478EE1.png" border="0" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Nos pedirá que ingresemos en &lt;strong&gt;Facebook&lt;/strong&gt;, por lo que tendremos que tener una cuenta activa para poder utilizar esta funcionalidad. Esto supone una diferencia con &lt;strong&gt;Twitter&lt;/strong&gt;, que tiene un API que puede proveer de información a cualquiera que haga consultas contra ella aún con identificación anónima. Con &lt;strong&gt;Facebook&lt;/strong&gt; tendremos también que dar acceso a la aplicación Data Explorer para que interactúe con nuestro perfil. &lt;/p&gt;
&lt;p&gt;&lt;a href="/bicorner/Lists/Posts/Attachments/174/image_4_4D34E199.png"&gt;&lt;img width="644" height="315" title="AutorizandoFacebook" alt="AutorizandoFacebook" src="/bicorner/Lists/Posts/Attachments/174/image_thumb_1_4D34E199.png" border="0" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Una vez hayamos aceptado, realizaremos la búsqueda del perfil que queremos consultar. Deberemos especificar el nombre del perfil o el identificador del usuario. La manera más fácil es ir al perfil al que queremos acceder y ver qué nombre figura en la URL. Por tanto, si queremos ver información sobre el perfil de &lt;strong&gt;SolidQ&lt;/strong&gt; &lt;strong&gt;España&lt;/strong&gt;, que aparece con esta URL &lt;/p&gt;
&lt;p&gt;&lt;a href="/bicorner/Lists/Posts/Attachments/174/image_6_4D34E199.png"&gt;&lt;img width="355" height="33" title="FacebookURL" alt="FacebookURL" src="/bicorner/Lists/Posts/Attachments/174/image_thumb_2_4D34E199.png" border="0" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;buscaremos por &lt;/p&gt;
&lt;p&gt;&lt;a href="/bicorner/Lists/Posts/Attachments/174/image_8_4D34E199.png"&gt;&lt;img width="644" height="237" title="BusquedaFacebook" alt="BusquedaFacebook" src="/bicorner/Lists/Posts/Attachments/174/image_thumb_3_4D34E199.png" border="0" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Podríamos elegir el tipo de conexión que queremos consultar para el perfil, esto es, si queremos ver solo las actualizaciones de estado, los posts, las notas, etc. En este caso no especificamos ningún filtro para poder acceder a todos los datos, filtraremos con más detalle con &lt;strong&gt;Data Explorer&lt;/strong&gt; una vez tengamos los datos importados. Si hacemos clic en Apply, recibiremos una serie de datos estructurados sobre el perfil de &lt;strong&gt;SolidQ España&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/bicorner/Lists/Posts/Attachments/174/image_10_4D34E199.png"&gt;&lt;img width="856" height="359" title="ResultadoConsultaFacebook" alt="ResultadoConsultaFacebook" src="/bicorner/Lists/Posts/Attachments/174/image_thumb_4_4D34E199.png" border="0" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Tenemos mucha información que puede sernos útil para diferentes análisis o recolección de datos. Incluso vemos arriba como se genera la fórmula que &lt;strong&gt;Data Explorer&lt;/strong&gt; usa para consultar los datos (y que podríamos usar nosotros para generar funciones personalizadas, por ejemplo). Pero lo que queremos hacer hoy es una comparativa entre “likes”, comentarios a posts y veces que se comparten estos posts a lo largo del tiempo, para estudiar qué impacto ha ido teniendo lo que se ha ido publicando en este perfil. Para ello, clicamos en “connections”, y &lt;strong&gt;Data Explorer&lt;/strong&gt; nos abrirá la lista de registros disponibles. &lt;/p&gt;
&lt;p&gt;&lt;a href="/bicorner/Lists/Posts/Attachments/174/image_12_4D34E199.png"&gt;&lt;img width="220" height="192" title="ConexionesPerfilFacebook" alt="ConexionesPerfilFacebook" src="/bicorner/Lists/Posts/Attachments/174/image_thumb_5_4D34E199.png" border="0" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Seleccionando “Posts” importaremos la información sobre los posts publicados. &lt;/p&gt;
&lt;p&gt;&lt;a href="/bicorner/Lists/Posts/Attachments/174/image_14_4D34E199.png"&gt;&lt;img width="644" height="196" title="PostsFacebookDataExplorer" alt="PostsFacebookDataExplorer" src="/bicorner/Lists/Posts/Attachments/174/image_thumb_6_4D34E199.png" border="0" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Para nuestro caso concreto queremos saber los conteos de “shares”, “likes” y “comments” que tiene cada uno, por lo que nos vamos a cada uno de estos campos que encontraremos en la información que hemos obtenido y, haciendo clic en el icono para expandir la columna en diferentes campos (a la derecha del nombre de la columna), obtenemos los conteos (que ya forman parte de la información estructurada que nos da Facebook a través de Data Explorer): &lt;/p&gt;
&lt;p&gt;&lt;a href="/bicorner/Lists/Posts/Attachments/174/image_16_4D34E199.png"&gt;&lt;img width="244" height="144" title="CountFacebookDataExplorer1" alt="CountFacebookDataExplorer1" src="/bicorner/Lists/Posts/Attachments/174/image_thumb_7_4D34E199.png" border="0" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px" /&gt;&lt;/a&gt;                      &lt;a href="/bicorner/Lists/Posts/Attachments/174/image_18_4D34E199.png"&gt;&lt;img width="244" height="157" title="CountFacebookDataExplorer2" alt="CountFacebookDataExplorer2" src="/bicorner/Lists/Posts/Attachments/174/image_thumb_8_4D34E199.png" border="0" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Una vez tenemos los conteos asociados a cada registro, y con un par de formateos de datos con &lt;strong&gt;Data Explorer&lt;/strong&gt; para tratar con las fechas (queremos ver los datos agrupados por meses y no por día y hora como nos vienen especificados en los campos created_time y updated_time), podremos tener rápidamente un informe como éste donde vemos la evolución de las interacciones con el perfil de &lt;strong&gt;SolidQ España&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="/bicorner/Lists/Posts/Attachments/174/image_20_4D34E199.png"&gt;&lt;img width="644" height="463" title="InformeFacebookPowerView" alt="InformeFacebookPowerView" src="/bicorner/Lists/Posts/Attachments/174/image_thumb_9_4D34E199.png" border="0" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Se trata de un informe muy sencillo pero muy relevante. Si explorásemos más el dato y lo trabajásemos más, combinándolo quizá con otras fuentes de información (incluso con nuevas consultas a Facebook para ver quién son los usuarios que han hecho like o han comentado ciertos posts) podríamos tener un análisis aún más rico y revelador. Recordemos que incluso podemos añadir directamente los datos de Data Explorer a un modelo de &lt;strong&gt;PowerPivot&lt;/strong&gt; con lo que expandimos aún más las posibilidades de análisis, por ejemplo si ya tuviésemos un modelo de datos que pudiésemos enriquecer con la información que acabamos de obtener. El límite, como siempre, está en cuánto trabajo dediquemos y donde llegue nuestra imaginación &lt;img class="wlEmoticon wlEmoticon-smile" alt="Sonrisa" src="/bicorner/Lists/Posts/Attachments/174/wlEmoticon-smile_2_4D34E199.png" style="border-top-style:none;border-left-style:none;border-bottom-style:none;border-right-style:none" /&gt;&lt;/p&gt;
&lt;p&gt;Espero que os haya gustado, nos vemos en siguientes posts acerca de la funcionalidad de &lt;strong&gt;Data Explorer&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Feliz integración y análisis &lt;img class="wlEmoticon wlEmoticon-smile" alt="Sonrisa" src="/bicorner/Lists/Posts/Attachments/174/wlEmoticon-smile_2_4D34E199.png" style="border-top-style:none;border-left-style:none;border-bottom-style:none;border-right-style:none" /&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <shortDescription>&lt;div class="ExternalClass03F1DB1C25954085A3677B4127A8132C"&gt;&lt;p&gt;En nuestro anterior post accedíamos a &lt;strong&gt;Twitter&lt;/strong&gt; utilizando &lt;strong&gt;Data Explorer&lt;/strong&gt; para descubrir quién mencionaba a &lt;strong&gt;SolidQ&lt;/strong&gt; y en qué parte del mundo se encontraban (&lt;a href="http://bit.ly/WIyJS0"&gt;puedes verlo aquí&lt;/a&gt;). Hoy veremos cómo acceder a otra red social, &lt;strong&gt;Facebook&lt;/strong&gt;, mediante la característica propia de &lt;strong&gt;Data Explorer&lt;/strong&gt; para conectar con ella y consumiendo estos datos finalmente con &lt;strong&gt;Excel&lt;/strong&gt; &lt;strong&gt;2013&lt;/strong&gt;. &lt;/p&gt;
&lt;p&gt;Empezaremos seleccionando la fuente de datos, en este caso Facebook (desde la opción From Other Sources): &lt;/p&gt;
&lt;p&gt;&lt;a href="/bicorner/Lists/Posts/Attachments/174/image_2_1F478EE1.png"&gt;&lt;img width="270" height="350" title="ImportandoFacebook" alt="ImportandoFacebook" src="/bicorner/Lists/Posts/Attachments/174/image_thumb_1F478EE1.png" border="0" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Nos pedirá que ingresemos...&lt;/p&gt;&lt;/div&gt;</shortDescription>
      <category name="Data Explorer" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Data+Explorer" nameEnconded="Data+Explorer" />
      <category name="ETL" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=ETL" nameEnconded="ETL" />
      <category name="Power View" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Power+View" nameEnconded="Power+View" />
      <category name="Facebook" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Facebook" nameEnconded="Facebook" />
      <category name="Add-in" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Add-in" nameEnconded="Add-in" />
      <dc:language name="http://blogs.solidq.com/Pages/Home.aspx?language=Spanish" nameEncoded="Spanish" xmlns:dc="http://purl.org/dc/elements/1.1/"></dc:language>
    </item>
    <item>
      <title>Aprovecha tu almacenamiento con iSCSI y Storage Spaces</title>
      <ItemID>248</ItemID>
      <link>http://blogs.solidq.com/ElRinconDelDBA/Post.aspx?ID=248&amp;title=Aprovecha+tu+almacenamiento+con+iSCSI+y+Storage+Spaces</link>
      <pubDate>2013-05-13T21:09:31+02:00</pubDate>
      <author>Rubén Garrigós</author>
      <authorEncoded>Rub%c3%a9n+Garrig%c3%b3s</authorEncoded>
      <authorID>40</authorID>
      <comments>None</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">None</wfw:commentRss>
      <description>&lt;div class="ExternalClass21BDB2CCDE0342F989EED4FB7187B8A8"&gt;&lt;p&gt;Una de las novedades que trae Windows Server 2012 son los Storage Spaces. Un Storage Space es un pool de un conjunto de discos que se gestionan de forma similar a como se gestionan las SAN. Una de las ventajas para los entornos más modestos es la posibilidad de mezclar discos de distintos tamaños y conectados a través de distintos buses en el mismo pool. En concreto podemos conectar discos por SAS, SATA, ATA, SCSI e incluso por USB:&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/248/image_2_3D423605.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/248/image_thumb_3D423605.png" width="734" height="363" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;En ocasiones lo que queremos introducir en el pool no es un disco entero sino una partición de dicho disco o espacio sobrante. En estos casos la solución que podemos tomar es “presentar” dicho espacio mediante iSCSI, al igual que haríamos para acceder a un volumen iSCSI en una NAS/SAN. Para ello primero comprobaremos si tenemos los roles instalados para poder crear el iSCSI Target:&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/248/image_14_3D423605.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/248/image_thumb_6_3D423605.png" width="476" height="508" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Una vez instalados, desde el server manager crearemos un nuevo disco virtual iSCSI, en este caso de 20 GB:&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/248/image_12_3D423605.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/248/image_thumb_5_6B2F88BD.png" width="712" height="213" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Este disco lo conectaremos contra el propio servidor por iSCSI:&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/248/image_16_6B2F88BD.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/248/image_thumb_7_6B2F88BD.png" width="678" height="209" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Una vez conectado por iSCSI nos aparecerá como un disco más en el administrador de discos (disco 17 en nuestro ejemplo):&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/248/image_4_6B2F88BD.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/248/image_thumb_1_6B2F88BD.png" width="575" height="579" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Una vez lo tenemos presentado, podremos añadirlo sin problema a un nuevo pool o a uno ya existente. En nuestro caso lo hemos añadido a un nuevo pool llamado iSCSI pool:&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/248/image_18_6B2F88BD.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/248/image_thumb_8_6B2F88BD.png" width="591" height="129" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/248/image_6_6B2F88BD.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/248/image_thumb_2_6B2F88BD.png" width="588" height="155" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Una vez añadido aparecerá dentro del pool como si de un disco físico más se tratara pero conectado por bus iSCSI:&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/248/image_8_6B2F88BD.png"&gt;&lt;img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/248/image_thumb_3_6B2F88BD.png" width="516" height="200" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;En resumen, esta técnica de “enmascarar” mediante iSCSI nos puede servir para aprovechar mejor nuestro almacenamiento para Storage Spaces. También podremos utilizar iSCSI para exponer nuestro pool de almacenamiento local con Storage Spaces a otros servidores. &lt;/p&gt;  &lt;p&gt;Cada día vemos más este escenario en pequeños entornos de virtualización para desarrollo/testing. Con Storage Spaces podemos combinar distintos discos en un pool con redundancia sin estar atados a las limitaciones de los fabricantes o de las propias tarjetas RAID. Combinando esta flexibilidad y el target ISCSI nativo de Windows Server 2012 podemos crear un servidor de almacenamiento con muy bajo coste. &lt;/p&gt;&lt;/div&gt;</description>
      <shortDescription>&lt;div class="ExternalClass21BDB2CCDE0342F989EED4FB7187B8A8"&gt;&lt;p&gt;Una de las novedades que trae Windows Server 2012 son los Storage Spaces. Un Storage Space es un pool de un conjunto de discos que se gestionan de forma similar a como se gestionan las SAN. Una de las ventajas para los entornos más modestos es la posibilidad de mezclar discos de distintos tamaños y conectados a través de distintos buses en el mismo pool. En concreto podemos conectar discos por SAS, SATA, ATA, SCSI e incluso por USB:&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/248/image_2_3D423605.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/248/image_thumb_3D423605.png" width="734" height="363" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;En ocasiones lo que queremos introducir en...&lt;/p&gt;&lt;/div&gt;</shortDescription>
      <category name="Disco online" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Disco+online" nameEnconded="Disco+online" />
      <category name="Dispositivos Fisicos" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Dispositivos+Fisicos" nameEnconded="Dispositivos+Fisicos" />
      <category name="ISCSI" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=ISCSI" nameEnconded="ISCSI" />
      <category name="Microsoft iscsi Software Target" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Microsoft+iscsi+Software+Target" nameEnconded="Microsoft+iscsi+Software+Target" />
      <dc:language name="http://blogs.solidq.com/Pages/Home.aspx?language=Spanish" nameEncoded="Spanish" xmlns:dc="http://purl.org/dc/elements/1.1/"></dc:language>
    </item>
    <item>
      <title>Curso MS Business Intelligence-SSAS: Personalizando el Modelo-Atributos (38)</title>
      <ItemID>176</ItemID>
      <link>http://blogs.solidq.com/BICorner/Post.aspx?ID=176&amp;title=Curso+MS+Business+Intelligence-SSAS%3a+Personalizando+el+Modelo-Atributos+(38)</link>
      <pubDate>2013-04-30T10:52:20+02:00</pubDate>
      <author>Salvador Ramos</author>
      <authorEncoded>Salvador+Ramos</authorEncoded>
      <authorID>33</authorID>
      <comments>None</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">None</wfw:commentRss>
      <description>&lt;div class="ExternalClass2B5170F0F3424F7393D34470D97AA7D3"&gt;&lt;h6&gt;&lt;a name="_Toc291606229"&gt;&lt;font size="2"&gt;Atributos&lt;/font&gt;&lt;/a&gt;&lt;/h6&gt;  &lt;p&gt;Por cada una de las dimensiones nos encontramos con una colección de &lt;b&gt;Atributos&lt;/b&gt; que se corresponden con una o más columnas de la tabla de dimensiones. Un atributo es cada una de las características de la dimensión por la cual podremos analizar la información. Por ejemplo, para la dimensión &lt;i&gt;Tiempo&lt;/i&gt; tendremos atributos como &lt;i&gt;Año, Mes, Día, Trimestre, Trimestre fiscal, Año fiscal&lt;/i&gt;, etc. Para la dimensión &lt;i&gt;Cliente&lt;/i&gt; tendremos otros como &lt;i&gt;Nombre, Población, País, Estudios, Edad, Número de hijos, Sexo&lt;/i&gt;, etc.&lt;/p&gt;  &lt;p&gt;Entre todos ellos, debemos destacar que contaremos con un &lt;b&gt;atributo clave&lt;/b&gt;, éste es un atributo con valores únicos, que identifica las columnas de la tabla de dimensiones con las claves externas de la tabla de hechos. Normalmente, representa a la columna que es clave principal (&lt;i&gt;primary key&lt;/i&gt;) en la tabla de dimensiones.&lt;/p&gt;  &lt;p&gt;Veamos las principales propiedades de los atributos:&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;KeyColumn&lt;/b&gt;. Contiene la colección de columnas que constituyen la clave del atributo. Está compuesta por las columnas que hacen que el valor de cada miembro sea único. Por ejemplo, si tenemos en la tabla de Tiempo una columna para el año y otra para el mes, la colección &lt;i&gt;KeyColumn&lt;/i&gt; estará formada por ambas columnas, ya que cada mes está repetido en cada uno de los años.&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;NameColumn&lt;/b&gt;. Se utiliza para mostrar un valor descriptivo al usuario, cuando el valor el valor de la columna clave no es lo suficientemente descriptivo. Cuando se indica una columna en esta propiedad, será este valor el mostrado al usuario en lugar de &lt;i&gt;KeyColumn&lt;/i&gt;.&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;ValueColumn&lt;/b&gt;. Identifica la columna que proporciona el valor del atributo.&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;AttributeHierarchyDisplayFolder&lt;/b&gt;. Identifica la carpeta en la que verán este elemento los usuarios finales desde las herramientas cliente.&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;DefaultMember&lt;/b&gt;. Expresión MDX que define el miembro predeterminado del atributo.&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;OrderBy&lt;/b&gt;. Especifica el método para ordenar los miembros del atributo. Valores: &lt;/p&gt;  &lt;p&gt;· &lt;i&gt;Key, &lt;/i&gt;los miembros se ordenan por la clave del atributo&lt;/p&gt;  &lt;p&gt;· &lt;i&gt;Name,&lt;/i&gt; los miembros se ordenan por el nombre del atributo&lt;/p&gt;  &lt;p&gt;· &lt;i&gt;AttributeKey, &lt;/i&gt;los miembros se ordenan por la clave del atributo especificado en la propiedad &lt;i&gt;OrderByAttribute&lt;/i&gt;.&lt;/p&gt;  &lt;p&gt;· &lt;i&gt;AttributeName,&lt;/i&gt; los miembros se ordenan por el nombre del atributo especificado en la propiedad &lt;i&gt;OrderByAttribute&lt;/i&gt;.&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;OrderByAttribute&lt;/b&gt;. Si en &lt;i&gt;OrderBy&lt;/i&gt; hemos decidido que se ordenen por otro atributo, es decir, hemos elegido el valor &lt;i&gt;AttributeKey&lt;/i&gt; o &lt;i&gt;AttributeName&lt;/i&gt;, en esta propiedad indicaremos el atributo por el que deseamos realizar la ordenación.&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;Type&lt;/b&gt;. Especifica el tipo de información que contiene el atributo.&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;Usage&lt;/b&gt;. Especifica el uso del atributo. Valores: &lt;i&gt;Regular, Key, Parent&lt;/i&gt;.&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;IsAggregatable&lt;/b&gt;. Indica si el atributo se puede agregar en una jerarquía.&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;DiscretizationMetod&lt;/b&gt;. “Discretizar” consiste en convertir valores continuos en valores discretos. Por ejemplo, el salario es un valor continuo, puede haber cualquier valor, pero a nivel de análisis de información podemos convertirlo en continuo, haciendo tres grupos, el primero entre 0 y 10.000, el segundo entre 10.001 y 50.000 y el tercero para más de 50.000. Con la propiedad &lt;i&gt;DiscretizationMetod&lt;/i&gt; elegimos el método a utilizar para este proceso. Valores: &lt;i&gt;None, Automatic, EqualAreas, Cluster&lt;/i&gt;.&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;DiscretizationBucketCount&lt;/b&gt;. Especifica el número de depósitos en los que se “discretizarán” los atributos. En el ejemplo anterior serían tres.&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;AttributeHierarchyEnabled&lt;/b&gt;. Determina si se ha generado una jerarquía de atributos para ese atributo. Esto tiene implicaciones, ya que si no está habilitada no se puede utilizar ese atributo en una jerarquía definida por el usuario, ni se puede hacer referencia a la jerarquía de atributos desde instrucciones MDX.&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;AttributeHierarchyOptimizedState&lt;/b&gt;. Determina el nivel de optimización aplicado a la jerarquía de atributos. Valores: &lt;i&gt;FullyOptimized, NotOptimized&lt;/i&gt;. Por defecto está completamente optimizada, lo que implica que se generarán índices para optimizar las consultas. Es conveniente que no estén optimizadas aquellas jerarquías que no se utilicen para realizar consultas, y sólo estén para otros fines como la ordenación. Esto ahorrará tiempos de procesamiento.&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;AttributeHierarchyOrdered&lt;/b&gt;. Indica si la jerarquía de atributos asociada está ordenada. Valores: &lt;i&gt;True, False&lt;/i&gt;. Al igual que en el caso anterior, si no se va a utilizar para realizar consultas, mejor ponerla a &lt;i&gt;False&lt;/i&gt;, y ahorrar tiempos de procesamiento innecesarios.&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;AttributeHierarchyVisible&lt;/b&gt;. Indica si la jerarquía de atributos asociada está visible para las aplicaciones cliente. Valores: &lt;i&gt;True, False&lt;/i&gt;. Se debe poner a &lt;i&gt;False&lt;/i&gt; cuando no se utiliza para realizar consultas.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Si te interesa esta información, y deseas convertirte en un profesional altamente especializado en Microsoft Business Intelligence, te recomiendo que nos pidas información sobre nuestro &lt;a href="http://www.solidq.com/squ/courses/Pages/Master-BI-Certified-Business-Intelligence-Microsoft-Espanol.aspx"&gt;&lt;strong&gt;Master en BI&lt;/strong&gt;&lt;/a&gt;. &lt;em&gt;Recuerda que hay poquitas plazas disponibles!!!&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Post publicados anteriormente como parte de este curso:&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=175&amp;amp;title=curso+ms+business+intelligence-ssas:+personalizando+el+modelo%e2%80%93dimensiones+%2837%29" target="_blank"&gt;SSAS, Dimensiones (37)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=171&amp;amp;title=curso+ms+business+intelligence-ssas:+agregaciones+%2836%29"&gt;SSAS, Agregaciones (36)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=169&amp;amp;title=curso+ms+business+intelligence-ssas:+procesamiento+y+modos+de+almacenamiento+%2835%29"&gt;SSAS, Procesamiento y modos de almacenamiento (35)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=167&amp;amp;title=curso+ms+business+intelligence-ssas:+construyendo+y+desplegando+el+modelo+%2834%29"&gt;SSAS, Construyendo y desplegando el modelo (34)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=164&amp;amp;title=curso+ms+business+intelligence%e2%80%93ssas:+objetos+de+una+bbdd+de+analysis+services+%28parte+iv%e2%80%93dimensiones%29+%2833%29"&gt;SSAS, Objetos de una BBDD de Analysis Services parte IV – Dimensiones) (33)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=163&amp;amp;title=curso+ms+business+intelligence+-+ssas:+objetos+de+una+bbdd+de+analysis+services+%28parte+iii%e2%80%93cubos%29+%2832%29"&gt;SSAS, Objetos de una BBDD de Analysis Services (parte III – Cubos) (32)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=162&amp;amp;title=curso+ms+business+intelligence+-+ssas:+objetos+de+una+bbdd+de+analysis+services+%28parte+ii+-+datasource+views%29+%2831%29"&gt;SSAS, Objetos de una BBDD de Analysis Services (parte II – DataSource Views) (31)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=156&amp;amp;title=curso+ms+business+intelligence+-+ssas:+objetos+de+una+bbdd+de+analysis+services+%28parte+i+-+datasources%29+%2830%29"&gt;SSAS, Objetos de una BBDD de Analysis Services (parte I – DataSources) (30)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=155&amp;amp;title=curso+ms+business+intelligence+-+ssas:+cubos+olap%2c+conceptos+b%c3%a1sicos+%28parte+iii%29+%2829%29"&gt;SSAS, Cubos OLAP, Conceptos básicos (parte III) (29)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=154&amp;amp;title=curso+ms+business+intelligence+-+ssas:+cubos+olap%2c+conceptos+b%c3%a1sicos+%28parte+ii%29+%2828%29"&gt;SSAS, Cubos OLAP, Conceptos básicos (parte II) (28)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=152&amp;amp;title=curso+ms+business+intelligence+-+ssas:+cubos+olap%2c+conceptos+b%c3%a1sicos+%28parte+i%29+%2827%29"&gt;SSAS, Cubos OLAP, Conceptos básicos (parte I) (27)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=151&amp;amp;title=curso+ms+business+intelligence+-+ssas:+qu%c3%a9+es+analysis+services+%2826%29"&gt;SSAS, Qué es Analysis Services (26)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=149&amp;amp;title=curso+ms+business+intelligence+-+fin+del+m%c3%b3dulo+de+ssis+y+recapitulaci%c3%b3n+%2825%29"&gt;Fin del módulo de SSIS y recapitulación (25)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=143&amp;amp;title=cursos+ms+business+intelligence+ssis:+programar+la+ejecuci%c3%b3n+de+paquetes+%2824%29"&gt;SSIS, Programar la ejecución de paquetes (24)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=142&amp;amp;title=curso+ms+business+intelligence+-+ssis:+ejecuci%c3%b3n+de+paquetes+en+el+servidor+%2823%29"&gt;SSIS, Ejecución de paquetes en el servidor (23)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=140&amp;amp;title=curso+ms+business+intelligence+ssis:+despliegue+de+paquetes+%2822%29"&gt;SSIS, Despliegue de paquetes (22)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=132&amp;amp;title=curso+ms+business+intelligence+ssis:+configuraci%c3%b3n%2c+despliegue+y+administracion+%28parte+iii%29+%2821%29"&gt;SSIS Configuración, Despliegue y Administración (parte III) (21)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=130&amp;amp;title=curso+ms+business+intelligence+-+ssis:+configuracion%2c+despliegue+y+administraci%c3%b3n+%28parte+ii%29+%2820%29"&gt;SSIS Configuración, Despliegue y Administración (parte II) (20)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=129&amp;amp;title=curso+ms+business+intelligence+ssis:+configuraci%c3%b3n%2c+despliegue+y+administracion+%28parte+i%29+%2819%29"&gt;SSIS Configuración, Despliegue y Administración (parte I) (19)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=128&amp;amp;title=curso+ms+business+intelligence+-+ssis+logging+%28parte+iii%29+%2818%29"&gt;SSIS Logging (parte III) (18)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=126&amp;amp;title=curso+ms+business+intelligence+-+ssis+logging+%28parte+ii%29+%2817%29"&gt;SSIS Logging (parte II) (17)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=123&amp;amp;title=curso+ms+business+intelligence+-+ssis+loging+%28parte+i%29+%2816%29"&gt;SSIS Logging (parte I) (16)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=122&amp;amp;title=curso+ms+business+intelligence+ssis+buenas+pr%c3%a1cticas+%28parte+iii%29+%2815%29"&gt;SSIS Buenas prácticas (parte III) (15)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=120&amp;amp;title=curso+ms+business+intelligence+-+ssis+buenas+pr%c3%a1cticas+%28parte+ii%29+%2814%29"&gt;SSIS Buenas prácticas (parte II) (14)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=119&amp;amp;title=curso+ms+business+intelligence+-+ssis+buenas+pr%c3%a1cticas+%28parte+i%29+%2813%29"&gt;SSIS Buenas prácticas (parte I) (13)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=112&amp;amp;title=curso+ms+business+intelligence+-+ssis+data+flow+%2812%29"&gt;SSIS Data Flow (12)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=106&amp;amp;title=Curso+MS+Business+Intelligence+-+SSIS+ControlFlow+%2811%29"&gt;SSIS Control Flow (11)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=105&amp;amp;title=Curso+MS+Business+Intelligence+-+Introduccion+a+SSIS+%2810%29"&gt;Introducción a SSIS (10)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=104&amp;amp;title=Curso+MS+Business+Intelligence+-+Modelado+Dimensional+%289%29"&gt;Modelado Dimensional (9)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=103&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Introduccion+completa+%288%29"&gt;Introducción Completa (8)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=84&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Herramientas+cliente+SQL+Server+%287%29"&gt;Herramientas Cliente SQL Server (7)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=83&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Componentes+de+la+plataforma+Microsoft+BI+%286%29"&gt;Componentes de la Plataforma Microsoft BI (6)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=82&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Visi%c3%b3n+y+estrategia+%285%29"&gt;Microsoft BI – Visión y Estrategia (5)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=81&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Componentes+de+una+soluci%c3%b3n+de+BI+%284%29"&gt;Componentes de una Solución de BI (4)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=80&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Conceptos+importantes+sobre+BI+%e2%80%93+parte+II+%283%29"&gt;Conceptos importantes sobre BI – parte II (3)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=79&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Conceptos+importantes+sobre+BI+%e2%80%93+parte+I+%282%29"&gt;Conceptos importantes sobre BI – parte I (2)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=78&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Definici%c3%b3n+del+t%c3%a9rmino+BI+%281%29"&gt;Definición del término BI (1)&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;</description>
      <shortDescription>&lt;div class="ExternalClass2B5170F0F3424F7393D34470D97AA7D3"&gt;&lt;h6&gt;&lt;a name="_Toc291606229"&gt;&lt;font size="2"&gt;Atributos&lt;/font&gt;&lt;/a&gt;&lt;/h6&gt;  &lt;p&gt;Por cada una de las dimensiones nos encontramos con una colección de &lt;b&gt;Atributos&lt;/b&gt; que se corresponden con una o más columnas de la tabla de dimensiones. Un atributo es cada una de las características de la dimensión por la cual podremos analizar la información. Por ejemplo, para la dimensión &lt;i&gt;Tiempo&lt;/i&gt; tendremos atributos como &lt;i&gt;Año, Mes, Día, Trimestre, Trimestre fiscal, Año fiscal&lt;/i&gt;, etc. Para la dimensión &lt;i&gt;Cliente&lt;/i&gt; tendremos otros como &lt;i&gt;Nombre, Población, País, Estudios, Edad, Número de hijos, Sexo&lt;/i&gt;,...&lt;/p&gt;&lt;/div&gt;</shortDescription>
      <category name="Atributos" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Atributos" nameEnconded="Atributos" />
      <category name="Analysis Services" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Analysis+Services" nameEnconded="Analysis+Services" />
      <category name="SSAS" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=SSAS" nameEnconded="SSAS" />
      <category name="Cursos" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Cursos" nameEnconded="Cursos" />
      <dc:language name="http://blogs.solidq.com/Pages/Home.aspx?language=Spanish" nameEncoded="Spanish" xmlns:dc="http://purl.org/dc/elements/1.1/"></dc:language>
    </item>
    <item>
      <title>Diapositivas de Sesión de SQL Saturday Costa Rica</title>
      <ItemID>56</ItemID>
      <link>http://blogs.solidq.com/jloria/Post.aspx?ID=56&amp;title=Diapositivas+de+Sesi%c3%b3n+de+SQL+Saturday+Costa+Rica</link>
      <pubDate>2013-04-15T22:07:34+02:00</pubDate>
      <author>Javier Loria</author>
      <authorEncoded>Javier+Loria</authorEncoded>
      <authorID>43</authorID>
      <slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">2</slash:comments>
      <comments>http://blogs.solidq.com/jloria/Post.aspx?ID=56&amp;title=Diapositivas+de+Sesi%c3%b3n+de+SQL+Saturday+Costa+Rica#1</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">None</wfw:commentRss>
      <description>&lt;div class="ExternalClassEE4CCE7ECCE9456DB3C6CF07282B7D17"&gt;&lt;p&gt;Atendiendo la solicitud de un participante posteo las filminas de la sesión sobre TempDB ofrecida el pasado sábado 13 de abril en Costa Rica.  EL nombre &lt;a href="/jloria/Documents/EsTempBD.pdf"&gt;Es TEMPDB, por qué es tan importante?&lt;/a&gt;, todavía no termina de convencerme ya que me gustaría que fuera más atractivo.&lt;/p&gt;&lt;/div&gt;</description>
      <shortDescription>&lt;div class="ExternalClassEE4CCE7ECCE9456DB3C6CF07282B7D17"&gt;&lt;p&gt;Atendiendo la solicitud de un participante posteo las filminas de la sesión sobre TempDB ofrecida el pasado sábado 13 de abril en Costa Rica.  EL nombre &lt;a href="/jloria/Documents/EsTempBD.pdf"&gt;Es TEMPDB, por qué es tan importante?&lt;/a&gt;, todavía no termina de convencerme ya que me gustaría que fuera más atractivo.&lt;/p&gt;&lt;/div&gt;</shortDescription>
      <category name="Inteligencia de Negocios" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Inteligencia+de+Negocios" nameEnconded="Inteligencia+de+Negocios" />
      <dc:language name="http://blogs.solidq.com/Pages/Home.aspx?language=Spanish" nameEncoded="Spanish" xmlns:dc="http://purl.org/dc/elements/1.1/"></dc:language>
    </item>
    <item>
      <title>Curso MS Business intelligence-SSAS: Personalizando el Modelo–Dimensiones (37)</title>
      <ItemID>175</ItemID>
      <link>http://blogs.solidq.com/BICorner/Post.aspx?ID=175&amp;title=Curso+MS+Business+intelligence-SSAS%3a+Personalizando+el+Modelo%e2%80%93Dimensiones+(37)</link>
      <pubDate>2013-04-11T15:28:29+02:00</pubDate>
      <author>Salvador Ramos</author>
      <authorEncoded>Salvador+Ramos</authorEncoded>
      <authorID>33</authorID>
      <comments>None</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">None</wfw:commentRss>
      <description>&lt;div class="ExternalClass7BE1884E5ADE45489E9DB26BF008952B"&gt;&lt;h4&gt;&lt;a name="_Toc291606227"&gt;Personalizando el modelo de Analysis Services&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;Una vez introducidos los coneptos y elementos fundamentales, vamos a continuar profundizando en la creación de cubos y dimensiones, y sobre todo en la personalización de éstos y adaptación a las necesidades del negocio.&lt;/p&gt;  &lt;h5&gt;&lt;a name="_Toc291606228"&gt;Dimensiones&lt;/a&gt;&lt;/h5&gt;  &lt;p&gt;Una vez vistos los datos a medir, pasemos a analizar las diferentes perspectivas desde las que los vamos a analizar. Vamos a conocer más a fondo esas dimensiones y sus características. &lt;/p&gt;  &lt;p&gt;Las &lt;b&gt;Dimensiones&lt;/b&gt; se basan en tablas o vistas del &lt;i&gt;Data Source View&lt;/i&gt;. Se definen a nivel de base de datos, de forma independiente a los cubos. Y posteriormente, pueden instanciarse ninguna, una o varias veces en cada cubo. Por tanto pasaremos a explicar los conceptos de &lt;b&gt;dimensiones de bases de datos&lt;/b&gt; y &lt;b&gt;dimensiones de cubos&lt;/b&gt;.&lt;/p&gt;  &lt;p&gt;Una &lt;b&gt;dimensión de base de datos&lt;/b&gt; existe con independencia de que esté asociada o no a un cubo. Se basan en columnas de una o más tablas de dimensiones de nuestro &lt;i&gt;Data Source View&lt;/i&gt;, que puede estar modelado en estrella (&lt;i&gt;start&lt;/i&gt;) o en copo de nieve (&lt;i&gt;snowflake&lt;/i&gt;). &lt;/p&gt;  &lt;p&gt;Una &lt;b&gt;dimensión de cubo&lt;/b&gt; es una instancia de una dimensión de base de datos en un cubo en particular, pudiendo tener varias instancias de ella, incluso en el mismo cubo. Por ejemplo, podemos tener una dimensión Tiempo a nivel de base de datos, y luego, en el cubo de Ventas, tener tres instancias: Fecha de pedido, Fecha de envío y Fecha de cobro. Esta múltiple instanciación es lo que se conoce como dimensión jugadora de roles (&lt;i&gt;role-playing dimension&lt;/i&gt;). Cada instancia de una dimensión de base de datos puede tener propiedades distintas, por ejemplo, el nombre casi siempre lo cambiamos, tal y como hemos visto en el ejemplo anterior de la dimensión Tiempo, que juega los roles de Fecha de pedido, Fecha de envío y Fecha de cobro. Hay otras propiedades que también se pueden cambiar a nivel de dimensión de cubo, como su visibilidad (propiedad &lt;i&gt;visible&lt;/i&gt;).&lt;/p&gt;  &lt;p&gt;&lt;a href="/BICorner/Lists/Posts/Attachments/175/SSAS_Dimensiones_066A6C0E.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px" title="SSAS_Dimensiones" border="0" alt="SSAS_Dimensiones" src="/BICorner/Lists/Posts/Attachments/175/SSAS_Dimensiones_thumb_066A6C0E.png" width="618" height="376" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Figura 1: Dimensiones de Cubo y Dimensiones de Base de Datos&lt;/em&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Algunas de las propiedades más significativas de las dimensiones son:&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;AttributeAllMemberName&lt;/b&gt;. Podemos tener de manera opcional un nivel &lt;i&gt;All&lt;/i&gt;, que está en la parte superior de la jerarquía y agrega todos los miembros del nivel inmediatamente inferior. Este es un miembro generado por el sistema, y su posible existencia dependerá de los valores que configuremos en la propiedad &lt;b&gt;IsAggregatable&lt;/b&gt;, si se establece a &lt;i&gt;True&lt;/i&gt; existirá un nivel &lt;i&gt;All&lt;/i&gt;. Ese nivel podrá tener el nombre que indiquemos en la propiedad &lt;b&gt;AttributeAllMemberName&lt;/b&gt;. Valores: el nombre que queramos que aparezca para ese nivel al navegar por la dimensión.&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;WriteEnabled&lt;/b&gt;. Permite habilitar la dimensión para escritura. Valores: &lt;i&gt;True, False&lt;/i&gt;.&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;Type&lt;/b&gt;. Proporciona información a los servidores y a las aplicaciones cliente sobre el contenido de una dimensión. Se utiliza para &lt;i&gt;agregar inteligencia de dimensiones&lt;/i&gt; a las aplicaciones. Valores: &lt;i&gt;Regular, Time, Geography, Organization, BillOfMaterials, Accounts, Customers, Products, Scenario, Quantitative, Currency, Rates, Channel, Promotion&lt;/i&gt;. Estos valores se aplican a dimensiones y/o cubos.&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;StorageMode&lt;/b&gt;. Indica el modo de almacenamiento de la dimensión. Valores: &lt;i&gt;ROLAP, MOLAP&lt;/i&gt;.&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;ErrorConfiguration&lt;/b&gt;. Indica la acción que realizará el servidor al encontrar diversos errores.&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;UnknownMember&lt;/b&gt;. Permite especificar el tratamiento que recibirán los miembros desconocidos. Valores: &lt;i&gt;Visible, Hidden, None&lt;/i&gt;.&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;UnknownMemberName&lt;/b&gt;. Permite cambiar el valor predeterminado del miembro desconocido al que queramos. Por defecto el valor es &lt;i&gt;Unknown&lt;/i&gt;.&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;ProactiveCaching&lt;/b&gt;. Para la configuración del caché automático del cubo.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Si te interesa esta información, y deseas convertirte en un profesional altamente especializado en Microsoft Business Intelligence, te recomiendo que nos pidas información sobre nuestro &lt;a href="http://www.solidq.com/squ/courses/Pages/Master-BI-Certified-Business-Intelligence-Microsoft-Espanol.aspx"&gt;&lt;strong&gt;Master en BI&lt;/strong&gt;&lt;/a&gt;. &lt;em&gt;Recuerda que hay poquitas plazas disponibles!!!&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Post publicados anteriormente como parte de este curso:&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=171&amp;amp;title=curso+ms+business+intelligence-ssas%3a+agregaciones+%2836%29" target="_blank"&gt;SSAS, Agregaciones (36)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=169&amp;amp;title=curso+ms+business+intelligence-ssas%3a+procesamiento+y+modos+de+almacenamiento+%2835%29"&gt;SSAS, Procesamiento y modos de almacenamiento (35)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=167&amp;amp;title=curso+ms+business+intelligence-ssas%3a+construyendo+y+desplegando+el+modelo+%2834%29"&gt;SSAS, Construyendo y desplegando el modelo (34)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=164&amp;amp;title=curso+ms+business+intelligence%e2%80%93ssas%3a+objetos+de+una+bbdd+de+analysis+services+%28parte+iv%e2%80%93dimensiones%29+%2833%29"&gt;SSAS, Objetos de una BBDD de Analysis Services parte IV – Dimensiones) (33)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=163&amp;amp;title=curso+ms+business+intelligence+-+ssas%3a+objetos+de+una+bbdd+de+analysis+services+%28parte+iii%e2%80%93cubos%29+%2832%29"&gt;SSAS, Objetos de una BBDD de Analysis Services (parte III – Cubos) (32)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=162&amp;amp;title=curso+ms+business+intelligence+-+ssas%3a+objetos+de+una+bbdd+de+analysis+services+%28parte+ii+-+datasource+views%29+%2831%29"&gt;SSAS, Objetos de una BBDD de Analysis Services (parte II – DataSource Views) (31)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=156&amp;amp;title=curso+ms+business+intelligence+-+ssas%3a+objetos+de+una+bbdd+de+analysis+services+%28parte+i+-+datasources%29+%2830%29"&gt;SSAS, Objetos de una BBDD de Analysis Services (parte I – DataSources) (30)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=155&amp;amp;title=curso+ms+business+intelligence+-+ssas%3a+cubos+olap%2c+conceptos+b%c3%a1sicos+%28parte+iii%29+%2829%29"&gt;SSAS, Cubos OLAP, Conceptos básicos (parte III) (29)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=154&amp;amp;title=curso+ms+business+intelligence+-+ssas%3a+cubos+olap%2c+conceptos+b%c3%a1sicos+%28parte+ii%29+%2828%29"&gt;SSAS, Cubos OLAP, Conceptos básicos (parte II) (28)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=152&amp;amp;title=curso+ms+business+intelligence+-+ssas%3a+cubos+olap%2c+conceptos+b%c3%a1sicos+%28parte+i%29+%2827%29"&gt;SSAS, Cubos OLAP, Conceptos básicos (parte I) (27)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=151&amp;amp;title=curso+ms+business+intelligence+-+ssas%3a+qu%c3%a9+es+analysis+services+%2826%29"&gt;SSAS, Qué es Analysis Services (26)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=149&amp;amp;title=curso+ms+business+intelligence+-+fin+del+m%c3%b3dulo+de+ssis+y+recapitulaci%c3%b3n+%2825%29"&gt;Fin del módulo de SSIS y recapitulación (25)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=143&amp;amp;title=cursos+ms+business+intelligence+ssis%3a+programar+la+ejecuci%c3%b3n+de+paquetes+%2824%29"&gt;SSIS, Programar la ejecución de paquetes (24)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=142&amp;amp;title=curso+ms+business+intelligence+-+ssis%3a+ejecuci%c3%b3n+de+paquetes+en+el+servidor+%2823%29"&gt;SSIS, Ejecución de paquetes en el servidor (23)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=140&amp;amp;title=curso+ms+business+intelligence+ssis%3a+despliegue+de+paquetes+%2822%29"&gt;SSIS, Despliegue de paquetes (22)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=132&amp;amp;title=curso+ms+business+intelligence+ssis%3a+configuraci%c3%b3n%2c+despliegue+y+administracion+%28parte+iii%29+%2821%29"&gt;SSIS Configuración, Despliegue y Administración (parte III) (21)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=130&amp;amp;title=curso+ms+business+intelligence+-+ssis%3a+configuracion%2c+despliegue+y+administraci%c3%b3n+%28parte+ii%29+%2820%29"&gt;SSIS Configuración, Despliegue y Administración (parte II) (20)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=129&amp;amp;title=curso+ms+business+intelligence+ssis%3a+configuraci%c3%b3n%2c+despliegue+y+administracion+%28parte+i%29+%2819%29"&gt;SSIS Configuración, Despliegue y Administración (parte I) (19)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=128&amp;amp;title=curso+ms+business+intelligence+-+ssis+logging+%28parte+iii%29+%2818%29"&gt;SSIS Logging (parte III) (18)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=126&amp;amp;title=curso+ms+business+intelligence+-+ssis+logging+%28parte+ii%29+%2817%29"&gt;SSIS Logging (parte II) (17)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=123&amp;amp;title=curso+ms+business+intelligence+-+ssis+loging+%28parte+i%29+%2816%29"&gt;SSIS Logging (parte I) (16)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=122&amp;amp;title=curso+ms+business+intelligence+ssis+buenas+pr%c3%a1cticas+%28parte+iii%29+%2815%29"&gt;SSIS Buenas prácticas (parte III) (15)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=120&amp;amp;title=curso+ms+business+intelligence+-+ssis+buenas+pr%c3%a1cticas+%28parte+ii%29+%2814%29"&gt;SSIS Buenas prácticas (parte II) (14)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=119&amp;amp;title=curso+ms+business+intelligence+-+ssis+buenas+pr%c3%a1cticas+%28parte+i%29+%2813%29"&gt;SSIS Buenas prácticas (parte I) (13)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=112&amp;amp;title=curso+ms+business+intelligence+-+ssis+data+flow+%2812%29"&gt;SSIS Data Flow (12)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=106&amp;amp;title=Curso+MS+Business+Intelligence+-+SSIS+ControlFlow+%2811%29"&gt;SSIS Control Flow (11)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=105&amp;amp;title=Curso+MS+Business+Intelligence+-+Introduccion+a+SSIS+%2810%29"&gt;Introducción a SSIS (10)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=104&amp;amp;title=Curso+MS+Business+Intelligence+-+Modelado+Dimensional+%289%29"&gt;Modelado Dimensional (9)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=103&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Introduccion+completa+%288%29"&gt;Introducción Completa (8)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=84&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Herramientas+cliente+SQL+Server+%287%29"&gt;Herramientas Cliente SQL Server (7)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=83&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Componentes+de+la+plataforma+Microsoft+BI+%286%29"&gt;Componentes de la Plataforma Microsoft BI (6)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=82&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Visi%c3%b3n+y+estrategia+%285%29"&gt;Microsoft BI – Visión y Estrategia (5)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=81&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Componentes+de+una+soluci%c3%b3n+de+BI+%284%29"&gt;Componentes de una Solución de BI (4)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=80&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Conceptos+importantes+sobre+BI+%e2%80%93+parte+II+%283%29"&gt;Conceptos importantes sobre BI – parte II (3)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=79&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Conceptos+importantes+sobre+BI+%e2%80%93+parte+I+%282%29"&gt;Conceptos importantes sobre BI – parte I (2)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=78&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Definici%c3%b3n+del+t%c3%a9rmino+BI+%281%29"&gt;Definición del término BI (1)&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;</description>
      <shortDescription>&lt;div class="ExternalClass7BE1884E5ADE45489E9DB26BF008952B"&gt;&lt;h4&gt;&lt;a name="_Toc291606227"&gt;Personalizando el modelo de Analysis Services&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;Una vez introducidos los coneptos y elementos fundamentales, vamos a continuar profundizando en la creación de cubos y dimensiones, y sobre todo en la personalización de éstos y adaptación a las necesidades del negocio.&lt;/p&gt;  &lt;h5&gt;&lt;a name="_Toc291606228"&gt;Dimensiones&lt;/a&gt;&lt;/h5&gt;  &lt;p&gt;Una vez vistos los datos a medir, pasemos a analizar las diferentes perspectivas desde las que los vamos a analizar. Vamos a conocer más a fondo esas dimensiones y sus características. &lt;/p&gt;  &lt;p&gt;Las &lt;b&gt;Dimensiones&lt;/b&gt; se basan en tablas...&lt;/p&gt;&lt;/div&gt;</shortDescription>
      <category name="Agregaciones" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Agregaciones" nameEnconded="Agregaciones" />
      <category name="Analysis Services" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Analysis+Services" nameEnconded="Analysis+Services" />
      <category name="SSAS" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=SSAS" nameEnconded="SSAS" />
      <category name="Cursos" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Cursos" nameEnconded="Cursos" />
      <dc:language name="http://blogs.solidq.com/Pages/Home.aspx?language=Spanish" nameEncoded="Spanish" xmlns:dc="http://purl.org/dc/elements/1.1/"></dc:language>
    </item>
    <item>
      <title>CURSO Big Data, Data Science: Nuevos Tratamientos Avanzados de la información</title>
      <ItemID>16</ItemID>
      <link>http://blogs.solidq.com/SolidQ/Post.aspx?ID=16&amp;title=CURSO+Big+Data%2c+Data+Science%3a+Nuevos+Tratamientos+Avanzados+de+la+informaci%c3%b3n</link>
      <pubDate>2013-04-11T15:06:00+02:00</pubDate>
      <author>SolidQ</author>
      <authorEncoded>SolidQ</authorEncoded>
      <authorID>150</authorID>
      <comments>None</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">None</wfw:commentRss>
      <description>&lt;div class="ExternalClass077EF201C84148A4B409E2444372C7F8"&gt;&lt;p&gt;Este curso, dirigido a profesionales del Análisis y Tratamiento de la Información, consultores, jefes de proyectos de BI y a responsables de sistemas de Información o Administradores de sistemas; se llevará a cabo los días &lt;span&gt;25 de Abril en Coruña y el 26 de Abri&lt;/span&gt;&lt;span&gt;l en Vig&lt;/span&gt;o.&lt;/p&gt;
&lt;p&gt;Nuestro compañero &lt;a target="_blank" href="http://www.solidq.com/ib-es/nosotros/Pages/description.aspx?name=Antonio+Soto"&gt;Antonio Soto&lt;/a&gt;, será el formador de este curso orientado a que el asistente comprenda la diferenciación de la aplicación de las técnicas Big Data, análisis de memoria o de la Minería de Datos “tradicional”. &lt;/p&gt;
&lt;h1&gt;Temario &lt;/h1&gt;
&lt;p&gt;Introducción: La revolución de los datos. &lt;br /&gt;o Big Data, Data Science y lo que nos pueden proporcionar. &lt;br /&gt;o Actores de mercado en Big Data. &lt;br /&gt;o Utilidades de Big Data.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Escenarios de Business Analytics. &lt;br /&gt;o Análisis de gran cantidad de datos no estructurados: Microsoft HDInsight. &lt;br /&gt;o Análisis de datos en memoria: Microsoft StreamInsight. &lt;br /&gt;o Análisis en profundidad: SQL Server. &lt;br /&gt;o Escenarios de Integración.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;• ¿Y cómo exploto toda esta información?: Microsoft Excel &lt;br /&gt;o PowerPivot. &lt;br /&gt;o Complementos Excel para Minería de Datos. &lt;br /&gt;o Acceso a Datos Hadoop. &lt;br /&gt;o Data Explorer.&lt;/p&gt;
&lt;p&gt;Para más información sobre este curso organizado por &lt;a target="_blank" href="http://www.vitaedigital.com/"&gt;Vitae Consultores&lt;/a&gt; puedes descargarte el &lt;a target="_blank" href="http://www.vitaedigital.com/docs/o_469_f_409.pdf"&gt;folleto en este enlace&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://www.solidq.com/ib-es/nosotros/Documents/SolidQ-BigDataBrochure-Abril-2013.pdf" title="Big Data en SolidQ, ¿Para qué es importante Big Data?"&gt;&lt;img width="203" height="40" border="0" src="/SolidQ/PublishingImages/BigDataEnSolidQ.JPG" alt="Qué ofrecemos desde SolidQ" title="Qué ofrecemos en SolidQ" style="background-image:none;float:none;margin-left:auto;display:block;margin-right:auto" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <shortDescription>&lt;div class="ExternalClass077EF201C84148A4B409E2444372C7F8"&gt;&lt;p&gt;Este curso, dirigido a profesionales del Análisis y Tratamiento de la Información, consultores, jefes de proyectos de BI y a responsables de sistemas de Información o Administradores de sistemas; se llevará a cabo los días &lt;span&gt;25 de Abril en Coruña y el 26 de Abri&lt;/span&gt;&lt;span&gt;l en Vig&lt;/span&gt;o.&lt;/p&gt;
&lt;p&gt;Nuestro compañero &lt;a target="_blank" href="http://www.solidq.com/ib-es/nosotros/Pages/description.aspx?name=Antonio+Soto"&gt;Antonio Soto&lt;/a&gt;, será el formador de este curso orientado a que el asistente comprenda la diferenciación de la aplicación de las técnicas Big Data, análisis de memoria o de la Minería de Datos “tradicional”. &lt;/p&gt;
&lt;h1&gt;Temario...&lt;/h1&gt;&lt;/div&gt;</shortDescription>
      <category name="Events" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Events" nameEnconded="Events" />
      <dc:language name="http://blogs.solidq.com/Pages/Home.aspx?language=Spanish" nameEncoded="Spanish" xmlns:dc="http://purl.org/dc/elements/1.1/"></dc:language>
    </item>
    <item>
      <title>TypeScript en SharePoint 2013</title>
      <ItemID>240</ItemID>
      <link>http://blogs.solidq.com/sharepoint/Post.aspx?ID=240&amp;title=TypeScript+en+SharePoint+2013</link>
      <pubDate>2013-04-03T12:03:18+02:00</pubDate>
      <author>Roberto Ramón Berna</author>
      <authorEncoded>Roberto+Ram%c3%b3n+Berna</authorEncoded>
      <authorID>68</authorID>
      <comments>None</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">None</wfw:commentRss>
      <description>&lt;div class="ExternalClass0B0E8E841EB94C06933C5EB72D9037DC"&gt;&lt;p&gt;Muy buenas;&lt;/p&gt;  &lt;p&gt;hace algún tiempo que salió TypeScript y desde el mismo momento que salió he intentado buscar el hueco para indagar sobre él, hoy ha llegado ese día &lt;img style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none" class="wlEmoticon wlEmoticon-smile" alt="Sonrisa" src="/sharepoint/Lists/Posts/Attachments/240/wlEmoticon-smile_2_310088E0.png" /&gt;.&lt;/p&gt;  &lt;p&gt;Para empezar vamos a hacer una introducción sobre TypeScript.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;¿Qué es TypeScript?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Lo primero que hay que tener claro para responder a esta pregunta, es que TypeScript &lt;strong&gt;no&lt;/strong&gt; es un nuevo lenguaje de programación. Podríamos decir que TypeScript es una mejora o una extensión de JavaScript que nos aporta la posibilidad de utilizar &lt;strong&gt;tipado estático&lt;/strong&gt; para organizar mucho mejor nuestro código. ¿Cuántas veces hemos visto un archivo .js con unas cientos de líneas y nos hemos puesto a temblar para entenderlas?, pues para ahorrarnos ese mal rato ha surgido TypeScript, para hacernos ganar en &lt;strong&gt;mantenibilidad, &lt;/strong&gt;es decir, para generar un código mucho más fácil de leer. &lt;/p&gt;  &lt;p&gt;Es importante saber que dicho tipado &lt;strong&gt;no es obligatorio&lt;/strong&gt; de utilizar, podremos utilizarlo cuando lo consideremos oportuno o mejor dicho, cuando de verdad nos resulte de utilidad. El código JavaScript podrá convivir en un fichero escrito en TypeScript sin problemas. Un archivo TypeScript tiene una extensión .ts (&lt;strong&gt;T&lt;/strong&gt;ype&lt;strong&gt;S&lt;/strong&gt;cript), el cual es necesario compilar para transformar este tipado a JavaScript plano (con el que estamos acostumbrados a trabajar). La gran ventaja de que se compile a JavaScript plano, es que funcionará en todos los navegadores y podremos utilizar en nuestro código una estructura basada en &lt;strong&gt;clases y módulos,&lt;/strong&gt; siguiendo el modelo de la programación orientada a objetos.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;¿Cómo lo integro en SharePoint 2013?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Lo primero que debemos hacer, es instalar el &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=34790" target="_blank"&gt;plugin&lt;/a&gt; de TypeScript para poder agregar a nuestro proyecto un archivo con extensión .ts. (Este ejemplo está hecho con la versión 0.8.0.0)&lt;/p&gt;  &lt;p&gt;Para demostrar dicha integración, crearemos una SharePoint-Hosted App.&lt;/p&gt;  &lt;p&gt;&lt;a href="/sharepoint/Lists/Posts/Attachments/240/typeProjectSharePoint_310088E0.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px" title="typeProjectSharePoint" border="0" alt="typeProjectSharePoint" src="/sharepoint/Lists/Posts/Attachments/240/typeProjectSharePoint_thumb_310088E0.png" width="598" height="303" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Dentro del módulo “Scripts” que se autogenera con el proyecto, añadimos el archivo TypeScript.&lt;/p&gt;  &lt;p&gt;&lt;a href="/sharepoint/Lists/Posts/Attachments/240/archivoTypeScript_310088E0.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px" title="archivoTypeScript" border="0" alt="archivoTypeScript" src="/sharepoint/Lists/Posts/Attachments/240/archivoTypeScript_thumb_310088E0.png" width="605" height="342" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Como comentábamos antes, el archivo con extensión .ts por debajo es un archivo .js.&lt;/p&gt;  &lt;p&gt;&lt;a href="/sharepoint/Lists/Posts/Attachments/240/filejs_310088E0.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px" title="filejs" border="0" alt="filejs" src="/sharepoint/Lists/Posts/Attachments/240/filejs_thumb_310088E0.png" width="330" height="149" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Al añadir el archivo TypeScript, éste se crea con un éjemplo de código por defecto, aquí podeís ver las semejanzas. (En este post no explicaremos código)&lt;/p&gt;  &lt;p&gt;&lt;a href="/sharepoint/Lists/Posts/Attachments/240/codejs_310088E0.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px" title="codejs" border="0" alt="codejs" src="/sharepoint/Lists/Posts/Attachments/240/codejs_thumb_310088E0.png" width="812" height="530" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;También tendremos Intellisense en nuestro archivo .ts.&lt;/p&gt;  &lt;p&gt;&lt;a href="/sharepoint/Lists/Posts/Attachments/240/intellisense_310088E0.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px" title="intellisense" border="0" alt="intellisense" src="/sharepoint/Lists/Posts/Attachments/240/intellisense_thumb_310088E0.png" width="330" height="94" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Es importante tener en mente, que nosotros vamos a trabajar con el archivo .ts, pero en realidad a la hora de lanzar la aplicación lo que se hace es compilar el archivo .ts generando uno .js. Para que todo vaya más rodado, necesitamos que esta compilación la haga automáticamente nuestro proyecto de Visual Studio, para ello tendremos que modificar el &lt;strong&gt;.csprog&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Inicialmente haremos el unload del proyecto, botón derecho sobre el proyecto y elegimos la opción “&lt;strong&gt;Unload Project&lt;/strong&gt;”.&lt;/p&gt;  &lt;p&gt;Volvemos a hacer click con el botón derecho sobre el proyecto y seleccionamos la opción “Edit SP-TypeScript-App.csprog” para editar el archivo &lt;strong&gt;.csprog&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="/sharepoint/Lists/Posts/Attachments/240/editcsprog_310088E0.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px" title="editcsprog" border="0" alt="editcsprog" src="/sharepoint/Lists/Posts/Attachments/240/editcsprog_thumb_310088E0.png" width="328" height="129" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Tendremos que añadir el parámetro &lt;strong&gt;InitialTargets&lt;/strong&gt; a la etiqueta Project, que quedaría de la siguiente forma&lt;/p&gt;  &lt;pre class="brush: xml; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"&gt;&amp;lt;Project ToolsVersion=&amp;quot;4.0&amp;quot; DefaultTargets=&amp;quot;Build&amp;quot; xmlns=&amp;quot;http://schemas.microsoft.com/developer/msbuild/2003&amp;quot; InitialTargets=&amp;quot;TypeScriptCompile&amp;quot;&amp;gt;&lt;/pre&gt;

&lt;p&gt;Justo antes de cerrar la etiqueta Project, tendremos que añadir también este código&lt;/p&gt;

&lt;pre class="brush: xml; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"&gt;  &amp;lt;Target Name=&amp;quot;TypeScriptCompile&amp;quot; BeforeTargets=&amp;quot;Build&amp;quot;&amp;gt;
    &amp;lt;Message Text=&amp;quot;Compiling TypeScript...&amp;quot; /&amp;gt;
    &amp;lt;Exec Command=&amp;quot;&amp;amp;quot;$(PROGRAMFILES)\Microsoft SDKs\TypeScript\0.8.0.0\tsc&amp;amp;quot; -target ES5 @(TypeScriptCompile -&amp;gt;'&amp;amp;quot;%(fullpath)&amp;amp;quot;', ' ')&amp;quot; /&amp;gt;
  &amp;lt;/Target&amp;gt;&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Con esto ya tendríamos todo lo necesario para realizar la &lt;strong&gt;compilación del archivo TypeScript automáticamente&lt;/strong&gt;. Guardamos y hacemos un “&lt;strong&gt;Reload Project&lt;/strong&gt;”. Ahora si introducimos código en el archivo TypeScript y hacemos un “&lt;strong&gt;Rebuild&lt;/strong&gt;” veremos que el archivo TypeScript se compila automáticamente poblando nuestro archivo JavaScript. Para completar el ciclo, el último paso que nos queda es añadir nuestro archivo JavaScript a la página.&lt;/p&gt;

&lt;pre class="brush: xml; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;../Scripts/ArchivoTypeScript.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;

&lt;p&gt;Como apunte final, se de buena tinta que es complicado dedicar tiempo en aprender  “mejores” formas de hacer las cosas…lo de siempre, se quiere rápido y para antes de ayer, pero si de verdad os dan la oportunidad, yo no me lo pensaría para adentrarme en el mundo TypeScript. Más adelante en otro post, entraremos más en detalle en el propio código TypeScript y veremos hasta donde podemos llegar con ello en SharePoint.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Un saludo SharePointeros !! &lt;img style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none" class="wlEmoticon wlEmoticon-smile" alt="Sonrisa" src="/sharepoint/Lists/Posts/Attachments/240/wlEmoticon-smile_2_310088E0.png" /&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <shortDescription>&lt;div class="ExternalClass0B0E8E841EB94C06933C5EB72D9037DC"&gt;&lt;p&gt;Muy buenas;&lt;/p&gt;  &lt;p&gt;hace algún tiempo que salió TypeScript y desde el mismo momento que salió he intentado buscar el hueco para indagar sobre él, hoy ha llegado ese día &lt;img style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none" class="wlEmoticon wlEmoticon-smile" alt="Sonrisa" src="/sharepoint/Lists/Posts/Attachments/240/wlEmoticon-smile_2_310088E0.png" /&gt;.&lt;/p&gt;  &lt;p&gt;Para empezar vamos a hacer una introducción sobre TypeScript.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;¿Qué es TypeScript?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Lo primero que hay que tener claro para responder a esta pregunta, es que TypeScript &lt;strong&gt;no&lt;/strong&gt; es un nuevo lenguaje de programación. Podríamos decir que TypeScript es una mejora o una extensión de JavaScript que nos aporta la posibilidad de...&lt;/p&gt;&lt;/div&gt;</shortDescription>
      <category name="None" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=None" nameEnconded="None" />
      <dc:language name="http://blogs.solidq.com/Pages/Home.aspx?language=Spanish" nameEncoded="Spanish" xmlns:dc="http://purl.org/dc/elements/1.1/"></dc:language>
    </item>
    <item>
      <title>Borrando nuestras huellas</title>
      <ItemID>244</ItemID>
      <link>http://blogs.solidq.com/ElRinconDelDBA/Post.aspx?ID=244&amp;title=Borrando+nuestras+huellas</link>
      <pubDate>2013-03-31T13:04:33+02:00</pubDate>
      <author>Rubén Garrigós</author>
      <authorEncoded>Rub%c3%a9n+Garrig%c3%b3s</authorEncoded>
      <authorID>40</authorID>
      <comments>None</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">None</wfw:commentRss>
      <description>&lt;div class="ExternalClassA157934710A84397897252A8AFC57F0B"&gt;&lt;p&gt;&lt;font size="2"&gt;En ocasiones especiales cuando necesitamos acceso a bajo nivel a SQL Server no nos queda otra alternativa que realizar modificaciones directas en los catálogos de sistema. La posición oficial de Microsoft es que este tipo de operaciones no están soportadas (salvo que las realice directamente alguno de sus técnicos de soporte). Es probable que si necesitamos abrir un caso con soporte un ingeniero compruebe si hemos realizado modificaciones en las tablas de sistema.&lt;/font&gt;&lt;/p&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;p&gt;&lt;font size="2"&gt;La base de datos master es una base de datos dinámica, donde existen cambios de forma frecuente, por lo que no podría comparar el fichero original con un fichero de referencia. Por tanto para detectar cambios en las tablas de sistema se recurre al comando no documentado DBCC DBINFO.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Para poder ver el resultado de este comando primero habilitaremos la salida de los comandos DBCC al cliente con DBCC TRACEON (3604) y luego ejecutaremos el comando DBCC DBINFO:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/244/image_2_31E0E80C.png"&gt;&lt;font size="2"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/244/image_thumb_31E0E80C.png" width="575" height="523" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Tras lanzar el comando en nuestra base de datos master vemos que el valor de dbi_updSysCatalog es una fecha cuyo valor es el siguiente “1900-01-01 00:00:00.000”. Esto indica que no se ha realizado ningún cambio en las tablas de sistema y, por lo tanto, “estamos limpios” y no tendremos problemas en caso de soporte por este tema.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Imaginemos ahora que por alguna razón muy justificada necesitamos realizar algún cambio en las tablas de sistema. Si después de dicho cambio lanzamos de nuevo el comando DBCC DBINFO veremos que la fecha dbi_updSysCatalog se actualiza a la fecha en la que hemos realizado la modificación:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/244/image_4_31E0E80C.png"&gt;&lt;font size="2"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/244/image_thumb_1_31E0E80C.png" width="590" height="568" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Debido a que no disponemos de ningún comando que directamente nos permita resetear este valor, debemos investigar dónde se almacena dicho valor. Este valor es un valor “portable”, es decir, que si realizamos un backup de la base de datos y lo restauramos en otro servidor sigue persistiendo. Por tanto dicha información debe almacenarse con alta probabilidad dentro de los ficheros de la base de datos. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;¿Dónde tendría sentido que se almacenara? Muy probablemente en alguna de las páginas de metadatos que existen al principio de los ficheros de la base de datos. En concreto tendría sentido que estuviera en el fichero primario de la base de datos. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Con el comando DBCC PAGE podemos extraer información de las páginas de nuestra base de datos. El comando DBCC PAGE se encuentra bastante documentado por lo que no nos detendremos en este punto. Vamos a extraer información dela primera página del fichero de datos de master, la página de cabecera:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/244/image_6_31E0E80C.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/244/image_thumb_2_31E0E80C.png" width="585" height="566" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Podemos ver que esta página muestra bastante información sin embargo no está la información que buscamos. La página 9 es la que contiene la información que estamos buscando:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/244/image_8_31E0E80C.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/244/image_thumb_3_31E0E80C.png" width="584" height="511" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;El siguiente paso será detectar exactamente en qué parte de la página se almacena el valor de la fecha de dbi_updSysCatalog. Si comparamos dos DBCC PAGE distintos (en uno tenemos el dbi_updSysCatalog con el valor 1900-01-01 00:00:00 y en otro no) podemos ver lo siguiente:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/244/image_12_31E0E80C.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/244/image_thumb_5_31E0E80C.png" width="580" height="494" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Los bytes marcados en negro son los que están almacenando la fecha que queremos modificar. Con el uso del comando DBCC WRITEPAGE (de nuevo, no documentado pero con extensa información en la web) podemos realizar la modificación sobre la página. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;ATENCION: Debemos tener mucha precaución al utilizar este comando ya que un simple error nos puede dejar la base de datos corrupta e irrecuperable. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;En nuestro caso el offset a calcular será, el resultado de sumar los 96 bytes de la cabecera (0x60) más el offset del slot 0 hasta el final de la fecha (0x280 menos 8 bytes). El offset será por tanto 0x60+0x280-0x08=0x2D8=728 bytes. El total a escribir serán 8 bytes y el valor a escribir será 0x0000000000000000 (que equivale a la fecha 1900-01-01 00:00:00.000) por lo que el comando a lanzar será el siguiente:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;DBCC WRITEPAGE (1,1,9,728,8,0x0000000000000000)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Una vez lanzado comprobaremos que el comando DBINFO muestra correctamente que hemos borrado nuestro rastro en lo que a tablas de sistema modificadas se refiere :)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/244/image_14_31E0E80C.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/244/image_thumb_6_5FCE3AC4.png" width="590" height="324" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <shortDescription>&lt;div class="ExternalClassA157934710A84397897252A8AFC57F0B"&gt;&lt;p&gt;&lt;font size="2"&gt;En ocasiones especiales cuando necesitamos acceso a bajo nivel a SQL Server no nos queda otra alternativa que realizar modificaciones directas en los catálogos de sistema. La posición oficial de Microsoft es que este tipo de operaciones no están soportadas (salvo que las realice directamente alguno de sus técnicos de soporte). Es probable que si necesitamos abrir un caso con soporte un ingeniero compruebe si hemos realizado modificaciones en las tablas de sistema.&lt;/font&gt;&lt;/p&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;p&gt;&lt;font size="2"&gt;La base de datos master es una...&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;</shortDescription>
      <category name="None" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=None" nameEnconded="None" />
      <dc:language name="http://blogs.solidq.com/Pages/Home.aspx?language=Spanish" nameEncoded="Spanish" xmlns:dc="http://purl.org/dc/elements/1.1/"></dc:language>
    </item>
    <item>
      <title>Paralelismo en SQL Server (I)</title>
      <ItemID>243</ItemID>
      <link>http://blogs.solidq.com/ElRinconDelDBA/Post.aspx?ID=243&amp;title=Paralelismo+en+SQL+Server+(I)</link>
      <pubDate>2013-03-30T22:49:39+01:00</pubDate>
      <author>Enrique Catalá</author>
      <authorEncoded>Enrique+Catal%c3%a1</authorEncoded>
      <authorID>38</authorID>
      <comments>None</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">None</wfw:commentRss>
      <description>&lt;div class="ExternalClass78C18E33FEEA4F65AD16ECA742698AD9"&gt;&lt;p&gt;En SQL Server podemos ajustar el paralelismo desde diversos puntos de vista, para conseguir diferentes resultados en función de nuestras necesidades. Una cosa que debemos recordar siempre es que aunque SQL Server posee reglas para auto-optimizarse en función del hardware detectado al iniciarse, es cierto tambien que debemos realizar ajustes al mismo en función de cómo estemos utilizando la instancia, esto es, qué tipo de peticiones le hacemos al motor relacional. &lt;/p&gt;  &lt;p&gt;Dicho esto, SQL Server nos ofrece las siguientes posibilidades a la hora de afinar el paralelismo:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;A nivel Hardware &lt;/li&gt;    &lt;li&gt;A nivel de instancia &lt;/li&gt;    &lt;li&gt;A nivel de conexión &lt;/li&gt;    &lt;li&gt;A nivel de sentencia T-SQL &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;em&gt;NOTA: En este post, vamos a introducirnos en los significados de cada una de dichas configuraciones, para ir familiarizándonos de cara a los futuros posts que tratarán sobre el tema.&lt;/em&gt;&lt;/p&gt;  &lt;h2&gt;A nivel hardware&lt;/h2&gt;  &lt;p&gt;SQL Server es capaz de detectar el hardware en el que está corriendo de forma que se ajusta de forma diferente para aprovechar todas sus caracteristicas en cada momento. &lt;/p&gt;  &lt;p&gt;De forma muy genérica, es capaz de distinguir entre correr en un hardware SMP, cuya arquitectura de alto nivel sería esta:&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/243/image_2_118BB41D.png"&gt;&lt;img title="image" style="border-width:0px;margin-right:auto;margin-left:auto;float:none;display:block" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/243/image_thumb_118BB41D.png" width="244" height="115" /&gt;&lt;/a&gt;Y detectar si está corriendo en Hardware NUMA (&lt;a href="http://es.wikipedia.org/wiki/NUMA" target="_blank"&gt;Non-Uniform Memory Access&lt;/a&gt;), cuya arquitectura de alto nivel seria esta:&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/243/image_4_118BB41D.png"&gt;&lt;img title="image" style="border-width:0px;margin-right:auto;margin-left:auto;float:none;display:block" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/243/image_thumb_1_118BB41D.png" width="448" height="140" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;El hardware NUMA es bastante común en entornos críticos donde se requiere alto rendimiento, pero debido a sus beneficios y reducción de costes es cada vez mas frecuente encontrarlos en equipos “estandard” empresariales. En este tipo de arquitecturas, se dispone de varios nodos NUMA, cada uno compuesto por sus propios bancos de memoria, CPU y controladora, estando todos los nodos interconectados entre si. Típicamente el SO abstrae de la gestión de memoria y CPU a las aplicaciones que corren en dicho hardware, pero si se quiere que la aplicación explote al máximo las prestaciones de la máquina hay que realizarle ciertos “ajustes”. Una de las razones mas importantes es que si existe por ejemplo un thread corriendo sobre el NODO1 que debe acceder a una página de memoria alojada en otro nodo (digamos NODO2), típicamente se tarda entre 3 y 4 veces el tiempo que se tardaría en acceder a dicha página, si dicha página se encontrase en el NODO1. Por tanto, si la aplicación supiese que corre en hardware NUMA y se hiciera lo posible por tratar de almacenar la memoria relacionada cerca entre si dentro de los mismos nodos NUMA, se estaría favoreciendo el rendimiento enormemente (recordemos entre 3 y 4 veces la penalización por acceso al exterior). Este concepto es el que denominaremos a partir de ahora como DATA LOCALITY y trata de resumir la esencia de buscar siempre, que el dato se encuentre lo mas cerca del origen que lo pide, tanto él como los que futuramente puedan ser accedidos.&lt;/p&gt;  &lt;p&gt;Dado que SQL Server es una aplicación diseñada para aprovechar arquitecturas NUMA, nosotros podemos obviamente modificar los parámetros hardware del sistema para que SQL Server se autoajuste en función del nº de nodos disponibles, por ejemplo. Obviamente este concepto de “afinamiento” es méramente anecdótico y se ha añadido para recordar al lector que SQL Server posee un mecanismo de auto-afinamiento que en este caso aprovecha el hardware existente favoreciendo DATA LOCALITY.&lt;/p&gt;  &lt;p&gt;Además, entre otras cosas incrementa el nº de hidden schedulers (como por ejemplo lazywritter) de forma que SQL Server creará 1 por cada nodo NUMA disponible. &lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/243/image_6_118BB41D.png"&gt;&lt;img title="image" style="border-width:0px;margin-right:auto;margin-left:auto;float:none;display:block" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/243/image_thumb_2_118BB41D.png" width="471" height="106" /&gt;&lt;/a&gt;    &lt;br /&gt;*Imagen donde se puede observar el contenido del fichero ERRORLOG indicando cómo se han detectado 3 nodos NUMA hardware en el sistema y el nº de procesos LAZY WRITTER creados (uno por cada nodo numa)&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h2&gt;A nivel de instancia&lt;/h2&gt;  &lt;p&gt;A nivel de instancia es donde mas podemos afinar el comportamiento de SQL Server. Tenemos las siguientes posibilidades:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;1.Máscaras de afinidiad &lt;/li&gt;    &lt;li&gt;2.Degree of parallelism &lt;/li&gt;    &lt;li&gt;3.cost threshold for parallelism &lt;/li&gt;    &lt;li&gt;4.max worker threads &lt;/li&gt; &lt;/ol&gt;  &lt;h3&gt; &lt;/h3&gt;  &lt;h3&gt; &lt;/h3&gt;  &lt;h3&gt;Máscaras de afinidad&lt;/h3&gt;  &lt;p&gt;A la hora de configurar las máscaras de afinidad, podemos trabajarlo en 3 niveles:&lt;/p&gt;  &lt;blockquote&gt;   &lt;h4&gt;1. Afinidad de procesador&lt;/h4&gt; &lt;/blockquote&gt;  &lt;p&gt;La afinidad de procesador se usa para indicar qué CPU podrán ser accesibles por SQL Server. Además, podremos vincular hilos a determinados procesadores. El resultado real de desactivar CPU es que SQL Server desactivará los schedulers asociados y por tanto efectívamente no utilizará dichas CPU&lt;/p&gt;  &lt;p&gt;¿Para qué querríamos hacer esto?&lt;/p&gt;  &lt;p&gt;Como sabemos, podemos tener mas de una instancia SQL Server instalada en la misma máquina. En estos escenarios, para evitar peleas por el recurso CPU que entorpezcan el rendimiento general del sistema, es una buena práctica des-solapar las CPU de ambas instancias.&lt;/p&gt;  &lt;p&gt;Por ejemplo, si tenemos 8 CPU y 2 instancias instaladas, dejaríamos activadas las CPU 0-3 para la instancia 1 y las CPU 4-7 para la instancia 2.&lt;/p&gt;  &lt;p&gt;Para más información: &lt;a title="http://msdn.microsoft.com/en-us/library/ms187104.aspx" href="http://msdn.microsoft.com/en-us/library/ms187104.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms187104.aspx&lt;/a&gt; &lt;/p&gt;  &lt;blockquote&gt;   &lt;h4&gt;2. Afinidad de E/S&lt;/h4&gt; &lt;/blockquote&gt;  &lt;p&gt;Toda operación de E/S debe ser finalizada (cálculo de checksum, número de bytes transferidos, número de página correcto,…) y para ello se realiza un consumo de CPU. Este tipo de operaciones es realizado por el proceso denominado LAZY WRITTER por un scheduler oculto. Configurando la afinidad de E/S podremos indicar qué CPU podrán ser accesibles por el scheduler oculto que realiza estas tareas. &lt;/p&gt;  &lt;p&gt;¿Por qué querríamos hacer esto?&lt;/p&gt;  &lt;p&gt;Al igual que el afinamiento de CPU, el afinamiento de E/S está pensado para mejorar el rendimiento en entornos donde la presión de E/S es alta. De esta forma, podemos limitar a determinadas CPU el gasto computacional asociado a operaciones de finalización de E/S. &lt;/p&gt;  &lt;p&gt;Tened presente, que la idea en este caso es precisamente evitar que los schedulers normales y los schedulers ocultos de finalización de E/S compitan por los mismos recursos. Esto quiere decir que lo que buscamos es esto:&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/243/image_8_118BB41D.png"&gt;&lt;img title="image" style="border-width:0px;margin-right:auto;margin-left:auto;float:none;display:block" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/243/image_thumb_3_118BB41D.png" width="124" height="70" /&gt;&lt;/a&gt; No queremos esto:&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/243/image_10_118BB41D.png"&gt;&lt;img title="image" style="border-width:0px;margin-right:auto;margin-left:auto;float:none;display:block" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/243/image_thumb_4_118BB41D.png" width="123" height="78" /&gt;&lt;/a&gt;Ya que estaríamos haciendo competir por la CPU a los schedulers normales que se encuentran realizando tareas sql, y a los schedulers ocultos como el de finalización de E/S.&lt;/p&gt;  &lt;p&gt;La propia GUI de SSMS te impide las malas configuraciones evitando que puedas marcar la misma CPU para afinidad de procesador y afinidad de E/S, lo cual es algo de agradecer:&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/243/image_12_118BB41D.png"&gt;&lt;img title="image" style="border-width:0px;margin-right:auto;margin-left:auto;float:none;display:block" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/243/image_thumb_5_118BB41D.png" width="244" height="177" /&gt;&lt;/a&gt;*Ejemplo cualquiera de configuración de afinidad CPU y afinidad E/S mediante asistente&lt;/p&gt;  &lt;p align="left"&gt;Para más información: &lt;a title="http://msdn.microsoft.com/en-us/library/ms189629.aspx" href="http://msdn.microsoft.com/en-us/library/ms189629.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms189629.aspx&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;h4&gt;3. Afinidad de red&lt;/h4&gt; &lt;/blockquote&gt;  &lt;p align="left"&gt;Existe un método avanzado para optimizar sistemas SQL Server consistente en vincular un determinado puerto de comunicaciones, con un determinado NODO numa. Para realizar esta configuración, obviamente debemos disponer de hardware NUMA y obviamente con mas de 1 NODO.&lt;/p&gt;  &lt;p align="left"&gt;La idea es que consitamos un aumento de rendimiento a base de facilitar DATA LOCALITY mediante cierta “inteligencia” por nuestra parte:&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/243/image_14_118BB41D.png"&gt;&lt;img title="image" style="border-width:0px;margin-right:auto;margin-left:auto;float:none;display:block" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/243/image_thumb_6_118BB41D.png" width="444" height="255" /&gt;&lt;/a&gt;  &lt;br /&gt;*Imagen que muestra afinidad de red vinculado 4 puertos a 4 nodos NUMA&lt;/p&gt;  &lt;p&gt;¿Por qué querríamos hacer esto?&lt;/p&gt;  &lt;p&gt;La idea que pretendemos llevar a cabo es favorecer estadísticamente que los datos utilizados por determinadas conexiones se encuentren siempre en el mismo NODO numa ( o al menos que estadísticamente sea mucho mas probable). &lt;/p&gt;  &lt;p&gt;Lo que se hace es vincular un determinado puerto (por ejemplo en la imagen el puerto 8000) a un determinado nodo NUMA (en dicho ejemplo al NODO 1). Luego, en las aplicaciones, redirigiremos la cadena de conexión para indicar que nos conectaremos a la instancia SQL Server mediante el puerto 8000, consiguiendo que dicha aplicacion siempre utilice de entrada el nodo NUMA 1 y por tanto, que los datos de páginas a acceder se encuentren mas probablemente en los bancos de memoria de dicho NODO.&lt;/p&gt;  &lt;p&gt;En entornos críticos, aplicando este tipo de configuraciones se puede llegar a obtener aumentos de rendimiento interesantes rondando el 20%.&lt;/p&gt;  &lt;p&gt;Para más información: &lt;a title="http://support.microsoft.com/kb/299641" href="http://support.microsoft.com/kb/299641"&gt;http://support.microsoft.com/kb/299641&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt; &lt;/h3&gt;  &lt;h3&gt; &lt;/h3&gt;  &lt;h3&gt;Degree of parallelism&lt;/h3&gt;  &lt;p&gt;El grado de paralelismo es posiblemente la configuración mas comunmente utilizada a la hora de afinar el grado de paralelismo de SQL Server. En este caso, estamos hablando del grado de paralelismo a nivel de instancia.&lt;/p&gt;  &lt;p&gt;Su configuración indica el máximo número de CPUs que un determinado worker puede utilizar, esto es, el nº de hilos que un determinado operador puede abrir como máximo en ejecución.&lt;/p&gt;  &lt;p&gt;No debe confundirse con la afinidad de CPU, ya que en este caso no estamos desactivando CPU, estamos limitando el nº de hilos disponibles para resolver una consulta. Además, su valor es determinado en tiempo de ejecución y no afecta para nada al plan cache.&lt;/p&gt;  &lt;p&gt;Su valor además puede ser especificado a nivel de workload group dentro de una configuración de Resource Governor. Haciendo esto, estaremos configurando la forma de proceder en términos de hilos por operador, para determinadas conexiones a SQL Server.&lt;/p&gt;  &lt;p&gt;Para más información: &lt;a title="http://msdn.microsoft.com/en-us/library/ms188611(v=sql.105).aspx" href="http://msdn.microsoft.com/en-us/library/ms188611(v=sql.105).aspx"&gt;http://msdn.microsoft.com/en-us/library/ms188611(v=sql.105).aspx&lt;/a&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h3&gt;Cost threshold for parallelism&lt;/h3&gt;  &lt;p&gt;Utilizado para modificar el nº de planes de ejecuciones paralelos generados en el sistema, es una de las configuraciones mas desaprovechadas por los DBA de SQL Server, quizás por su escasa divulgación y porque requiere un conocimiento del negocio en el que está corriendo SQL Server para poder explotarla con éxito.&lt;/p&gt;  &lt;p&gt;La idea es que un sistema OLTP puro no debería tener ejecuciones paralelas, ya que implica que SQL Server ha determinado un coste elevado para su resolución, pero a su vez, SQL Server finalmente tambien acaba resolviendo operaciones no OLTP ( las tan temidas consultas gigantescas a la BBDD para devolver informes :) ). La idea por tanto es jugar con este parámetro, para aumentar o disminuir el nº de operaciones paralelas que se ejecutan. Reconozco que es un parámetro un tanto “peligroso” en tanto en cuanto no se posee un control absoluto de lo que va a suceder en el sistema a ciencia cierta (cambias estadísticamente el nº de planes a generarse, pero no sabes cuales serán ya que no los puedes vincular a ellos, como con “degree of parallelism”). Es por ello que solo debes tocarlo si estas seguro de lo que deseas conseguir y siempre y cuando seas capaz de medir el impacto de su modifición para saber si vas en la dirección correcta.&lt;/p&gt;  &lt;p&gt;Su valor es utilizado por SQL Server cuando se está evaluando el plan de ejecución a utilizar, de forma que cambiar su valor influirá en cómo se ejecutará el plan de ejecución.&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/243/image_16_118BB41D.png"&gt;&lt;img title="image" style="border-width:0px;margin-right:auto;margin-left:auto;float:none;display:block" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/243/image_thumb_7_118BB41D.png" width="365" height="74" /&gt;&lt;/a&gt; *Pseudo código donde se utiliza “threshold for parallelism” para obtener plan de ejecución &lt;/p&gt;  &lt;p align="left"&gt;Para más información: &lt;a title="http://msdn.microsoft.com/en-us/library/ms188603(v=sql.105).aspx" href="http://msdn.microsoft.com/en-us/library/ms188603(v=sql.105).aspx"&gt;http://msdn.microsoft.com/en-us/library/ms188603(v=sql.105).aspx&lt;/a&gt;&lt;/p&gt;  &lt;p align="left"&gt; &lt;/p&gt;  &lt;h3&gt;Max worker threads&lt;/h3&gt;  &lt;p&gt;Este parámetro sirve para configurar el número de subprocesso de trabajo disponibles para los procesos de SQL Server. Modificar este parámetro puede optimizar el rendimiento cuando un gran número de conexiones se abren contra la instancia SQL Server ya que generalmente se crea un subproceso de sistema independiente para cada solicitud, pero gracias a esto se pueden agrupar varias solicitudes a determinados grupos de trabajo. &lt;/p&gt;  &lt;p&gt;Esta característica, al igual que la característica “threshold for parallelism” se considera avanzada y solo recomendable aplicarla si se poseen conocimientos profundos de SQL Server y de cómo se puede beneficiar el escenario concreto donde se aplicará. &lt;/p&gt;  &lt;p&gt;Para hacerse una idea, puedes ver la siguiente tabla donde se obtienen los valores de max worker threads que SQL Server configura dependiendo del entorno donde se está ejecutando y su versión de binarios&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/243/image_18_3F7906D5.png"&gt;&lt;img title="image" style="border-width:0px;margin-right:auto;margin-left:auto;float:none;display:block" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/243/image_thumb_8_3F7906D5.png" width="291" height="152" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Para más información: &lt;a title="http://msdn.microsoft.com/es-es/library/ms187024(v=sql.105).aspx" href="http://msdn.microsoft.com/es-es/library/ms187024(v=sql.105).aspx"&gt;http://msdn.microsoft.com/es-es/library/ms187024(v=sql.105).aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h2&gt;A nivel de conexión&lt;/h2&gt;  &lt;p&gt;A nivel de conexión SQL Server nos ofrece la posibilidad de configurar el grado de paralelismo mediante el uso de Resource Governor. De esta forma, podemos configurar SQL Server para que dependiendo de nuestra función de enrutado de resource governor, se comporte diferente en términos de paralelismo.&lt;/p&gt;  &lt;p&gt;¿Para qué querríamos hacer esto?&lt;/p&gt;  &lt;p&gt;Bueno, pues podríamos forzar a que todas las operaciones de reindexado de índices, backups, recálculo de estadísticas…por defecto funcionaran al máximo DOP posible con el fin de optimizar los recursos.&lt;/p&gt;  &lt;p&gt;Otra posibilidad tambien podría ser predefinir que todas las conexiones de una aplicación que utiliza SQL Server como OLTP puro, utilicen un DOP de 1. &lt;/p&gt;  &lt;p&gt;Como vemos, nos ofrece unas posibilidades bastante mas que interesantes a la hora de optimizar sistemas utilizados por aplicaciones heterogéneas.&lt;/p&gt;  &lt;p&gt;Para más información: &lt;a title="http://technet.microsoft.com/es-es/library/bb895232(v=sql.105).aspx" href="http://technet.microsoft.com/es-es/library/bb895232(v=sql.105).aspx"&gt;http://technet.microsoft.com/es-es/library/bb895232(v=sql.105).aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h2&gt;A nivel de sentencia T-SQL&lt;/h2&gt;  &lt;p&gt;A nivel de sentencia T-SQL tenemos la cláusula MAXDOP con la que podemos especificar el valor “degree of parallelism” que queremos que tenga la sentencia concreta a la que se lo apliquemos. Como hemos visto, el grado de paralelismo puede especificarse a nivel de instancia, de conexión (con resource governor) y ahora de sentencia; la precedencia siempre es la que posea el nivel de granuldaridad mas bajo. De esta forma, sea cual sea la configuracion DOP de instancia y Resource Governor, si una sentencia posee MAXDOP=8, dicha sentencia utilizará como mucho 8 hilos por operador, independientemente de los valores configurados a nivel de instancia y/o resource governor.&lt;/p&gt;  &lt;p&gt;¿Por qué querríamos configurar una consulta con un MAXDOP distinto?&lt;/p&gt;  &lt;p&gt;Imaginemos que a la instancia le hemos configurador DOP = 1, por lo que por defecto, todas las peticiones serán en serie, luego configuramos resource governor con un workload group para que tenga DOP = 4 una determinada aplicación,….¿qué pasa si queremos lanzar desde dicha aplicación cliente una agregación de datos masiva y nuestra máquina tiene 32 CPU? Esta la podríamos realizar con MAXDOP=0 y daría igual el resto de configuraciones, siempre sería capaz de crear si le hiciera falta hasta 32 hilos por operador. &lt;/p&gt;  &lt;p&gt;Para más información: &lt;a title="http://msdn.microsoft.com/en-us/library/ms181714.aspx" href="http://msdn.microsoft.com/en-us/library/ms181714.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms181714.aspx&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <shortDescription>&lt;div class="ExternalClass78C18E33FEEA4F65AD16ECA742698AD9"&gt;&lt;p&gt;En SQL Server podemos ajustar el paralelismo desde diversos puntos de vista, para conseguir diferentes resultados en función de nuestras necesidades. Una cosa que debemos recordar siempre es que aunque SQL Server posee reglas para auto-optimizarse en función del hardware detectado al iniciarse, es cierto tambien que debemos realizar ajustes al mismo en función de cómo estemos utilizando la instancia, esto es, qué tipo de peticiones le hacemos al motor relacional. &lt;/p&gt;  &lt;p&gt;Dicho esto, SQL Server nos ofrece...&lt;/p&gt;&lt;/div&gt;</shortDescription>
      <category name="SQL Server" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=SQL+Server" nameEnconded="SQL+Server" />
      <category name="Paralelismo" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Paralelismo" nameEnconded="Paralelismo" />
      <category name="Parallelism" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Parallelism" nameEnconded="Parallelism" />
      <dc:language name="http://blogs.solidq.com/Pages/Home.aspx?language=Spanish" nameEncoded="Spanish" xmlns:dc="http://purl.org/dc/elements/1.1/"></dc:language>
    </item>
    <item>
      <title>El Sign in as Different User en SharePoint 2013</title>
      <ItemID>239</ItemID>
      <link>http://blogs.solidq.com/sharepoint/Post.aspx?ID=239&amp;title=El+Sign+in+as+Different+User+en+SharePoint+2013</link>
      <pubDate>2013-03-25T12:29:00+01:00</pubDate>
      <author>Roberto Ramón Berna</author>
      <authorEncoded>Roberto+Ram%c3%b3n+Berna</authorEncoded>
      <authorID>68</authorID>
      <comments>None</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">None</wfw:commentRss>
      <description>&lt;div class="ExternalClass740B411654564754909E4C78B1B6926D"&gt;&lt;p&gt;Muy buenas a todos;&lt;/p&gt;
&lt;p&gt;recientemente, trasteando con SharePoint 2013, me ha surgido la necesidad de cambiar el usuario  con el que estoy logueado en mi aplicación, hasta ahí todo bien. Cuando voy a buscar la opción en la parte superior derecha donde se encuentra también el “Sign Out, descubro que la opción para cambiar de usuario no está. &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="/sharepoint/Lists/Posts/Attachments/239/SignOut_5D064E0B.png"&gt;&lt;img width="244" height="108" title="SignOut" alt="SignOut" src="/sharepoint/Lists/Posts/Attachments/239/SignOut_thumb_0AF3A0C4.png" border="0" style="background-image:none;border-right-width:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;A continuación vamos a ver&lt;strong&gt; tres formas&lt;/strong&gt; de como saltarnos esta limitación para llegar a poder loguearnos con otro usuario.&lt;/p&gt;
&lt;p&gt;1º Concatenando a nuestra url “&lt;strong&gt;/_layouts/closeConnection.aspx?loginasanotheruser=true&lt;/strong&gt;”&lt;/p&gt;
&lt;p&gt;Al igual que en SharePoint 2010, podemos forzar ese logueo con otro usuario mediante url,. Quizás lo más complicado de esta opción es tener siempre en mente dicha cadena.&lt;/p&gt;
&lt;p&gt;Ejemplo:                                                &lt;a href="http://summitsolidq2013/SitePages/Home.aspx"&gt;http://summitsolidq2013/&lt;strong&gt;SitePages/Home.aspx&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Log in con un usuario diferente : &lt;a href="http://summitsolidq2013/_layouts/closeConnection.aspx?loginasanotheruser=true"&gt;http://summitsolidq2013&lt;strong&gt;/_layouts/closeConnection.aspx?loginasanotheruser=true&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;2º Abriendo el explorador con un usuario diferente&lt;/p&gt;
&lt;p&gt;Botón derecho sobre  nuestro navegador Internet Explorer  “&lt;strong&gt;Run as different user&lt;/strong&gt;” y metemos los credenciales del usuario con el que queremos aparecer logueados en nuestra aplicación.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;3º Añadir el código necesario para que aparezca siempre.&lt;/p&gt;
&lt;p&gt;Abrimos el archivo “&lt;strong&gt;Welcome.ascx&lt;/strong&gt;” que se encuentra en la siguiente ruta  “&lt;strong&gt;\15\TEMPLATE\CONTROLTEMPLATES\Welcome.ascx&lt;/strong&gt; ”.&lt;/p&gt;
&lt;p&gt;Le agregamos el siguiente código, que básicamente lo que hace es añadir un elemento más al menú.&lt;/p&gt;
&lt;pre class="brush: xml; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"&gt;&amp;lt;SharePoint:MenuItemTemplate runat=&amp;quot;server&amp;quot; ID=&amp;quot;ID_LoginAsDifferentUser&amp;quot; Text=&amp;quot;&amp;lt;%$Resources:wss,personalactions_loginasdifferentuser%&amp;gt;&amp;quot; Description=&amp;quot;&amp;lt;%$Resources:wss,personalactions_loginasdifferentuserdescription%&amp;gt;&amp;quot; MenuGroupId=&amp;quot;100&amp;quot; Sequence=&amp;quot;100&amp;quot; UseShortId=&amp;quot;true&amp;quot; /&amp;gt;&lt;/pre&gt;
&lt;p&gt;Como podemos ver en la siguiente imagen, ya tendremos el “&lt;strong&gt;Sign in as Different User&lt;/strong&gt;” agregado en nuestro menú. &lt;/p&gt;
&lt;p&gt;&lt;a href="/sharepoint/Lists/Posts/Attachments/239/SignInAsDifferentUser_0AF3A0C4.png"&gt;&lt;img width="244" height="134" title="SignInAsDifferentUser" alt="SignInAsDifferentUser" src="/sharepoint/Lists/Posts/Attachments/239/SignInAsDifferentUser_thumb_0AF3A0C4.png" border="0" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Por último cabe mencionar que el paso 3, aconsejaría realizarlo solo en &lt;strong&gt;entornos de prueba y desarrollo&lt;/strong&gt;. Si no está la opción en el menú, no es porque se hayan olvidado de ella, será por algún motivo en especial.  En este post de &lt;a href="http://blogs.technet.com/b/stefan_gossner/archive/2012/01/19/be-careful-when-using-the-quot-sign-in-as-different-user-quot-feature-in-sharepoint.aspx" target="_blank"&gt;Stefan Gossner&lt;/a&gt; , citan algunas de las posibles razones que pueden haber llevado al equipo de producto a quitar dicho elemento del menú.&lt;/p&gt;
&lt;p&gt;Un saludo y espero que haya sido de utilidad &lt;img class="wlEmoticon wlEmoticon-smile" alt="Sonrisa" src="/sharepoint/Lists/Posts/Attachments/239/wlEmoticon-smile_2_0AF3A0C4.png" style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none" /&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <shortDescription>&lt;div class="ExternalClass740B411654564754909E4C78B1B6926D"&gt;&lt;p&gt;Muy buenas a todos;&lt;/p&gt;
&lt;p&gt;recientemente, trasteando con SharePoint 2013, me ha surgido la necesidad de cambiar el usuario  con el que estoy logueado en mi aplicación, hasta ahí todo bien. Cuando voy a buscar la opción en la parte superior derecha donde se encuentra también el “Sign Out, descubro que la opción para cambiar de usuario no está. &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="/sharepoint/Lists/Posts/Attachments/239/SignOut_5D064E0B.png"&gt;&lt;img width="244" height="108" title="SignOut" alt="SignOut" src="/sharepoint/Lists/Posts/Attachments/239/SignOut_thumb_0AF3A0C4.png" border="0" style="background-image:none;border-right-width:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;A continuación vamos a ver&lt;strong&gt; tres formas&lt;/strong&gt; de como saltarnos esta limitación para llegar a poder loguearnos con otro usuario.&lt;/p&gt;
&lt;p&gt;1º Concatenando...&lt;/p&gt;&lt;/div&gt;</shortDescription>
      <category name="SharePoint 2013" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=SharePoint+2013" nameEnconded="SharePoint+2013" />
      <category name="SharePoint Designer" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=SharePoint+Designer" nameEnconded="SharePoint+Designer" />
      <category name="XML" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=XML" nameEnconded="XML" />
      <dc:language name="http://blogs.solidq.com/Pages/Home.aspx?language=Spanish" nameEncoded="Spanish" xmlns:dc="http://purl.org/dc/elements/1.1/"></dc:language>
    </item>
    <item>
      <title>Data Explorer: llega el self-service ETL</title>
      <ItemID>172</ItemID>
      <link>http://blogs.solidq.com/BICorner/Post.aspx?ID=172&amp;title=Data+Explorer%3a+llega+el+self-service+ETL</link>
      <pubDate>2013-03-21T20:51:00+01:00</pubDate>
      <author>Pau Sempere Sanchez</author>
      <authorEncoded>Pau+Sempere+Sanchez</authorEncoded>
      <authorID>94</authorID>
      <comments>None</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">None</wfw:commentRss>
      <description>&lt;div class="ExternalClass1C0127FC03CC4486B78D373CD671B03C"&gt;&lt;p&gt;Recientemente se publicó la versión preview de &lt;strong&gt;Data Explorer&lt;/strong&gt; para &lt;strong&gt;Excel (&lt;/strong&gt;La podéis descargar de &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=36803" target="_blank"&gt;aquí&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;El producto llega a su versión previa al lanzamiento después de haber tenido dos versiones, el cliente de escritorio y el servicio en la nube, publicadas hace algo más de un año, y que ofrecían un servicio muy similar aunque con ligeras diferencias respecto a la conectividad y posibilidad de publicación de resultados. &lt;/p&gt;
&lt;p&gt;Ahora, el producto ha evolucionado y mejorado, y se integra con &lt;strong&gt;Excel&lt;/strong&gt; (tanto 2010 como 2013). Viene a llenar el hueco que quedaba entre los orígenes de datos y el modelo de datos en el paradigma de self-service &lt;strong&gt;BI&lt;/strong&gt; que &lt;strong&gt;Microsoft&lt;/strong&gt; propuso con la aparición de &lt;strong&gt;SQL Server 2012&lt;/strong&gt;, con BISM y la posibilidad de escalar desde el análisis sobre el modelo de datos personal hasta un BI empresarial en un servidor de&lt;strong&gt; Analysis Services&lt;/strong&gt;. Data Explorer viene a cubrir la funcionalidad de integración de datos en el sistema de self-service BI como PowerPivot cubre la funcionalidad de análisis. &lt;/p&gt;
&lt;p&gt;El hecho de que se enmarque dentro de Excel es uno de los hechos más relevantes de esta preview, dando más importancia si cabe a &lt;strong&gt;Excel&lt;/strong&gt; dentro del ecosistema de &lt;strong&gt;BI&lt;/strong&gt; de &lt;strong&gt;Microsoft&lt;/strong&gt;. En ella los analistas de negocio se sienten cómodos, tienen pericia y son capaces de desenvolverse con naturalidad, lo que reduce mucho la curva de aprendizaje de nuevas herramientas que estén enmarcadas en él. Además, nos permite combinar rápidamente los datos que descubramos e importemos con el resto de funcionalidades integradas en &lt;strong&gt;Excel&lt;/strong&gt; para realizar análisis cómodos y rápidos sin tener que esperar a grandes desarrollos &lt;strong&gt;ETL&lt;/strong&gt; y de sistemas analíticos, pero teniendo la posibilidad de que a partir de estos análisis iniciales surja todo un modelo de análisis empresarial. ¡Incluso podemos añadir directamente la información obtenida con &lt;strong&gt;Data&lt;/strong&gt; &lt;strong&gt;Explorer&lt;/strong&gt; a un modelo de datos en &lt;strong&gt;PowerPivot&lt;/strong&gt;! &lt;/p&gt;
&lt;p&gt;En este post vamos a ilustrar como combinar fuentes de información “no estándar” obtenidas con &lt;strong&gt;Data Explorer&lt;/strong&gt; con &lt;strong&gt;Power&lt;/strong&gt; &lt;strong&gt;View&lt;/strong&gt; incluido en Excel 2013 para realizar un análisis rápido y vistoso en cuestión de minutos. &lt;/p&gt;
&lt;p&gt;Supongamos que somos el responsable de marketing de una empresa y queremos saber qué se ha dicho recientemente en &lt;strong&gt;Twitter&lt;/strong&gt; acerca de nuestra organización. Obviamente nos interesa qué se ha dicho, pero también es importante saber quién lo ha dicho y, entre otras cosas, desde dónde se ha dicho (o en su defecto, dónde ubica &lt;strong&gt;Twitter&lt;/strong&gt; a los usuarios que lo han dicho). La &lt;strong&gt;geolocalización&lt;/strong&gt; de la información es un activo cada vez más importante en la inteligencia de negocio, especialmente con la facilidad con la que podemos integrarla con &lt;strong&gt;Power View&lt;/strong&gt;. &lt;/p&gt;
&lt;p&gt;Para ello, habiendo descargado e instalado&lt;strong&gt; Data Explorer&lt;/strong&gt; para &lt;strong&gt;Excel 2013&lt;/strong&gt;, abrimos un libro de &lt;strong&gt;Excel&lt;/strong&gt; en blanco, y hacemos clic en la nueva pestaña “DATA EXPLORER”. Una vez nos aparezca la cinta de opciones, donde podemos elegir todas las fuentes de datos disponibles, seleccionaremos “From Web”. Como vamos a leer datos desde &lt;strong&gt;Twitter&lt;/strong&gt;, debemos saber el formato en el que debemos preguntar a &lt;strong&gt;Twitter&lt;/strong&gt;. En nuestro caso realizaremos la consulta para obtener tweets sobre &lt;strong&gt;SolidQ&lt;/strong&gt;. La URL desde la que obtener la información quedaría parecida a ésta: &lt;span style="font-family:&amp;quot;calibri&amp;quot;, &amp;quot;sans-serif&amp;quot;;color:#1f497d;font-size:11pt"&gt;&lt;a title="https://search.twitter.com/search.json?q=solidq&amp;amp;rpp=50" href="https://search.twitter.com/search.json?q=SolidQ&amp;amp;rpp=50"&gt;&lt;span style="color:#1f497d;text-decoration:none;text-underline:none"&gt;https://search.twitter.com/search.json?q=SolidQ&amp;amp;rpp=50&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;. Podéis encontrar información sobre los parámetros de búsqueda del API de &lt;strong&gt;Twitter&lt;/strong&gt; &lt;a href="https://dev.twitter.com/docs/api/1/get/search" target="_blank"&gt;aquí&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;&lt;a href="/bicorner/Lists/Posts/Attachments/172/image_2_29F77683.png" target="_blank"&gt;&lt;img width="518" height="198" title="DataExplorerWebContent" alt="DataExplorerWebContent" src="/bicorner/Lists/Posts/Attachments/172/image_thumb_29F77683.png" border="0" style="background-image:none;border-right-width:0px;margin:5px 15px 0px 0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Twitter nos devuelve un bloque de datos en formato JSON, pero Data Explorer está esperando un documento HTML. Por tanto, cuando intentemos importar la información, nos dará el siguiente error: &lt;/p&gt;
&lt;p&gt;&lt;a href="/bicorner/Lists/Posts/Attachments/172/image_4_29F77683.png" target="_blank"&gt;&lt;img width="511" height="216" title="QueryingJSONFromDataExplorer" alt="QueryingJSONFromDataExplorer" src="/bicorner/Lists/Posts/Attachments/172/image_thumb_1_29F77683.png" border="0" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Lo que vemos es que DataExplorer nos está dando una tabla y un documento en HTML con un error (espera HTML y recibe JSON). Un pequeño truco para saltarnos esta situación es usar el lenguaje de fórmulas de &lt;strong&gt;Data Explorer&lt;/strong&gt;, que tiene soporte para interpretar datos estructurados (tanto en &lt;strong&gt;JSON&lt;/strong&gt; como en &lt;strong&gt;XML&lt;/strong&gt;). Si modificamos la fórmula por ésta, añadiendo&lt;strong&gt; Json.Document&lt;/strong&gt; en vez de &lt;strong&gt;Web.Page&lt;/strong&gt; para especificarle que lo que va a recibir son datos en &lt;strong&gt;JSON&lt;/strong&gt;: &lt;/p&gt;
&lt;p&gt;&lt;a href="/bicorner/Lists/Posts/Attachments/172/image_6_29F77683.png" target="_blank"&gt;&lt;img width="602" height="289" title="ParsingJSONFromDataExplorer" alt="ParsingJSONFromDataExplorer" src="/bicorner/Lists/Posts/Attachments/172/image_thumb_2_29F77683.png" border="0" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Tenemos información estructurada sobre la respuesta de &lt;strong&gt;Twitter&lt;/strong&gt; a nuestra consulta. Los tweets que nos interesan se encuentran en la lista de elementos contenida &lt;/p&gt;
&lt;p&gt;dentro del campo “results”. Clicamos en el enlace (en verde claro en la captura) para realizar automáticamente un drill down y veremos el detalle de la lista. &lt;/p&gt;
&lt;p&gt;Ahora queremos convertir estos resultados de información estructurada en una tabla, que es con lo que trabajaremos en &lt;strong&gt;Excel&lt;/strong&gt;. &lt;/p&gt;
&lt;p&gt;Si hacemos botón derecho sobre la cabecera de la columna y seleccionamos To Table:&lt;/p&gt;
&lt;p&gt;&lt;a href="/bicorner/Lists/Posts/Attachments/172/image_8_29F77683.png" target="_blank"&gt;&lt;img width="425" height="260" title="ListToTableDataExplorer" alt="ListToTableDataExplorer" src="/bicorner/Lists/Posts/Attachments/172/image_thumb_3_29F77683.png" border="0" style="background-image:none;border-right-width:0px;margin:0px 10px 0px 0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Una vez lo hemos convertido a tabla, seleccionaremos un delimitador (si lo hubiese, en este caso son datos ya estructurados y no será necesario) &lt;/p&gt;
&lt;p&gt;y podremos elegir qué columnas queremos expandir haciendo clic sobre el icono en la esquina superior derecha. &lt;/p&gt;
&lt;p&gt;Nosotros vamos a escoger los siguientes &lt;/p&gt;
&lt;p&gt;- &lt;strong&gt;from_user&lt;/strong&gt;: El nombre del usuario en Twitter&lt;/p&gt;
&lt;p&gt;- &lt;strong&gt;from_user_id_str&lt;/strong&gt;: Su identificador interno en Twitter en formato de cadena de caracteres&lt;/p&gt;
&lt;p&gt;- &lt;strong&gt;profile_image_url_https&lt;/strong&gt;: Las fotos siempre quedan bonitas &lt;img class="wlEmoticon wlEmoticon-smile" alt="Sonrisa" src="/bicorner/Lists/Posts/Attachments/172/wlEmoticon-smile_2_29F77683.png" style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none" /&gt;. Obteniendo la URL donde localizamos la foto del usuario podremos ver la imagen en Excel gracias a su interacción con Bing&lt;/p&gt;
&lt;p&gt;- &lt;strong&gt;text&lt;/strong&gt;: El tweet en sí&lt;/p&gt;
&lt;p&gt;&lt;a href="/bicorner/Lists/Posts/Attachments/172/image_30_29F77683.png" target="_blank"&gt;&lt;img width="432" height="302" title="ColumnsDataExplorer" alt="ColumnsDataExplorer" src="/bicorner/Lists/Posts/Attachments/172/image_thumb_14_29F77683.png" border="0" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ahora renombramos las columnas solo para tener más claro que significa cada una (y poder identificarlas fácilmente en el análisis posterior). Sólo con cambiar el nombre de la columna, como si fuese una columna más de &lt;strong&gt;Excel&lt;/strong&gt;, &lt;strong&gt;Data Explorer&lt;/strong&gt; aplicará la operación correspondiente en su lenguaje de fórmulas. Si nos fijamos en la parte derecha de la pantalla, en la sección Steps, vamos a poder ir viendo cada uno de los pasos que hemos realizado para llegar hasta el punto actual, y lo que es mejor, al cambiar o actualizar la información en un paso intermedio (cambiar el parámetro de consulta a &lt;strong&gt;Twitter&lt;/strong&gt;, por ejemplo), ¡la información se actualiza en cascada en todos los pasos posteriores de manera automática!&lt;/p&gt;
&lt;p&gt;&lt;a href="/bicorner/Lists/Posts/Attachments/172/image_14_29F77683.png" target="_blank"&gt;&lt;img width="644" height="198" title="RenameFormulaDataExplorer" align="left" alt="RenameFormulaDataExplorer" src="/bicorner/Lists/Posts/Attachments/172/image_thumb_6_29F77683.png" border="0" style="background-image:none;border-right-width:0px;margin:0px 20px 0px 0px;padding-left:0px;padding-right:0px;display:inline;float:left;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/bicorner/Lists/Posts/Attachments/172/image_16_29F77683.png" target="_blank"&gt;&lt;img width="198" height="197" title="StepsListDataExplorer" alt="StepsListDataExplorer" src="/bicorner/Lists/Posts/Attachments/172/image_thumb_7_29F77683.png" border="0" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Twitter ofrece funcionalidad para localizar desde donde se está twitteando. Tiene sentido sobre todo al usar los servicios &lt;strong&gt;GPS&lt;/strong&gt; de los dispositivos móviles, y más aún si la localización tiene relación con lo que se está publicando. Pero no todo el mundo usa esta opción, y por ello vamos a usar de nuevo el &lt;strong&gt;API&lt;/strong&gt; de &lt;strong&gt;Twitter&lt;/strong&gt; para obtener la localización que los usuarios definen cuando registran su cuenta a través del ID de usuario (campo UserID) que previamente habíamos obtenido. En este caso la fórmula que usaremos será muy parecida a la anterior, pero concatenando el valor del campo UserID para construir la consulta, y conseguiremos llegar a la localización añadiendo una columna personalizada y seleccionando el campo de los datos estructurados en &lt;strong&gt;JSON&lt;/strong&gt; directamente.&lt;/p&gt;
&lt;p&gt;Primero tendremos que transformar la columna UserID en una de datos tipo texto, ya que es de tipo de datos numérico y no nos dejará usarla para ser concatenada a la fórmula. &lt;/p&gt;
&lt;p&gt;Pulsando con el botón derecho sobre la última columna, seleccionamos Insert Column – Custom: &lt;/p&gt;
&lt;p&gt;&lt;a href="/bicorner/Lists/Posts/Attachments/172/image_18_29F77683.png" target="_blank"&gt;&lt;img width="385" height="315" title="InsertCustomColumnDataExplorer" alt="InsertCustomColumnDataExplorer" src="/bicorner/Lists/Posts/Attachments/172/image_thumb_8_1505F410.png" border="0" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Lo cual nos permitirá añadir la expresión en lenguaje de fórmulas de&lt;strong&gt; Data Explorer&lt;/strong&gt; de una manera muy parecida a la que usamos para conseguir los tweets: &lt;/p&gt;
&lt;p&gt;&lt;a href="/bicorner/Lists/Posts/Attachments/172/image_28_1505F410.png"&gt;&lt;img width="644" height="316" title="TwitterFromDataExplorer" alt="TwitterFromDataExplorer" src="/bicorner/Lists/Posts/Attachments/172/image_thumb_13_1505F410.png" border="0" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Conseguiremos acceder directamente a la localización del usuario con la selección del campo “[location]”. Si obtuviésemos una lista de resultados y tuviesemos que elegir un elemento antes de seleccionar el campo que queremos obtener, tendríamos que usar los operadores {}. Por tanto, quedaría tal que Funcion(…){N elemento}[campo]. &lt;/p&gt;
&lt;p&gt;Puede que veamos un error de este tipo al intentar conseguir datos externos:&lt;/p&gt;
&lt;p&gt;&lt;a href="/bicorner/Lists/Posts/Attachments/172/image_22_1505F410.png" target="_blank"&gt;&lt;img width="644" height="57" title="DataExplorerError" alt="DataExplorerError" src="/bicorner/Lists/Posts/Attachments/172/image_thumb_10_1505F410.png" border="0" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Para evitarlo, activamos la opción “&lt;strong&gt;Fast Combine&lt;/strong&gt;” de&lt;strong&gt; Data Explorer&lt;/strong&gt; para poder usar datos de otras fuentes de datos sin recibir este error que nos avisa de que no podemos usar fuentes de datos de diferentes orígenes, en lo que parece una restricción interna de &lt;strong&gt;Data Explorer&lt;/strong&gt; para evitar incongruencias al mezclar datos desde fuentes externas diversas.&lt;/p&gt;
&lt;p&gt;&lt;a href="/bicorner/Lists/Posts/Attachments/172/image_24_1505F410.png" target="_blank"&gt;&lt;img width="352" height="244" title="FastCombineDataExplorer" alt="FastCombineDataExplorer" src="/bicorner/Lists/Posts/Attachments/172/image_thumb_11_1505F410.png" border="0" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ya tenemos añadida la localización de cada uno de los usuarios que han publicado tweets sobre SolidQ. La mayoría serán localizaciones válidas, pero otras no lo serán. Aquí entraría en juego la combinación de &lt;strong&gt;Data Explorer&lt;/strong&gt; o incluso &lt;strong&gt;Excel&lt;/strong&gt; con servicios externos de validación y calidad de datos, pero es un tema que requeriría un post adicional, o incluso varios &lt;img class="wlEmoticon wlEmoticon-smile" alt="Sonrisa" src="/bicorner/Lists/Posts/Attachments/172/wlEmoticon-smile_2_29F77683.png" style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none" /&gt;&lt;/p&gt;
&lt;p&gt;Renombramos la columna que hemos obtenido como Location y clicamos en Done para volver a nuestra hoja de Excel.&lt;/p&gt;
&lt;p&gt;Ahora que ya tenemos los datos con su localización y las fotos de los usuarios de Twitter podemos hacer rápidamente un informe con &lt;strong&gt;Power View&lt;/strong&gt; que nos muestre dónde han sucedido estos tweets (o por lo menos donde se localiza al usuario que los publicó). &lt;/p&gt;
&lt;p&gt;En un par de clics podríamos tener algo así: &lt;/p&gt;
&lt;p&gt;&lt;a href="/bicorner/Lists/Posts/Attachments/172/image_32_3A8F7171.png" target="_blank"&gt;&lt;img width="804" height="504" title="PowerViewFromTwitter" alt="PowerViewFromTwitter" src="/bicorner/Lists/Posts/Attachments/172/image_thumb_15_3A8F7171.png" border="0" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;O aprovecharnos de la funcionalidad de &lt;strong&gt;PowerPivot&lt;/strong&gt; para mostrar imágenes en los informes de &lt;strong&gt;Power View&lt;/strong&gt;, marcar el campo PictureURL como de tipo “&lt;strong&gt;imageURL&lt;/strong&gt;” en las opciones avanzadas de &lt;strong&gt;PowerPivot&lt;/strong&gt; y poder ver el avatar de quién escribió qué y desde dónde: &lt;/p&gt;
&lt;p&gt;&lt;a href="/bicorner/Lists/Posts/Attachments/172/image_34_3A8F7171.png" target="_blank"&gt;&lt;img width="804" height="504" title="PowerViewFromTwitterPictures" alt="PowerViewFromTwitterPictures" src="/bicorner/Lists/Posts/Attachments/172/image_thumb_16_3A8F7171.png" border="0" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Habrá que esperar a la versión final de &lt;strong&gt;Data Explorer&lt;/strong&gt; para poder medir todo su potencia y facilidad de uso pero hemos visto que ya en la preview podemos obtener datos desde fuentes externas (el API de Twitter, en este caso) de manera relativamente sencilla y toda la potencia de análisis que nos brinda el hecho de que esté integrado dentro de &lt;strong&gt;Excel&lt;/strong&gt;. &lt;/p&gt;
&lt;p&gt;Os animo desde aquí a que descarguéis Data Explorer para empezar a investigar cómo importar datos y cómo combinarlos.&lt;/p&gt;
&lt;p&gt;Espero que os haya gustado, en próximos posts y artículos seguiremos hablando de Data Explorer y las funcionalidades que ofrece para integración y modelado de datos. Feliz análisis &lt;img class="wlEmoticon wlEmoticon-smile" alt="Sonrisa" src="/bicorner/Lists/Posts/Attachments/172/wlEmoticon-smile_2_29F77683.png" style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none" /&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <shortDescription>&lt;div class="ExternalClass1C0127FC03CC4486B78D373CD671B03C"&gt;&lt;p&gt;Recientemente se publicó la versión preview de &lt;strong&gt;Data Explorer&lt;/strong&gt; para &lt;strong&gt;Excel (&lt;/strong&gt;La podéis descargar de &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=36803" target="_blank"&gt;aquí&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;El producto llega a su versión previa al lanzamiento después de haber tenido dos versiones, el cliente de escritorio y el servicio en la nube, publicadas hace algo más de un año, y que ofrecían un servicio muy similar aunque con ligeras diferencias respecto a la conectividad y posibilidad de publicación de resultados. &lt;/p&gt;
&lt;p&gt;Ahora, el producto ha evolucionado y mejorado, y se integra con &lt;strong&gt;Excel&lt;/strong&gt; (tanto 2010...&lt;/p&gt;&lt;/div&gt;</shortDescription>
      <category name="powerpivot" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=powerpivot" nameEnconded="powerpivot" />
      <category name="ETL" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=ETL" nameEnconded="ETL" />
      <category name="Data Explorer" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Data+Explorer" nameEnconded="Data+Explorer" />
      <category name="Power View" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Power+View" nameEnconded="Power+View" />
      <category name="Excel 2013" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Excel+2013" nameEnconded="Excel+2013" />
      <dc:language name="http://blogs.solidq.com/Pages/Home.aspx?language=Spanish" nameEncoded="Spanish" xmlns:dc="http://purl.org/dc/elements/1.1/"></dc:language>
    </item>
    <item>
      <title>Como recrear un linked server sin conocer el password</title>
      <ItemID>241</ItemID>
      <link>http://blogs.solidq.com/ElRinconDelDBA/Post.aspx?ID=241&amp;title=Como+recrear+un+linked+server+sin+conocer+el+password</link>
      <pubDate>2013-03-07T19:51:36+01:00</pubDate>
      <author>Rubén Garrigós</author>
      <authorEncoded>Rub%c3%a9n+Garrig%c3%b3s</authorEncoded>
      <authorID>40</authorID>
      <comments>None</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">None</wfw:commentRss>
      <description>&lt;div class="ExternalClassB0AB5BF1EB524CF3B975AB6DA4C94447"&gt;&lt;p&gt;&lt;font size="2"&gt;En ocasiones nos encontramos con la necesidad de recrear ciertos objetos sin conocer todos los datos necesarios. Un caso típico (desgraciadamente) es la migración de un login de SQL Server del que se desconoce su password. Esto ocurre habitualmente en aplicaciones cerradas donde el fabricante ha codificado internamente “a fuego” el password. En estos escenarios es posible recrear el objeto sin conocer el password de forma sencilla utilizando la cláusula HASHED en el comando CREATE LOGIN.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Sin embargo, en otros casos, como los logins y password asociados a un linked server, la solución no es tan sencilla. Para comprender mejor dónde y cómo se almacenan dichos password analizaremos primero el procedimiento sp_addlinkedsrvlogin que es el responsable de esta función. En su código podemos ver lo siguiente:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;-- ADD THE SPECIFIED MAPPING --&lt;/p&gt;  &lt;p&gt;SELECT @pwd = convert(varbinary(256), @rmtpassword)&lt;/p&gt;  &lt;p&gt;EXEC %%&lt;font style="background-color:rgb(255, 255, 0)"&gt;LinkedServer&lt;/font&gt;(Name=@rmtsrvname).&lt;font style="background-color:rgb(255, 255, 0)"&gt;NewLinkedLogin&lt;/font&gt;(&lt;/p&gt;  &lt;p&gt;LocalID=@localid, UseSelf=@useselfbit, RemoteName=@rmtuser, &lt;a href="mailto:Password=@pwd"&gt;Password=@pwd&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Como vemos la introducción del password se realiza mediante una llamada interna al método NewLinkedLogin del LinkedServer. Por otro lado, tenemos la vista de sistema sys.linked_logins cuya definición es la siguiente:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;CREATE VIEW sys.linked_logins AS  &lt;br /&gt;  SELECT srvid AS server_id,  &lt;br /&gt;  lgnid AS local_principal_id,  &lt;br /&gt;  sysconv(bit, status &amp;amp; 1) AS uses_self_credential, -- LGN_LINKED_USESELF  &lt;br /&gt;  name AS remote_name,  &lt;br /&gt;  modate AS modify_date  &lt;br /&gt;  FROM &lt;font style="background-color:rgb(255, 255, 0)"&gt;master.sys.syslnklgns  &lt;/font&gt;    &lt;br /&gt;  WHERE lgnid = suser_id() OR has_access('SR', 0) = 1  &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Vemos que sys.linked_logins es una vista sobre sys.syslnklgns. Probablemente en la tabla base de dicha vista dispongamos de información adicional. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Para poder acceder a dicha tabla de sistema tenemos que conectar a la instancia mediante la conexión administrativa DAC. Podemos o bien utilizar sqlcmd con el parámetro –A o desde Management Studio podemos crear una nueva consulta y conectar a la base de datos anteponiendo el prefijo “admin:” al nombre del servidor. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Recordemos que únicamente los administradores (y solo uno de ellos concurrentemente) puede utilizar esta conexión:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/241/image_2_4EADD87C.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/241/image_thumb_4EADD87C.png" width="403" height="303" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Una vez conectados a través de la conexión administrativa podemos ver el contenido de dicha tabla de sistema:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/241/image_4_4EADD87C.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/241/image_thumb_1_4EADD87C.png" width="655" height="178" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;La columna pwdhash almacena el hashing del password que originalmente se proporcionó al crear el linked server. Vamos a conectarnos ahora a la instancia donde queremos recrear el linked server del que no disponemos de su password y recrearemos el linked server pero con un password cualquiera:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/241/image_6_4EADD87C.png"&gt;&lt;font size="2"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/241/image_thumb_2_4EADD87C.png" width="640" height="134" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Una vez recreado, conectaremos con la DAC a la nueva instancia y consultaremos la tabla syslnklgns:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/241/image_8_4EADD87C.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/241/image_thumb_3_4EADD87C.png" width="622" height="148" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Si intentamos validar la conectividad del linked server obtendremos, obviamente, un error de login:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/241/image_10_4EADD87C.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/241/image_thumb_4_4EADD87C.png" width="357" height="157" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Si intentamos lanzar un update sobre la tabla en cuestión obtenemos un error indicando que los cambios en el catálogo de sistema no están permitidos:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/241/image_12_39BC5609.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/241/image_thumb_5_39BC5609.png" width="517" height="139" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Para saltarnos esta protección necesitamos, por un lado arrancar la instancia en modo single-user (parámetro de arranque –m):&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/241/image_18_39BC5609.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/241/image_thumb_8_39BC5609.png" width="401" height="279" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Por otro lado, necesitamos reconfigurar la instancia para que permita actualizaciones al catálogo de sistema con el siguiente comando:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/241/image_16_39BC5609.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/241/image_thumb_7_39BC5609.png" width="340" height="67" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Una vez configurada la instancia, lanzaremos el update el cual ejecutará sin problemas:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/241/image_20_39BC5609.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/241/image_thumb_9_39BC5609.png" width="758" height="161" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Una vez modificado, reiniciaremos la instancia. Tras el reinicio si intentamos validar el linked server obtendremos el siguiente error:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/241/image_22_39BC5609.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/241/image_thumb_10_39BC5609.png" width="464" height="115" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;SQL Server está detectando que la clave encriptada que hemos introducido no corresponde a la actual instancia. La encriptación del password se realiza mediante la SMK (Service Master Key). Para conseguir que funcione el desencriptado deberemos primero exportar la SMK del servidor original donde se encriptó:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/241/image_26_39BC5609.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/241/image_thumb_12_39BC5609.png" width="423" height="105" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Una vez exportada, la importaremos en el servidor destino. Al tratarse de un backup de una SMK distinta a la que dispone la instancia será necesario forzar la operación (cláusula FORCE)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;ATENCIÓN: Debemos tener en cuenta que al realizar esta operación perderemos el acceso a información que previamente hubiésemos encriptado utilizando esta SMK en esta instancia (por ejemplo, otros linked server creados previamente  en este servidor).&lt;/font&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/241/image_24_39BC5609.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/241/image_thumb_11_39BC5609.png" width="738" height="221" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Una vez hemos restaurado la service key, comprobaremos que ya podemos acceder al linked server sin problemas:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/241/image_28_39BC5609.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/241/image_thumb_13_39BC5609.png" width="698" height="203" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;La conclusión de este post es que es posible recrear, en caso de emergencia, un linked server del que desconocemos su password. Para conseguir esto necesitaremos utilizar la conexión administrativa para copiar el hash del password así como restaurar la Service Master Key del servidor origen. Este mecanismo deberá evitarse dentro de lo posible ya que implica modificaciones en las tablas de sistema.&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <shortDescription>&lt;div class="ExternalClassB0AB5BF1EB524CF3B975AB6DA4C94447"&gt;&lt;p&gt;&lt;font size="2"&gt;En ocasiones nos encontramos con la necesidad de recrear ciertos objetos sin conocer todos los datos necesarios. Un caso típico (desgraciadamente) es la migración de un login de SQL Server del que se desconoce su password. Esto ocurre habitualmente en aplicaciones cerradas donde el fabricante ha codificado internamente “a fuego” el password. En estos escenarios es posible recrear el objeto sin conocer el password de forma sencilla utilizando la cláusula HASHED en el comando CREATE LOGIN.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Sin embargo,...&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;</shortDescription>
      <category name="None" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=None" nameEnconded="None" />
      <dc:language name="http://blogs.solidq.com/Pages/Home.aspx?language=Spanish" nameEncoded="Spanish" xmlns:dc="http://purl.org/dc/elements/1.1/"></dc:language>
    </item>
    <item>
      <title>SharePoint 2013: Parámetros de configuración de Elementos de Aplicacion (App Parts)</title>
      <ItemID>238</ItemID>
      <link>http://blogs.solidq.com/sharepoint/Post.aspx?ID=238&amp;title=SharePoint+2013%3a+Par%c3%a1metros+de+configuraci%c3%b3n+de+Elementos+de+Aplicacion+(App+Parts)</link>
      <pubDate>2013-03-07T16:48:00+01:00</pubDate>
      <author>Cristian M. Zaragoza Gómez</author>
      <authorEncoded>Cristian+M.+Zaragoza+G%c3%b3mez</authorEncoded>
      <authorID>29</authorID>
      <comments>None</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">None</wfw:commentRss>
      <description>&lt;div class="ExternalClass7E9B1E68E4A4475E9F85B694191BA80A"&gt;&lt;p align="justify"&gt;En SharePoint 2013, dentro del nuevo modelo de desarrollo que suponen las Apps, tenemos los Elementos de Aplicación, más conocidos como &lt;em&gt;App Parts&lt;/em&gt; o &lt;em&gt;Client Web Part&lt;/em&gt;. Los Elementos de Aplicación, podrían definirse como una App que imita la experiencia de usuario de un Elemento Web (&lt;em&gt;Web Part&lt;/em&gt;). Son Apps que insertamos en la página, del mismo modo que insertaríamos un Elemento Web. Entrando en detalle, lo que realmente hacemos cuando insertamos un Elemento de Aplicación, es insertar un &lt;em&gt;iFrame&lt;/em&gt; en la página, el cuál muestra el contenido de la App, que se encuentra en otra página.&lt;/p&gt;  &lt;p align="justify"&gt; &lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="/sharepoint/Lists/Posts/Attachments/238/image_2_4411068A.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/sharepoint/Lists/Posts/Attachments/238/image_thumb_4411068A.png" width="561" height="151" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Ahora bien, si en los Elementos Web tenemos los Paneles de Herramientas (&lt;em&gt;Tool Part&lt;/em&gt;), para editar y configurar el comportamiento de un Elemento Web, ¿cómo hacemos lo mismo en un Elemento de Aplicación? En los Elementos de Aplicación seguimos teniendo el Panel de Herramientas, sólo que de una forma un tanto especial. La diferencia principal es que los campos que tenemos en el Panel de Herramientas, y que nos van a permitir configurar el Elemento de Aplicación, se definen mediante el fichero &lt;em&gt;Elements.xml&lt;/em&gt; correspondiente al Elemento de Aplicación, y se “envían” a la App mediante Query String. Por ejemplo:&lt;/p&gt;  &lt;p align="justify"&gt; &lt;/p&gt;  &lt;pre class="brush: xml; auto-links: true; collapse: false; first-line: 1; gutter: true; highlight: [8,11,12,13,14,15,16,17,18]; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&amp;lt;Elements xmlns=&amp;quot;http://schemas.microsoft.com/sharepoint/&amp;quot;&amp;gt;
  &amp;lt;ClientWebPart Title=&amp;quot;MyApp&amp;quot; Name=&amp;quot;MyApp&amp;quot; Description=&amp;quot;Lorem Ipsulum&amp;quot; DefaultHeight=&amp;quot;600&amp;quot; DefaultWidth=&amp;quot;392&amp;quot;&amp;gt;

    &amp;lt;!-- Las propiedades de configuración del App Part se pasan mediante la Query String
    en el siguiente formato: _nombrePropiedad_ en la propiedad 'Src' del elemento Content--&amp;gt;

    &amp;lt;Content Type=&amp;quot;html&amp;quot; Src=&amp;quot;~appWebUrl/Pages/MyAppPartPage.aspx?{StandardTokens}&amp;amp;amp;titulo=_titulo_&amp;quot;/&amp;gt;
	
    &amp;lt;Properties&amp;gt;
      &amp;lt;Property
          Name=&amp;quot;titulo&amp;quot;
          Type=&amp;quot;string&amp;quot;
          RequiresDesignerPermission=&amp;quot;true&amp;quot;
          DefaultValue=&amp;quot;Contact Us&amp;quot;
          WebCategory=&amp;quot;Configuración&amp;quot;
          WebDisplayName=&amp;quot;Titulo:&amp;quot;&amp;gt;
      &amp;lt;/Property&amp;gt;      
    &amp;lt;/Properties&amp;gt;
  &amp;lt;/ClientWebPart&amp;gt;
&amp;lt;/Elements&amp;gt;&lt;/pre&gt;

&lt;p align="justify"&gt; &lt;/p&gt;

&lt;p align="justify"&gt;Este sería el código &lt;em&gt;Elemento.xml&lt;/em&gt;, que define el comportamiento de un Elemento de Aplicación. La forma de definir los parámetros de configuración que aparecerán en el Panel de Herramientas es mediante los nodos &lt;em&gt;Property.&lt;/em&gt; Una vez definidos estos parámetros, los añadimos a la URL que apunta hacia la página que contiene el contenido (valga la redundancia) del Elemento de Aplicacion. Para ello se usa un formato específico, que consiste en poner el título del parámetro entre guiones bajos. Como vemos, dentro del nodo &lt;em&gt;Property &lt;/em&gt;podemos definir otras características, como grupo, nombre a mostrar, valor por defecto, etc. El resultado final, es muy similar al Panel de Herramientas de un Elemento Web.&lt;/p&gt;

&lt;p align="justify"&gt;&lt;a href="/sharepoint/Lists/Posts/Attachments/238/image_7_4411068A.png"&gt;&lt;img title="image" style="margin:0px;display:inline;background-image:none" border="0" alt="image" src="/sharepoint/Lists/Posts/Attachments/238/image_thumb_2_71FE5942.png" width="208" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p align="justify"&gt; &lt;/p&gt;

&lt;p align="justify"&gt;Por último, y no menos importante (de hecho quizás sea lo más importante, y el objetivo principal de crear este post). En las versiones Preview de SharePoint 2013, no se aplicaba ninguna codificación a la URL resultante con los parámetros de configuración en la Query String. Es decir, si algún parámetro tenía cómo valor algún carácter especial, como “;” o “-”, etc., éstos no se codificaban. En la versión final de SharePoint 2013, si se aplica una codificación a dicha URL. ¿Esto qué puede implicar? Bueno, en mi caso personal, tenía parámetros de configuración en la Query String con valores del tipo: “uno;dos;tres;cuatro”. La idea era obtener dicho parámetros mediante JavaScript, y hacer un “&lt;em&gt;Split&lt;/em&gt;” por “;”. Ahora bien, si el punto y coma, ya no es punto y coma, si no “%3B”, ¿qué es lo que pasa? Pues lo que pasa es muerte y destrucción de la App :) Así que ya estáis avisados, no cometer mi mismo error!&lt;/p&gt;

&lt;p align="justify"&gt; &lt;/p&gt;

&lt;p align="justify"&gt;¡Hasta la próxima!&lt;/p&gt;

&lt;p align="justify"&gt; &lt;/p&gt;

&lt;p align="justify"&gt;PD: Para más información sobre el modelo de desarrollo de Apps para SharePoint 2013, podéis &lt;a href="http://www.solidq.com/sqj/books/Pages/SharePoint-2013-Apps-el-nuevo-modelo-de-desarrollo.aspx" target="_blank"&gt;descargar el libro&lt;/a&gt; en castellano totalmente gratuito que escribimos el equipo de SharePoint de SolidQ, centrado exclusivamente en el desarrollo de Apps par SharePoint 2013.&lt;/p&gt;&lt;/div&gt;</description>
      <shortDescription>&lt;div class="ExternalClass7E9B1E68E4A4475E9F85B694191BA80A"&gt;&lt;p align="justify"&gt;En SharePoint 2013, dentro del nuevo modelo de desarrollo que suponen las Apps, tenemos los Elementos de Aplicación, más conocidos como &lt;em&gt;App Parts&lt;/em&gt; o &lt;em&gt;Client Web Part&lt;/em&gt;. Los Elementos de Aplicación, podrían definirse como una App que imita la experiencia de usuario de un Elemento Web (&lt;em&gt;Web Part&lt;/em&gt;). Son Apps que insertamos en la página, del mismo modo que insertaríamos un Elemento Web. Entrando en detalle, lo que realmente hacemos cuando insertamos un Elemento de Aplicación, es insertar un &lt;em&gt;iFrame&lt;/em&gt; en la página,...&lt;/p&gt;&lt;/div&gt;</shortDescription>
      <category name="Apps" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Apps" nameEnconded="Apps" />
      <category name="Apps Parts" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Apps+Parts" nameEnconded="Apps+Parts" />
      <category name="Elementos de Aplicación" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Elementos+de+Aplicaci%c3%b3n" nameEnconded="Elementos+de+Aplicaci%c3%b3n" />
      <category name="Query String" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Query+String" nameEnconded="Query+String" />
      <category name="Tool Part" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Tool+Part" nameEnconded="Tool+Part" />
      <category name="Panel de Herramientas" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Panel+de+Herramientas" nameEnconded="Panel+de+Herramientas" />
      <category name="SharePoint 2013" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=SharePoint+2013" nameEnconded="SharePoint+2013" />
      <dc:language name="http://blogs.solidq.com/Pages/Home.aspx?language=Spanish" nameEncoded="Spanish" xmlns:dc="http://purl.org/dc/elements/1.1/"></dc:language>
    </item>
    <item>
      <title>PowerShell para cambiar las propiedades de la Navegación Actual en SharePoint 2010</title>
      <ItemID>237</ItemID>
      <link>http://blogs.solidq.com/sharepoint/Post.aspx?ID=237&amp;title=PowerShell+para+cambiar+las+propiedades+de+la+Navegaci%c3%b3n+Actual+en+SharePoint+2010</link>
      <pubDate>2013-03-06T14:45:58+01:00</pubDate>
      <author>José Quinto Zamora</author>
      <authorEncoded>Jos%c3%a9+Quinto+Zamora</authorEncoded>
      <authorID>2</authorID>
      <comments>None</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">None</wfw:commentRss>
      <description>&lt;div class="ExternalClassBEB7A7C1DD7D4334BE8C43F44C8855B6"&gt;&lt;p&gt;Hay tareas que pueden ser muy tediosas, como por ejemplo, tener que cambiar las propiedades de navegación de SharePoint 2010 en 100 sitios. ¿os imagináis cuanto tiempo costaría hacerlo a mano?&lt;/p&gt;  &lt;p&gt;Para esto se inventó PowerShell, es más en el tiempo que me he ahorrado usando PowerShell, aprovecho y publico este post para que os pueda servir de ayuda en algún momento!&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;La idea es saber el comando exacto que establece las propiedades que queremos, en mi caso lo que quiero es que la navegación actual el modo en que se representa sea: “Mostrar sólo los elementos de navegación bajo el sitio actual”:&lt;/p&gt;  &lt;p&gt;&lt;a href="/sharepoint/Lists/Posts/Attachments/237/NavegacionSharePOint2010Powershell_2E7F7172.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px" title="NavegacionSharePOint2010Powershell" border="0" alt="NavegacionSharePOint2010Powershell" src="/sharepoint/Lists/Posts/Attachments/237/NavegacionSharePOint2010Powershell_thumb_2E7F7172.png" width="452" height="89" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;El código que puede recorrerse todos los sitios y subsitios para aplicar esta confguración es el siguiente:&lt;/p&gt;  &lt;pre class="brush: powershell; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"&gt;param([string]$site = &amp;quot;https://coleccionDeSitios/sitio&amp;quot;)

function UpdateNavigationSettings([Microsoft.SharePoint.SPWeb]$paramWeb)
{
	Write-Host &amp;quot;Configurando navegación para la web &amp;quot; $paramWeb.Title;
	
	$pWeb = [Microsoft.SharePoint.Publishing.PublishingWeb]::GetPublishingWeb($paramWeb);
	$pWeb.Navigation.InheritCurrent = $False;
	$pWeb.Navigation.ShowSiblings = $False;

	
	$paramWeb.Update();
	
	$paramWeb.Webs | ForEach-Object{UpdateNavigationSettings($_);}
}

#Obtener el sitio
$Sitios = Get-SPWeb $site;
$Sitios.Webs | ForEach-Object{UpdateNavigationSettings($_);}&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Fijarse que para conseguir esta configuración entran en juego dos propiedades del objeto Navigation: InheritCurrent a false y ShowSiblings a false.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Gracias a Cristian ( &lt;a href="https://twitter.com/cmzaragoza" target="_blank"&gt;@cmzaragoza&lt;/a&gt; ) por el script inicial con bucle recursivo &lt;img style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none" class="wlEmoticon wlEmoticon-smile" alt="Sonrisa" src="/sharepoint/Lists/Posts/Attachments/237/wlEmoticon-smile_2_2E7F7172.png" /&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Espero que os ahorre tiempo!&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;Saludos!&lt;/p&gt;

&lt;p&gt;JQ&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/jquintozamora" target="_blank"&gt;@jquintozamora&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <shortDescription>&lt;div class="ExternalClassBEB7A7C1DD7D4334BE8C43F44C8855B6"&gt;&lt;p&gt;Hay tareas que pueden ser muy tediosas, como por ejemplo, tener que cambiar las propiedades de navegación de SharePoint 2010 en 100 sitios. ¿os imagináis cuanto tiempo costaría hacerlo a mano?&lt;/p&gt;  &lt;p&gt;Para esto se inventó PowerShell, es más en el tiempo que me he ahorrado usando PowerShell, aprovecho y publico este post para que os pueda servir de ayuda en algún momento!&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;La idea es saber el comando exacto que establece las propiedades que queremos, en mi caso lo que quiero es que la navegación actual...&lt;/p&gt;&lt;/div&gt;</shortDescription>
      <category name="PowerShell" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=PowerShell" nameEnconded="PowerShell" />
      <category name="SharePoint 2010" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=SharePoint+2010" nameEnconded="SharePoint+2010" />
      <category name="Navigation" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Navigation" nameEnconded="Navigation" />
      <dc:language name="http://blogs.solidq.com/Pages/Home.aspx?language=Spanish" nameEncoded="Spanish" xmlns:dc="http://purl.org/dc/elements/1.1/"></dc:language>
    </item>
    <item>
      <title>Curso MS Business Intelligence-SSAS: Agregaciones (36)</title>
      <ItemID>171</ItemID>
      <link>http://blogs.solidq.com/BICorner/Post.aspx?ID=171&amp;title=Curso+MS+Business+Intelligence-SSAS%3a+Agregaciones+(36)</link>
      <pubDate>2013-03-06T11:24:06+01:00</pubDate>
      <author>Salvador Ramos</author>
      <authorEncoded>Salvador+Ramos</authorEncoded>
      <authorID>33</authorID>
      <comments>None</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">None</wfw:commentRss>
      <description>&lt;div class="ExternalClass99600534D2414EFBAB6F108E6A4B0BF2"&gt;&lt;h3&gt;&lt;a name="_Toc291606226"&gt;Agregaciones (Aggregations)&lt;/a&gt;&lt;/h3&gt;  &lt;p&gt;Siempre que hablamos de este tipo de sistemas, aparece este término, incluso nos hemos visto en la necesidad de usarlo anteriormente al hablar del almacenamiento. Vamos a incluir aquí, tanto una definición como ejemplos de lo que son las agregaciones.&lt;/p&gt;  &lt;p&gt;Las &lt;b&gt;agregaciones&lt;/b&gt; son el núcleo del almacén analítico, con ellas obtenemos una enorme ganancia de rendimiento en las consultas, evitando leer gran número de celdas para obtener los resultados solicitados.&lt;/p&gt;  &lt;p&gt;Son datos totalizados, ya pre-calculados y almacenados, para distintos niveles del cubo. Se guardan en celdas en las coordenadas especificadas por las dimensiones. No todas las agregaciones se calculan y almacenan, pero sí los metadatos de sus definiciones. El número de agregaciones tiene un crecimiento exponencial, por lo que el almacenamiento de todas ellas supondría también un crecimiento exponencial del tamaño del cubo y del tiempo de procesamiento.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="/BICorner/Lists/Posts/Attachments/171/SSAS_Agregaciones_5FD83147.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px" title="SSAS_Agregaciones" border="0" alt="SSAS_Agregaciones" src="/BICorner/Lists/Posts/Attachments/171/SSAS_Agregaciones_thumb_5FD83147.png" width="548" height="511" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Figura 1 – Agregaciones (Aggregations)&lt;/em&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Consideramos como datos base, los valores de cruce entre los niveles más bajos de cada dimensión, veamos un ejemplo:&lt;/p&gt;  &lt;p&gt;· Dimensión Tiempo, jerarquía con niveles &lt;i&gt;Todos, Año, Mes, Día&lt;/i&gt;.&lt;/p&gt;  &lt;p&gt;· Dimensión Producto, jerarquía con niveles &lt;i&gt;Todos, Familia, SubFamilia y Producto&lt;/i&gt;.&lt;/p&gt;  &lt;p&gt;· Dimensión Geografía, jerarquía con niveles &lt;i&gt;Todos, País, Provincia y Población&lt;/i&gt;.&lt;/p&gt;  &lt;p&gt;En este caso el cruce de datos base sería a nivel de &lt;i&gt;Día, Producto y Población&lt;/i&gt;. A partir de ahí, los niveles &lt;i&gt;Todos&lt;/i&gt;, &lt;i&gt;Año&lt;/i&gt; y &lt;i&gt;Mes&lt;/i&gt; para el &lt;i&gt;Tiempo&lt;/i&gt;; &lt;i&gt;Todos&lt;/i&gt;, &lt;i&gt;Familia&lt;/i&gt; y &lt;i&gt;SubFamilia&lt;/i&gt; para el &lt;i&gt;Producto&lt;/i&gt;; y &lt;i&gt;Todos,&lt;/i&gt; &lt;i&gt;País&lt;/i&gt; y &lt;i&gt;Provincia&lt;/i&gt; para la &lt;i&gt;Geografía&lt;/i&gt;, serán agregaciones que se pueden obtener a partir de los datos base. El &lt;i&gt;Año&lt;/i&gt; lo obtendría sumando los 365 días o los 12 meses, según el diseño de agregaciones que tenga. El &lt;i&gt;Todos (de la dimensión Producto)&lt;/i&gt;, se obtendría sumando todas las &lt;i&gt;Familas&lt;/i&gt;, todas las &lt;i&gt;SubFamilias&lt;/i&gt;, o todos los &lt;i&gt;Productos&lt;/i&gt;, dependiendo igualmente de las agregaciones que tengamos almacenadas.&lt;/p&gt;  &lt;p&gt;Como puede ver el lector es fundamental conocer el concepto de &lt;i&gt;Agregaciones&lt;/i&gt;, y su diseño y almacenamiento. Debe tener también en cuenta que cuantas más agregaciones tengamos, más rápida será la ejecución de las consultas, y por el contrario más lento será el tiempo de procesamiento y mayor el tamaño necesario para el almacenamiento, dado que habrá un mayor número de celdas pre-calculadas y almacenadas en el cubo. A fin de tener un balance entre el procesamiento de los cubos y el tiempo de respuesta, &lt;i&gt;Analysis Services&lt;/i&gt; pre-calcula y guarda las agregaciones escogidas y genera las restantes al recibir la consulta.&lt;/p&gt;  &lt;p&gt;No es el objetivo de este capítulo profundizar en el diseño de las agregaciones del cubo, sino simplemente que desde el principio, el lector tenga muy claro lo importante que es este concepto y las consecuencias que puede tener en el rendimiento de las consultas, en el tamaño de la base de datos y en los tiempos de procesamiento.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Si te interesa esta información, y deseas convertirte en un profesional altamente especializado en Microsoft Business Intelligence, te recomiendo que nos pidas información sobre nuestro &lt;a href="http://www.solidq.com/squ/courses/Pages/Master-BI-Certified-Business-Intelligence-Microsoft-Espanol.aspx"&gt;&lt;strong&gt;Master en BI&lt;/strong&gt;&lt;/a&gt;. &lt;em&gt;Recuerda que hay poquitas plazas disponibles!!!&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Post publicados anteriormente como parte de este curso:&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=169&amp;amp;title=curso+ms+business+intelligence-ssas%3a+procesamiento+y+modos+de+almacenamiento+%2835%29" target="_blank"&gt;SSAS, Procesamiento y modos de almacenamiento (35)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=167&amp;amp;title=curso+ms+business+intelligence-ssas%3a+construyendo+y+desplegando+el+modelo+%2834%29"&gt;SSAS, Construyendo y desplegando el modelo (34)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=164&amp;amp;title=curso+ms+business+intelligence%e2%80%93ssas%3a+objetos+de+una+bbdd+de+analysis+services+%28parte+iv%e2%80%93dimensiones%29+%2833%29"&gt;SSAS, Objetos de una BBDD de Analysis Services parte IV – Dimensiones) (33)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=163&amp;amp;title=curso+ms+business+intelligence+-+ssas%3a+objetos+de+una+bbdd+de+analysis+services+%28parte+iii%e2%80%93cubos%29+%2832%29"&gt;SSAS, Objetos de una BBDD de Analysis Services (parte III – Cubos) (32)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=162&amp;amp;title=curso+ms+business+intelligence+-+ssas%3a+objetos+de+una+bbdd+de+analysis+services+%28parte+ii+-+datasource+views%29+%2831%29"&gt;SSAS, Objetos de una BBDD de Analysis Services (parte II – DataSource Views) (31)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=156&amp;amp;title=curso+ms+business+intelligence+-+ssas%3a+objetos+de+una+bbdd+de+analysis+services+%28parte+i+-+datasources%29+%2830%29"&gt;SSAS, Objetos de una BBDD de Analysis Services (parte I – DataSources) (30)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=155&amp;amp;title=curso+ms+business+intelligence+-+ssas%3a+cubos+olap%2c+conceptos+b%c3%a1sicos+%28parte+iii%29+%2829%29"&gt;SSAS, Cubos OLAP, Conceptos básicos (parte III) (29)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=154&amp;amp;title=curso+ms+business+intelligence+-+ssas%3a+cubos+olap%2c+conceptos+b%c3%a1sicos+%28parte+ii%29+%2828%29"&gt;SSAS, Cubos OLAP, Conceptos básicos (parte II) (28)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=152&amp;amp;title=curso+ms+business+intelligence+-+ssas%3a+cubos+olap%2c+conceptos+b%c3%a1sicos+%28parte+i%29+%2827%29"&gt;SSAS, Cubos OLAP, Conceptos básicos (parte I) (27)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=151&amp;amp;title=curso+ms+business+intelligence+-+ssas%3a+qu%c3%a9+es+analysis+services+%2826%29"&gt;SSAS, Qué es Analysis Services (26)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=149&amp;amp;title=curso+ms+business+intelligence+-+fin+del+m%c3%b3dulo+de+ssis+y+recapitulaci%c3%b3n+%2825%29"&gt;Fin del módulo de SSIS y recapitulación (25)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=143&amp;amp;title=cursos+ms+business+intelligence+ssis%3a+programar+la+ejecuci%c3%b3n+de+paquetes+%2824%29"&gt;SSIS, Programar la ejecución de paquetes (24)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=142&amp;amp;title=curso+ms+business+intelligence+-+ssis%3a+ejecuci%c3%b3n+de+paquetes+en+el+servidor+%2823%29"&gt;SSIS, Ejecución de paquetes en el servidor (23)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=140&amp;amp;title=curso+ms+business+intelligence+ssis%3a+despliegue+de+paquetes+%2822%29"&gt;SSIS, Despliegue de paquetes (22)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=132&amp;amp;title=curso+ms+business+intelligence+ssis%3a+configuraci%c3%b3n%2c+despliegue+y+administracion+%28parte+iii%29+%2821%29"&gt;SSIS Configuración, Despliegue y Administración (parte III) (21)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=130&amp;amp;title=curso+ms+business+intelligence+-+ssis%3a+configuracion%2c+despliegue+y+administraci%c3%b3n+%28parte+ii%29+%2820%29"&gt;SSIS Configuración, Despliegue y Administración (parte II) (20)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=129&amp;amp;title=curso+ms+business+intelligence+ssis%3a+configuraci%c3%b3n%2c+despliegue+y+administracion+%28parte+i%29+%2819%29"&gt;SSIS Configuración, Despliegue y Administración (parte I) (19)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=128&amp;amp;title=curso+ms+business+intelligence+-+ssis+logging+%28parte+iii%29+%2818%29"&gt;SSIS Logging (parte III) (18)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=126&amp;amp;title=curso+ms+business+intelligence+-+ssis+logging+%28parte+ii%29+%2817%29"&gt;SSIS Logging (parte II) (17)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=123&amp;amp;title=curso+ms+business+intelligence+-+ssis+loging+%28parte+i%29+%2816%29"&gt;SSIS Logging (parte I) (16)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=122&amp;amp;title=curso+ms+business+intelligence+ssis+buenas+pr%c3%a1cticas+%28parte+iii%29+%2815%29"&gt;SSIS Buenas prácticas (parte III) (15)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=120&amp;amp;title=curso+ms+business+intelligence+-+ssis+buenas+pr%c3%a1cticas+%28parte+ii%29+%2814%29"&gt;SSIS Buenas prácticas (parte II) (14)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=119&amp;amp;title=curso+ms+business+intelligence+-+ssis+buenas+pr%c3%a1cticas+%28parte+i%29+%2813%29"&gt;SSIS Buenas prácticas (parte I) (13)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=112&amp;amp;title=curso+ms+business+intelligence+-+ssis+data+flow+%2812%29"&gt;SSIS Data Flow (12)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=106&amp;amp;title=Curso+MS+Business+Intelligence+-+SSIS+ControlFlow+%2811%29"&gt;SSIS Control Flow (11)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=105&amp;amp;title=Curso+MS+Business+Intelligence+-+Introduccion+a+SSIS+%2810%29"&gt;Introducción a SSIS (10)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=104&amp;amp;title=Curso+MS+Business+Intelligence+-+Modelado+Dimensional+%289%29"&gt;Modelado Dimensional (9)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=103&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Introduccion+completa+%288%29"&gt;Introducción Completa (8)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=84&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Herramientas+cliente+SQL+Server+%287%29"&gt;Herramientas Cliente SQL Server (7)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=83&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Componentes+de+la+plataforma+Microsoft+BI+%286%29"&gt;Componentes de la Plataforma Microsoft BI (6)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=82&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Visi%c3%b3n+y+estrategia+%285%29"&gt;Microsoft BI – Visión y Estrategia (5)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=81&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Componentes+de+una+soluci%c3%b3n+de+BI+%284%29"&gt;Componentes de una Solución de BI (4)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=80&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Conceptos+importantes+sobre+BI+%e2%80%93+parte+II+%283%29"&gt;Conceptos importantes sobre BI – parte II (3)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=79&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Conceptos+importantes+sobre+BI+%e2%80%93+parte+I+%282%29"&gt;Conceptos importantes sobre BI – parte I (2)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=78&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Definici%c3%b3n+del+t%c3%a9rmino+BI+%281%29"&gt;Definición del término BI (1)&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;</description>
      <shortDescription>&lt;div class="ExternalClass99600534D2414EFBAB6F108E6A4B0BF2"&gt;&lt;h3&gt;&lt;a name="_Toc291606226"&gt;Agregaciones (Aggregations)&lt;/a&gt;&lt;/h3&gt;  &lt;p&gt;Siempre que hablamos de este tipo de sistemas, aparece este término, incluso nos hemos visto en la necesidad de usarlo anteriormente al hablar del almacenamiento. Vamos a incluir aquí, tanto una definición como ejemplos de lo que son las agregaciones.&lt;/p&gt;  &lt;p&gt;Las &lt;b&gt;agregaciones&lt;/b&gt; son el núcleo del almacén analítico, con ellas obtenemos una enorme ganancia de rendimiento en las consultas, evitando leer gran número de celdas para obtener los resultados solicitados.&lt;/p&gt;  &lt;p&gt;Son datos totalizados,...&lt;/p&gt;&lt;/div&gt;</shortDescription>
      <category name="Agregaciones" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Agregaciones" nameEnconded="Agregaciones" />
      <category name="Analysis Services" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Analysis+Services" nameEnconded="Analysis+Services" />
      <category name="SSAS" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=SSAS" nameEnconded="SSAS" />
      <category name="Cubos OLAP" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Cubos+OLAP" nameEnconded="Cubos+OLAP" />
      <category name="Cursos" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Cursos" nameEnconded="Cursos" />
      <dc:language name="http://blogs.solidq.com/Pages/Home.aspx?language=Spanish" nameEncoded="Spanish" xmlns:dc="http://purl.org/dc/elements/1.1/"></dc:language>
    </item>
    <item>
      <title>[Office 365 - SharePoint 2013 Online] Establecer clave de Bing Maps para el campo de tipo Geolocation</title>
      <ItemID>236</ItemID>
      <link>http://blogs.solidq.com/sharepoint/Post.aspx?ID=236&amp;title=%5bOffice+365+-+SharePoint+2013+Online%5d+Establecer+clave+de+Bing+Maps+para+el+campo+de+tipo+Geolocation</link>
      <pubDate>2013-03-05T01:40:00+01:00</pubDate>
      <author>José Quinto Zamora</author>
      <authorEncoded>Jos%c3%a9+Quinto+Zamora</authorEncoded>
      <authorID>2</authorID>
      <comments>None</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">None</wfw:commentRss>
      <description>&lt;div class="ExternalClass78AFA004826A4D2094B0089566FCF805"&gt;&lt;p&gt;En SharePoint 2013, tanto OnPremise como Online se pueden crear campos de tipo Geolocation, los cuales nos facilitan la tarea de representar coordenadas en un mapa.&lt;/p&gt;
&lt;p&gt;Para poder crear este tipo de columnas debemos de hacerlo mediante código, ya que no existe opción, por el momento, de hacerlo mediante la interfaz gráfica.&lt;/p&gt;
&lt;p&gt;Además, como cualquier aplicación en la que se utilicen los mapas de Bing Maps, se requiere de una clave que se puede obtener aquí: &lt;a href="http://bingmapsportal.com/"&gt;http://bingmapsportal.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Los pasos a seguir para poder crear el campo son:&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h3&gt;1. Configurar la clave de Bing Maps&lt;/h3&gt;
&lt;p&gt;Para poder configurar la clave de Bing Maps en SharePoint 2013 Online debemos hacerlo mediante este código:&lt;/p&gt;
&lt;pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"&gt;Uri oUri = new Uri(&amp;quot;&amp;lt;url&amp;gt;&amp;quot;);
MsOnlineClaimsHelper claimsHelper = new MsOnlineClaimsHelper(oUri, &amp;quot;&amp;lt;id&amp;gt;&amp;quot;, &amp;quot;&amp;lt;password&amp;gt;&amp;quot;);
using (ClientContext context = new ClientContext(oUri))
{
	context.ExecutingWebRequest += claimsHelper.clientContext_ExecutingWebRequest;
	Web web = context.Web;
	web.AllProperties[&amp;quot;BING_MAPS_KEY&amp;quot;] = &amp;quot;&amp;lt;clave&amp;gt;&amp;quot;;
	web.Update();
	context.ExecuteQuery();			  
}&lt;/pre&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Para ver más detalles sobre configurar la clave de Bing en SharePoint Online, véase el post de &lt;a href="http://msmvps.com/blogs/sundar_narasiman/archive/2012/11/22/how-to-add-geolocation-fields-to-sharepoint-2013-site.aspx"&gt;Sundar Narasiman&lt;/a&gt;. Además con el fin de facilitar la tarea adjunto el código que me he montado para probar esta asignación de clave en SharePoint 2013 Online. Lo podéis descargar &lt;a href="/sharepoint/Documents/ConfigurarClaveBingSharePointOnline.zip" target="_blank"&gt;aquí&lt;/a&gt;. (&lt;a href="/sharepoint/Documents/ConfigurarClaveBingSharePointOnline.zip" target="_blank"&gt;ConfigurarClaveBingSharePointOnline.zip&lt;/a&gt;). &lt;/p&gt;
&lt;p&gt;Nota: Para SharePoint 2013 OnPremise es mucho más fácil, ya que basta con ejecutar el comando PowerShell: &lt;b&gt;Set-SPBingMapsKey –BingKey “&amp;lt;clave de Bing Maps&amp;gt;”.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h3&gt;2. Añadir el campo de tipo GeoLocation mediante código&lt;/h3&gt;
&lt;p&gt;Como comentaba este tipo de columna o campo de SharePoint 2013 no se permite añadirlo vía interfaz gráfica, puesto que no está la opción. Para poder añadirlo debemos de usar el modelo de Objetos, o bien Servidor o Cliente.&lt;/p&gt;
&lt;p&gt;En este caso vamos a usar el modelo de Objetos de Cliente JavaScript o ECMAScript de SharePoint 2013, basta con crear una página nueva, añadir un código embebido y poner este código:&lt;/p&gt;
&lt;pre class="brush: js; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;

	var contexto;
		
	function CrearColumna() 
	{
		var nombreLista = document.getElementById('nombreLista').value;
		var nombreColumna = document.getElementById('nombreColumna').value;
		contexto = new SP.ClientContext.get_current();
		var lista = contexto.get_web().get_lists().getByTitle(nombreLista);
		contexto.load(lista);
		this.newField = lista.get_fields().addFieldAsXml(
				&amp;quot;&amp;lt;Field Type='Geolocation' DisplayName='&amp;quot; + nombreColumna + &amp;quot;'/&amp;gt;&amp;quot;,
				true,
				SP.AddFieldOptions.defaultValue
			);
		lista.update();
		contexto.executeQueryAsync(Function.createDelegate(this, this.CreadaCorrectamente),Function.createDelegate(this, this.ErrorAlCrear));
		
	}
 
	function CreadaCorrectamente()
	{
		alert('Columna GeoLocation creada.');
	}
 
	function ErrorAlCrear(sender, args) 
	{
		alert('Error: ' + args.get_message() + '\n' + args.get_stackTrace());
	}

&amp;lt;/script&amp;gt;
 
&amp;lt;div&amp;gt;
	&amp;lt;div&amp;gt;Crear columna de tipo GeoLocation:&amp;lt;/div&amp;gt;
	&amp;lt;span&amp;gt;Nombre de Lista: &amp;lt;/span&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; value=&amp;quot;&amp;quot; id=&amp;quot;nombreLista&amp;quot; /&amp;gt;
	&amp;lt;span&amp;gt;Nombre de Columna: &amp;lt;/span&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; value=&amp;quot;&amp;quot; id=&amp;quot;nombreColumna&amp;quot; /&amp;gt;
	&amp;lt;input type=&amp;quot;button&amp;quot; value=&amp;quot;CrearColumna&amp;quot; onClick=&amp;quot;CrearColumna();&amp;quot; /&amp;gt;
&amp;lt;/div&amp;gt;&lt;/pre&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Luego, guardamos la página y ya podemos usar esta página para crear todos los campos de tipo Geolocation en todas las listas que queramos.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Espero que les guste!&lt;/p&gt;
&lt;p&gt;JQ&lt;/p&gt;
&lt;p&gt;&lt;a href="https://twitter.com/jquintozamora" target="_blank"&gt;@jquintozamora&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <shortDescription>&lt;div class="ExternalClass78AFA004826A4D2094B0089566FCF805"&gt;&lt;p&gt;En SharePoint 2013, tanto OnPremise como Online se pueden crear campos de tipo Geolocation, los cuales nos facilitan la tarea de representar coordenadas en un mapa.&lt;/p&gt;
&lt;p&gt;Para poder crear este tipo de columnas debemos de hacerlo mediante código, ya que no existe opción, por el momento, de hacerlo mediante la interfaz gráfica.&lt;/p&gt;
&lt;p&gt;Además, como cualquier aplicación en la que se utilicen los mapas de Bing Maps, se requiere de una clave que se puede obtener aquí: &lt;a href="http://bingmapsportal.com/"&gt;http://bingmapsportal.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Los pasos a seguir para...&lt;/p&gt;&lt;/div&gt;</shortDescription>
      <category name="SharePoint 2013" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=SharePoint+2013" nameEnconded="SharePoint+2013" />
      <category name="Office 365" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Office+365" nameEnconded="Office+365" />
      <category name="GeoLocation" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=GeoLocation" nameEnconded="GeoLocation" />
      <category name="SharePoint 2013 Online" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=SharePoint+2013+Online" nameEnconded="SharePoint+2013+Online" />
      <dc:language name="http://blogs.solidq.com/Pages/Home.aspx?language=Spanish" nameEncoded="Spanish" xmlns:dc="http://purl.org/dc/elements/1.1/"></dc:language>
    </item>
    <item>
      <title>La importancia de formar de un modo relevante en la universidad, las escuelas de negocios, y la formación técnica profesional</title>
      <ItemID>88</ItemID>
      <link>http://blogs.solidq.com/fguerrero/Post.aspx?ID=88&amp;title=La+importancia+de+formar+de+un+modo+relevante+en+la+universidad%2c+las+escuelas+de+negocios%2c+y+la+formaci%c3%b3n+t%c3%a9cnica+profesional</link>
      <pubDate>2013-03-04T14:16:00+01:00</pubDate>
      <author>Fernando G. Guerrero</author>
      <authorEncoded>Fernando+G.+Guerrero</authorEncoded>
      <authorID>20</authorID>
      <comments>None</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">None</wfw:commentRss>
      <description>&lt;div class="ExternalClass484072838AD54DEA9640AF6C436722D1"&gt;&lt;p&gt;Este post se ha movido al nuevo blog de fernando G. Guerrero para temas personales en &lt;a href="http://www.fernandogguerrero.com/2013/03/la-importancia-de-formar-de-un-modo-relevante-en-la-universidad-las-escuelas-de-negocios-y-la-formacion-tecnica-profesional/"&gt;http://www.fernandogguerrero.com/2013/03/la-importancia-de-formar-de-un-modo-relevante-en-la-universidad-las-escuelas-de-negocios-y-la-formacion-tecnica-profesional/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Gracias por tu interés en mi blog&lt;/p&gt;
&lt;p&gt;Fernando G. Guerrero&lt;/p&gt;&lt;/div&gt;</description>
      <shortDescription>&lt;div class="ExternalClass484072838AD54DEA9640AF6C436722D1"&gt;&lt;p&gt;Este post se ha movido al nuevo blog de fernando G. Guerrero para temas personales en &lt;a href="http://www.fernandogguerrero.com/2013/03/la-importancia-de-formar-de-un-modo-relevante-en-la-universidad-las-escuelas-de-negocios-y-la-formacion-tecnica-profesional/"&gt;http://www.fernandogguerrero.com/2013/03/la-importancia-de-formar-de-un-modo-relevante-en-la-universidad-las-escuelas-de-negocios-y-la-formacion-tecnica-profesional/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Gracias por tu interés en mi blog&lt;/p&gt;
&lt;p&gt;Fernando G. Guerrero&lt;/p&gt;&lt;/div&gt;</shortDescription>
      <category name="Educación" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Educaci%c3%b3n" nameEnconded="Educaci%c3%b3n" />
      <category name="Negocios" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Negocios" nameEnconded="Negocios" />
      <category name="temas personales" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=temas+personales" nameEnconded="temas+personales" />
      <dc:language name="http://blogs.solidq.com/Pages/Home.aspx?language=Spanish" nameEncoded="Spanish" xmlns:dc="http://purl.org/dc/elements/1.1/"></dc:language>
    </item>
    <item>
      <title>Hackeando los grupos de disponibilidad: Rompiendo el límite de cinco réplicas</title>
      <ItemID>240</ItemID>
      <link>http://blogs.solidq.com/ElRinconDelDBA/Post.aspx?ID=240&amp;title=Hackeando+los+grupos+de+disponibilidad%3a+Rompiendo+el+l%c3%admite+de+cinco+r%c3%a9plicas</link>
      <pubDate>2013-02-16T01:13:01+01:00</pubDate>
      <author>Rubén Garrigós</author>
      <authorEncoded>Rub%c3%a9n+Garrig%c3%b3s</authorEncoded>
      <authorID>40</authorID>
      <slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">1</slash:comments>
      <comments>http://blogs.solidq.com/ElRinconDelDBA/Post.aspx?ID=240&amp;title=Hackeando+los+grupos+de+disponibilidad%3a+Rompiendo+el+l%c3%admite+de+cinco+r%c3%a9plicas#1</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">None</wfw:commentRss>
      <description>&lt;div class="ExternalClassE272516AF6EC48478215423BA9806810"&gt;&lt;p&gt;&lt;font size="2"&gt;Los grupos de disponibilidad son una nueva característica de SQL Server 2012 muy útil en muchos escenarios. Un escenario donde es especialmente útil es aquel en el que tenemos múltiples copias de solo lectura de una o varias bases de datos en varios servidores. Estos escenarios se cubrían habitualmente mediante el uso de Log Shipping con múltiples secundarios o bien con replicación transaccional. &lt;/font&gt;&lt;/p&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;p&gt;&lt;font size="2"&gt;El uso de replicación supone un mantenimiento adicional así como limitaciones adicionales a nuestra base de datos. El uso de logshipping necesita de un proceso de actualización complejo si no queremos tener periodos de no disponibilidad. Típicamente necesitaremos un proceso “round-robin” para que mediante alias de bases de datos y/o un NLB, etc. actualicemos la información de los secundarios garantizando siempre que tenemos al menos una copia accesible por las aplicaciones.&lt;/font&gt;&lt;/p&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;p&gt;&lt;font size="2"&gt;Los grupos de disponibilidad son otra alternativa a estos escenarios ya que nos permiten tener varias réplicas con acceso de solo lectura. Además de la réplica primaria (rol similar al publicador en réplica o al principal de log shipping), podríamos tener hasta 4 réplicas secundarias (rol similar a las subscriptores en réplica o a los secundarios en log shipping). &lt;/font&gt;&lt;/p&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;p&gt;&lt;font size="2"&gt;Desgraciadamente la limitación a 4 réplicas como máximo la que hace que muchos escenarios del mundo empresarial no sean “migrables” a grupos de disponibilidad. Personalmente creemos que el número de réplicas asíncronas no debería ser tan absurdamente bajo. Al fin y al cabo las réplicas asíncronas no causan casi ninguna penalización de rendimiento a la réplica primaria.&lt;/font&gt;&lt;/p&gt;  &lt;h2&gt;&lt;font color="#ff0000"&gt;IMPORTANTE: El procedimiento descrito a continuación nunca deberá aplicarse a un entorno de producción. Los fines de este artículo son únicamente educativos.&lt;/font&gt;&lt;/h2&gt;  &lt;p&gt;&lt;font size="2"&gt;Imaginemos un escenario donde ya tenemos 5 réplicas en nuestro grupo de disponibilidad:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/240/image_4_14DDA905.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/240/image_thumb_1_14DDA905.png" width="328" height="200" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Si intentamos añadir una nueva réplica desde el interfaz gráfico vemos que dicha posibilidad está deshabilitada:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/240/image_2_7FEC2691.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/240/image_thumb_7FEC2691.png" width="719" height="666" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Si lo intentamos directamente desde T-SQL nos encontramos con el siguiente error:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/240/image_8_7FEC2691.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/240/image_thumb_3_7FEC2691.png" width="1119" height="278" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Ya que el número máximo de réplicas soportado no es un parámetro configurable decidimos entrar a bajo nivel a SQL Server para determinar de qué forma obtiene dicho límite SQL Server. Nuestra primera aproximación fue monitorizar el proceso sqlservr.exe para ver si realizaba alguna lectura de algún entrada en el registro de Windows u obtenía dicha información de algún fichero. Tras comprobar que no era así nos temíamos que dicho valor se encontraría en el código de SQL Server “a fuego”. Llega por tanto la hora de sacar el armamento pesado &lt;img class="wlEmoticon wlEmoticon-smile" alt="Smile" src="/elrincondeldba/Lists/Posts/Attachments/240/wlEmoticon-smile_2_7FEC2691.png" /&gt;&lt;/font&gt;&lt;/p&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;p&gt;&lt;font size="2"&gt;Comenzaremos descargando el SDK de Windows donde se incluyen las herramientas de depuración (WinDbg, KD, CDB y NTSD). Una vez instaladas decidimos utilizar el frontend de Visual Studio para depuración de aplicaciones nativas por la sencillez en la gestión de símbolos de depuración, breakpoints, etc. &lt;/font&gt;&lt;/p&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;p&gt;&lt;font size="2"&gt;Arrancaremos Visual Studio y desde el menú Debug seleccionaremos attach to process:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/240/image_10_7FEC2691.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/240/image_thumb_4_7FEC2691.png" width="468" height="437" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Seleccionaremos el proceso de sqlservr.exe e indicaremos que queremos depurar código nativo:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/240/image_12_7FEC2691.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/240/image_thumb_5_7FEC2691.png" width="606" height="413" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Nos aseguraremos también que tenemos habilitada la descarga de símbolos de Microsoft en la ventana Options del menú Tools:&lt;/font&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/240/image_14_7FEC2691.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/240/image_thumb_6_7FEC2691.png" width="633" height="374" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Desde la ventana modules veremos todos los módulos que se han cargado en memoria y la disponibilidad de sus símbolos:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/240/image_16_7FEC2691.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/240/image_thumb_7_7FEC2691.png" width="885" height="246" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;En nuestro caso nos vamos a centrar en aquellas librerías de SQL Server ya que en alguna de ellas es donde debe encontrarse codificado el límite de réplicas. Ante la falta de documentación optamos por utilizar la herramienta DBH (&lt;/font&gt;&lt;a title="http://msdn.microsoft.com/es-es/library/windows/hardware/ff540437%28v=vs.85%29.aspx" href="http://msdn.microsoft.com/es-es/library/windows/hardware/ff540437(v=vs.85).aspx"&gt;&lt;font size="2"&gt;http://msdn.microsoft.com/es-es/library/windows/hardware/ff540437%28v=vs.85%29.aspx&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;) que nos permite obtener información desde los ficheros de símbolos. Tras examinar algunos de los símbolos encontramos varios métodos con el prefijo “HADR” en la librería sqlmin.dll. El nombre interno de los grupos de disponibilidad es HADRON y muchas DMVs siguen manteniendo dicho prefijo. En la librería sqllang.dll tenemos también llamadas a cada uno de los comandos, en concreto existen uno &lt;/font&gt;&lt;/p&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;p&gt;&lt;font size="2"&gt;El siguiente paso es fijar un breakpoint en alguno de los métodos “candidatos” a ser utilizados por SQL Server para gestionar los grupos de disponibilidad. Tras algunas pruebas encontramos un método (CHadrArManager::AgAddReplicas) que se invocaba tras la ejecución de una llamada a ALTER AVAILABILITY GROUP. Una vez tenemos el proceso parado en este punto, tenemos que seguir el flujo del programa en ensamblador para ver hacia donde nos lleva:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/240/image_18_7FEC2691.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/240/image_thumb_8_7FEC2691.png" width="836" height="562" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Seguiremos el flujo del proceso prestando atención a los distintos saltos (je, jne, etc.) así como a los calls. Llegaremos finalmente a un proceso de validación para la operación de añadir una nueva réplica a un grupo de disponibilidad:&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/240/image_22_2DD9794A.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/240/image_thumb_10_2DD9794A.png" width="649" height="165" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;En el cuerpo de dicho proceso de validación encontramos, entre otras validaciones, un bucle que itera 5 veces incrementando el registro edx. En verde tenemos el salto al principio del bucle y en naranja la condición de salida del bucle:&lt;/font&gt;&lt;/p&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;p&gt; &lt;/p&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/240/image_30_2DD9794A.png"&gt;&lt;font size="2"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/240/image_thumb_14_2DD9794A.png" width="776" height="162" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;p&gt;&lt;font size="2"&gt;El valor con el que se compara viene originariamente del registro eax, el cual se carga con el valor correcto tras una llamada a una rutina con un punto de entrada variable (es una dirección calculada al vuelo en el registro rax+0x80):&lt;/font&gt;&lt;/p&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;p&gt; &lt;/p&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/240/image_32_2DD9794A.png"&gt;&lt;font size="2"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/240/image_thumb_15_2DD9794A.png" width="731" height="144" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;p&gt;&lt;font size="2"&gt;Si fijamos un breakpoint sobre dicha dirección de memoria nos encontramos con el método GetMaxNumberOfArsPerAg donde vemos cómo se rellena “a fuego” el valor 5 en el registro eax:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/240/image_34_2DD9794A.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/240/image_thumb_16_2DD9794A.png" width="587" height="262" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;El siguiente paso es modificar en la librería sqlmin.dll el código ensamblador para que el límite en vez de ser 5 sea por ejemplo 10. Con un editor hexadecimal como el XVI32 localizaremos el fragmento de código:&lt;/font&gt;&lt;/p&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/240/image_36_2DD9794A.png"&gt;&lt;font size="2"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/240/image_thumb_17_2DD9794A.png" width="403" height="270" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;p&gt;&lt;font size="2"&gt;No olvidemos realizar una copia de seguridad de la librería y apagar la instancia de SQL Server antes de realizar el cambio. Editaremos el valor 5 (0x05) y lo modificaremos con el valor 10 (0x0A):&lt;/font&gt;&lt;/p&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;p&gt; &lt;/p&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/240/image_38_2DD9794A.png"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/240/image_38_2DD9794A.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/240/image_thumb_18_2DD9794A.png" width="773" height="145" /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;p&gt;&lt;font size="2"&gt;Una vez salvado el cambio, volveremos a arrancar SQL Server y trataremos de añadir una nueva réplica. El comando funcionará sin problemas (el GUI seguirá capado) y podremos ver la nueva réplica en el object explorer:&lt;/font&gt;&lt;/p&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/240/image_42_2DD9794A.png"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/240/image_42_2DD9794A.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/240/image_thumb_20_2DD9794A.png" width="330" height="241" /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;p&gt; &lt;/p&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;p&gt;&lt;font size="2"&gt;También en el dashboard:&lt;/font&gt;&lt;/p&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;p&gt; &lt;/p&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/240/image_40_2DD9794A.png"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/240/image_40_2DD9794A.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/240/image_thumb_19_2DD9794A.png" width="768" height="743" /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;p&gt; &lt;/p&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;p&gt;&lt;font size="2"&gt;Y en las DMVs correspondientes:&lt;/font&gt;&lt;/p&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;p&gt; &lt;/p&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/240/image_44_18E7F6D7.png"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/240/image_44_18E7F6D7.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/240/image_thumb_21_18E7F6D7.png" width="796" height="399" /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;p&gt;&lt;font size="2"&gt;Podríamos seguir añadiendo réplicas hasta las 10 que como máximo hemos configurado:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/240/image_46_26264E4F.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/240/image_thumb_22_26264E4F.png" width="299" height="277" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Para asegurarnos que se respeta el nuevo límite, &lt;/font&gt;&lt;font size="2"&gt;probamos a añadir la undécima réplica y comprobamos que nos devuelve el error esperado:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="/elrincondeldba/Lists/Posts/Attachments/240/image_48_26264E4F.png"&gt;&lt;img title="image" style="display:inline;background-image:none" border="0" alt="image" src="/elrincondeldba/Lists/Posts/Attachments/240/image_thumb_23_26264E4F.png" width="640" height="94" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;La conclusión de este artículo es que SQL Server 2012 parece estar preparado para soportar un número mayor de réplicas en los grupos de disponibilidad con un simple cambio de parametrización. Por una parte consideramos que es una buena noticia que el funcionamiento con más de 5 réplicas sea correcto. Por otra nos preocupa que Microsoft no vaya nunca a permitirnos aumentar el número de réplicas mediante un traceflag o mecanismo similar.&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <shortDescription>&lt;div class="ExternalClassE272516AF6EC48478215423BA9806810"&gt;&lt;p&gt;&lt;font size="2"&gt;Los grupos de disponibilidad son una nueva característica de SQL Server 2012 muy útil en muchos escenarios. Un escenario donde es especialmente útil es aquel en el que tenemos múltiples copias de solo lectura de una o varias bases de datos en varios servidores. Estos escenarios se cubrían habitualmente mediante el uso de Log Shipping con múltiples secundarios o bien con replicación transaccional. &lt;/font&gt;&lt;/p&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;p&gt;&lt;font size="2"&gt;El uso de replicación supone un mantenimiento adicional así como limitaciones adicionales a nuestra...&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;</shortDescription>
      <category name="AlwaysOn Availability Groups" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=AlwaysOn+Availability+Groups" nameEnconded="AlwaysOn+Availability+Groups" />
      <category name="AlwaysOn High Availability" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=AlwaysOn+High+Availability" nameEnconded="AlwaysOn+High+Availability" />
      <category name="Availability Groups" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Availability+Groups" nameEnconded="Availability+Groups" />
      <category name="SQL Server 2012" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=SQL+Server+2012" nameEnconded="SQL+Server+2012" />
      <category name="availability Group Listener" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=availability+Group+Listener" nameEnconded="availability+Group+Listener" />
      <dc:language name="http://blogs.solidq.com/Pages/Home.aspx?language=Spanish" nameEncoded="Spanish" xmlns:dc="http://purl.org/dc/elements/1.1/"></dc:language>
    </item>
    <item>
      <title>Curso MS Business Intelligence-SSAS: Procesamiento y modos de almacenamiento (35)</title>
      <ItemID>169</ItemID>
      <link>http://blogs.solidq.com/BICorner/Post.aspx?ID=169&amp;title=Curso+MS+Business+Intelligence-SSAS%3a+Procesamiento+y+modos+de+almacenamiento+(35)</link>
      <pubDate>2013-02-14T10:53:41+01:00</pubDate>
      <author>Salvador Ramos</author>
      <authorEncoded>Salvador+Ramos</authorEncoded>
      <authorID>33</authorID>
      <comments>None</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">None</wfw:commentRss>
      <description>&lt;div class="ExternalClass8CCEDB71E252493B935194E754166191"&gt;&lt;p&gt;A continuación veremos estos tres conceptos, con el fin de cerrar la introducción. Una vez que tenemos desplegada una base de datos de &lt;i&gt;Analysis Services&lt;/i&gt; en un servidor, necesitamos procesar periódicamente para sincronizar los datos que se muestran con los de los orígenes relacionales. También debemos decidir los modos de almacenamiento de cada dimensión y de cada una de las particiones de los grupos de medidas. Y finalmente diseñar las agregaciones que quedarán almacenadas en la base de datos.&lt;/p&gt;  &lt;h6&gt;&lt;a name="_Toc291606224"&gt;Procesamiento (&lt;i&gt;Processing&lt;/i&gt;)&lt;/a&gt;&lt;/h6&gt;  &lt;p&gt;Un cubo contiene datos precalculados, que permiten un acceso rápido por parte de los usuarios. Periódicamente debemos refrescar los datos del cubo para que incorporen la información que se ha ido generando en los orígenes de datos.&lt;/p&gt;  &lt;p&gt;El procesamiento permite mantener actualizados los objetos de &lt;i&gt;Analysis Services&lt;/i&gt;. Se encarga de llenar con datos los objetos a partir de orígenes de datos relacionales.&lt;/p&gt;  &lt;p&gt;El trabajo de procesamiento está dentro de una transacción, que se puede confirmar o deshacer. Mientras se está procesando el cubo, se puede tener acceso a sus objetos para realizar consultas. Sólo dejarán de estar disponibles una vez procesados correctamente durante el tiempo en que se confirman los cambios, mientras que si se deshacen, no dejarán de estar disponibles. &lt;/p&gt;  &lt;h6&gt;&lt;a name="_Toc291606225"&gt;Modos de Almacenamiento (&lt;i&gt;Storage Modes&lt;/i&gt;)&lt;/a&gt;&lt;/h6&gt;  &lt;p&gt;Una vez que tenemos diseñado un cubo, independientemente de otros muchos factores, debemos decidir en qué modo se va a almacenar en nuestro sistema (SQL Server), y conocer las ventajas e inconvenientes de cada una de las formas de almacenamiento que disponemos, que son tres:&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;MOLAP&lt;/b&gt; (&lt;i&gt;OLAP Multidimensional&lt;/i&gt;): Es una estructura de almacenamiento multidimensional, muy optimizada para maximizar el rendimiento de las consultas. Los cambios que se producen en el origen de datos no serán visibles en el cubo hasta que se &lt;i&gt;procese&lt;/i&gt; la información. Los datos y agregaciones se comprimen y escriben en disco.&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;ROLAP&lt;/b&gt; (OLAP &lt;i&gt;Relacional&lt;/i&gt;): Almacenamiento en una base de datos relacional. Permite a los usuarios ver los datos en tiempo real, aunque por el contrario, es más lento que MOLAP.&lt;/p&gt;  &lt;p&gt;· &lt;b&gt;HOLAP&lt;/b&gt; (OLAP &lt;i&gt;Híbrido&lt;/i&gt;): Es una combinación de los modos MOLAP y ROLAP. Las agregaciones se comprimen y se escriben en disco.&lt;/p&gt;  &lt;p&gt;&lt;b&gt; &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Nota: &lt;/b&gt;&lt;i&gt;Procesar&lt;/i&gt; consiste en leer la información del origen de datos, pre-calcularla, almacenarla en el cubo y dejarla lista para ser consultada por las herramientas cliente.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="/BICorner/Lists/Posts/Attachments/169/SSAS_Recuperar_Datos_4A1FFF1F.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px" title="SSAS_Recuperar_Datos" border="0" alt="SSAS_Recuperar_Datos" src="/BICorner/Lists/Posts/Attachments/169/SSAS_Recuperar_Datos_thumb_4A1FFF1F.png" width="650" height="241" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Figura 1 Recuperación de datos del servidor&lt;/em&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;i&gt;Analysis Services&lt;/i&gt; permite ir seleccionando diversos sabores entre los extremos MOLAP y ROLAP en tiempo real, algunos de ellos basados en el uso de la caché automática (&lt;i&gt;proactive caching&lt;/i&gt;). Tenemos una serie de configuraciones de almacenamientos standard: ROLAP en tiempo real, HOLAP en tiempo real, MOLAP de baja latencia, MOLAP de latencia media, MOLAP automático, MOLAP programado y MOLAP. Además de poder realizar personalizaciones variando diversos parámetros sobre los modos citados. Puede ampliar información en la ayuda del producto.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Si te interesa esta información, y deseas convertirte en un profesional altamente especializado en Microsoft Business Intelligence, te recomiendo que nos pidas información sobre nuestro &lt;a href="http://www.solidq.com/squ/courses/Pages/Master-BI-Certified-Business-Intelligence-Microsoft-Espanol.aspx"&gt;&lt;strong&gt;Master en BI&lt;/strong&gt;&lt;/a&gt;. &lt;em&gt;Recuerda que hay poquitas plazas disponibles!!!&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Post publicados anteriormente como parte de este curso:&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=167&amp;amp;title=curso+ms+business+intelligence-ssas%3a+construyendo+y+desplegando+el+modelo+%2834%29"&gt;SSAS, Construyendo y desplegando el modelo (34)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=164&amp;amp;title=curso+ms+business+intelligence%e2%80%93ssas%3a+objetos+de+una+bbdd+de+analysis+services+%28parte+iv%e2%80%93dimensiones%29+%2833%29"&gt;SSAS, Objetos de una BBDD de Analysis Services parte IV – Dimensiones) (33)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=163&amp;amp;title=curso+ms+business+intelligence+-+ssas%3a+objetos+de+una+bbdd+de+analysis+services+%28parte+iii%e2%80%93cubos%29+%2832%29"&gt;SSAS, Objetos de una BBDD de Analysis Services (parte III – Cubos) (32)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=162&amp;amp;title=curso+ms+business+intelligence+-+ssas%3a+objetos+de+una+bbdd+de+analysis+services+%28parte+ii+-+datasource+views%29+%2831%29"&gt;SSAS, Objetos de una BBDD de Analysis Services (parte II – DataSource Views) (31)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=156&amp;amp;title=curso+ms+business+intelligence+-+ssas%3a+objetos+de+una+bbdd+de+analysis+services+%28parte+i+-+datasources%29+%2830%29"&gt;SSAS, Objetos de una BBDD de Analysis Services (parte I – DataSources) (30)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=155&amp;amp;title=curso+ms+business+intelligence+-+ssas%3a+cubos+olap%2c+conceptos+b%c3%a1sicos+%28parte+iii%29+%2829%29"&gt;SSAS, Cubos OLAP, Conceptos básicos (parte III) (29)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=154&amp;amp;title=curso+ms+business+intelligence+-+ssas%3a+cubos+olap%2c+conceptos+b%c3%a1sicos+%28parte+ii%29+%2828%29"&gt;SSAS, Cubos OLAP, Conceptos básicos (parte II) (28)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=152&amp;amp;title=curso+ms+business+intelligence+-+ssas%3a+cubos+olap%2c+conceptos+b%c3%a1sicos+%28parte+i%29+%2827%29"&gt;SSAS, Cubos OLAP, Conceptos básicos (parte I) (27)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=151&amp;amp;title=curso+ms+business+intelligence+-+ssas%3a+qu%c3%a9+es+analysis+services+%2826%29"&gt;SSAS, Qué es Analysis Services (26)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=149&amp;amp;title=curso+ms+business+intelligence+-+fin+del+m%c3%b3dulo+de+ssis+y+recapitulaci%c3%b3n+%2825%29"&gt;Fin del módulo de SSIS y recapitulación (25)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=143&amp;amp;title=cursos+ms+business+intelligence+ssis%3a+programar+la+ejecuci%c3%b3n+de+paquetes+%2824%29"&gt;SSIS, Programar la ejecución de paquetes (24)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=142&amp;amp;title=curso+ms+business+intelligence+-+ssis%3a+ejecuci%c3%b3n+de+paquetes+en+el+servidor+%2823%29"&gt;SSIS, Ejecución de paquetes en el servidor (23)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=140&amp;amp;title=curso+ms+business+intelligence+ssis%3a+despliegue+de+paquetes+%2822%29"&gt;SSIS, Despliegue de paquetes (22)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=132&amp;amp;title=curso+ms+business+intelligence+ssis%3a+configuraci%c3%b3n%2c+despliegue+y+administracion+%28parte+iii%29+%2821%29"&gt;SSIS Configuración, Despliegue y Administración (parte III) (21)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=130&amp;amp;title=curso+ms+business+intelligence+-+ssis%3a+configuracion%2c+despliegue+y+administraci%c3%b3n+%28parte+ii%29+%2820%29"&gt;SSIS Configuración, Despliegue y Administración (parte II) (20)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=129&amp;amp;title=curso+ms+business+intelligence+ssis%3a+configuraci%c3%b3n%2c+despliegue+y+administracion+%28parte+i%29+%2819%29"&gt;SSIS Configuración, Despliegue y Administración (parte I) (19)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=128&amp;amp;title=curso+ms+business+intelligence+-+ssis+logging+%28parte+iii%29+%2818%29"&gt;SSIS Logging (parte III) (18)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=126&amp;amp;title=curso+ms+business+intelligence+-+ssis+logging+%28parte+ii%29+%2817%29"&gt;SSIS Logging (parte II) (17)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=123&amp;amp;title=curso+ms+business+intelligence+-+ssis+loging+%28parte+i%29+%2816%29"&gt;SSIS Logging (parte I) (16)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=122&amp;amp;title=curso+ms+business+intelligence+ssis+buenas+pr%c3%a1cticas+%28parte+iii%29+%2815%29"&gt;SSIS Buenas prácticas (parte III) (15)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=120&amp;amp;title=curso+ms+business+intelligence+-+ssis+buenas+pr%c3%a1cticas+%28parte+ii%29+%2814%29"&gt;SSIS Buenas prácticas (parte II) (14)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=119&amp;amp;title=curso+ms+business+intelligence+-+ssis+buenas+pr%c3%a1cticas+%28parte+i%29+%2813%29"&gt;SSIS Buenas prácticas (parte I) (13)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=112&amp;amp;title=curso+ms+business+intelligence+-+ssis+data+flow+%2812%29"&gt;SSIS Data Flow (12)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=106&amp;amp;title=Curso+MS+Business+Intelligence+-+SSIS+ControlFlow+%2811%29"&gt;SSIS Control Flow (11)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=105&amp;amp;title=Curso+MS+Business+Intelligence+-+Introduccion+a+SSIS+%2810%29"&gt;Introducción a SSIS (10)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=104&amp;amp;title=Curso+MS+Business+Intelligence+-+Modelado+Dimensional+%289%29"&gt;Modelado Dimensional (9)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=103&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Introduccion+completa+%288%29"&gt;Introducción Completa (8)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=84&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Herramientas+cliente+SQL+Server+%287%29"&gt;Herramientas Cliente SQL Server (7)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=83&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Componentes+de+la+plataforma+Microsoft+BI+%286%29"&gt;Componentes de la Plataforma Microsoft BI (6)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=82&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Visi%c3%b3n+y+estrategia+%285%29"&gt;Microsoft BI – Visión y Estrategia (5)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=81&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Componentes+de+una+soluci%c3%b3n+de+BI+%284%29"&gt;Componentes de una Solución de BI (4)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=80&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Conceptos+importantes+sobre+BI+%e2%80%93+parte+II+%283%29"&gt;Conceptos importantes sobre BI – parte II (3)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=79&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Conceptos+importantes+sobre+BI+%e2%80%93+parte+I+%282%29"&gt;Conceptos importantes sobre BI – parte I (2)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=78&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Definici%c3%b3n+del+t%c3%a9rmino+BI+%281%29"&gt;Definición del término BI (1)&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;</description>
      <shortDescription>&lt;div class="ExternalClass8CCEDB71E252493B935194E754166191"&gt;&lt;p&gt;A continuación veremos estos tres conceptos, con el fin de cerrar la introducción. Una vez que tenemos desplegada una base de datos de &lt;i&gt;Analysis Services&lt;/i&gt; en un servidor, necesitamos procesar periódicamente para sincronizar los datos que se muestran con los de los orígenes relacionales. También debemos decidir los modos de almacenamiento de cada dimensión y de cada una de las particiones de los grupos de medidas. Y finalmente diseñar las agregaciones que quedarán almacenadas en la base de datos.&lt;/p&gt;  &lt;h6&gt;&lt;a name="_Toc291606224"&gt;Procesamiento (&lt;i&gt;Processing&lt;/i&gt;)&lt;/a&gt;&lt;/h6&gt;...&lt;/div&gt;</shortDescription>
      <category name="Cubos OLAP" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Cubos+OLAP" nameEnconded="Cubos+OLAP" />
      <category name="Cursos" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Cursos" nameEnconded="Cursos" />
      <category name="SSAS" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=SSAS" nameEnconded="SSAS" />
      <category name="Analysis Services" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Analysis+Services" nameEnconded="Analysis+Services" />
      <dc:language name="http://blogs.solidq.com/Pages/Home.aspx?language=Spanish" nameEncoded="Spanish" xmlns:dc="http://purl.org/dc/elements/1.1/"></dc:language>
    </item>
    <item>
      <title>Si yo aprendí inglés en Indonesia cuando tenía 32 años, nadie tiene excusa para no aprender</title>
      <ItemID>76</ItemID>
      <link>http://blogs.solidq.com/fguerrero/Post.aspx?ID=76&amp;title=Si+yo+aprend%c3%ad+ingl%c3%a9s+en+Indonesia+cuando+ten%c3%ada+32+a%c3%b1os%2c+nadie+tiene+excusa+para+no+aprender</link>
      <pubDate>2013-01-27T14:50:00+01:00</pubDate>
      <author>Fernando G. Guerrero</author>
      <authorEncoded>Fernando+G.+Guerrero</authorEncoded>
      <authorID>20</authorID>
      <slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">9</slash:comments>
      <comments>http://blogs.solidq.com/fguerrero/Post.aspx?ID=76&amp;title=Si+yo+aprend%c3%ad+ingl%c3%a9s+en+Indonesia+cuando+ten%c3%ada+32+a%c3%b1os%2c+nadie+tiene+excusa+para+no+aprender#1</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">None</wfw:commentRss>
      <description>&lt;div class="ExternalClass4B41820EF2E74FCC9F885A5F099378F7"&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;Hace un par de día, Carmen Torralvo, conocida y apreciada consultora de Recursos Humanos, comentó en un curso de Comunicación en &lt;a href="http://www.fundesem.es/"&gt;Fundesem&lt;/a&gt;, el contrasentido que supone que algunos profesionales desempleados se frustren en casa sin encontrar trabajo, mientras no se ponen manos a la obra en la mejora de su nivel de inglés, lo cual podría mejorar enormemente sus posibilidades de encontrar trabajo (dentro o fuera de España). 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;No estoy diciendo que esto sea la solución para el paro que tanto atenaza la sociedad española, y estoy seguro de que no era eso lo que Carmen quería transmitir. Irse a otro país a aprender inglés requiere algunos recursos económicos, cosa que no está al alcance de todo el mundo en estos momentos. 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;Sin embargo, lo que sí es cierto es que no paramos de quejarnos todos del desastre que supone para la mayoría de los españoles el desconocimiento de otros idiomas de un modo suficientemente eficaz como para poderlos utilizar en el trabajo. Le echamos la culpa al sistema educativo español, al doblaje de las películas, a los ministros de educación, y a nuestros profesores por no habernos motivado al respecto. Pero, mientras nos escudamos en todas estas excusas, no hacemos nada para mejorar nuestra situación. 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;Así que me acordé de mi propia experiencia al respecto, y pienso que podría ser interesante para algunas personas que podrían sentirse intimidados ante la perspectiva de aprender un nuevo idioma ya a una edad más o menos avanzada. 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;Como la mayoría de los españoles de mi edad (nací en el 1959) aprendí francés en la escuela. La razón fundamental de la elección del idioma francés en vez del inglés, supongo que era la escasez de profesores de inglés en aquellos tiempos. Recuerdo que bien poco francés aprendí en los primeros dos años de bachiller (de mis 11 a 12 años de edad), pero en tercero de bachiller tuve la inmensa suerte de tener un excelente profesor de francés en los Salesianos de Úbeda (D. Francisco Ruiz Cayola) quien, utilizando el sistema Sonimage nos permitió empezar a hablar y entender este idioma, en vez de enfrascarnos en tediosas clases de gramática. Otro azar del destino me permitió ese verán pasar algo más de un mes con unos tíos míos en Le Havre (Normandía), lo que me permitió practicar el idioma mucho más de lo que hubiera pensado. Y el remate fue un nuevo curso de francés con D. Francisco, que terminó de afianzar mis conocimientos de este idioma. Tras ese curso trasladaron a mi familia a Alicante, con lo que no pude seguir estudiando con D. Francisco. Sin embargo, el francés que aprendí con él, me permitió pasar el francés del bachiller superior, la reválida, el COU y la selectividad, sin mayores esfuerzos, viviendo básicamente de las rentas de su excelente formación en esta materia. 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;Como dato curioso, un profesor de latín en Úbeda (D. Evaristo) nos convenció de que teníamos que aprender a hablar en latín, porque fuera de España todo el mundo hablaba latín. Además, si esperábamos poder ir al parque de atracciones Tívoli en Copenhague, más nos valía saber latín o no nos dejarían ni entrar. El caso es que nos lo creímos, y mejor o peor logramos pasar este trago, con exámenes anunciados mediante la fatídica orden &amp;quot;Condite omnia&amp;quot;. La verdad es que este idioma caló en nosotros más de lo que la mayoría hubiéramos pensado inicialmente. De hecho, recuerdo que en el grupo de teatro Molière, llamábamos &amp;quot;crumena&amp;quot; al monedero donde guardábamos los fondos de este grupo de teatro juvenil. 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;Pasaron muchos años, llegué a la universidad, y en la escuela de Caminos se supone que debíamos aprender inglés en tercero. Pero la buena de la profesora (una americana muy agradable) con solo asistir al examen teníamos garantizado el aprobado. De hecho, nos avisaba al empezar el examen: &amp;quot;lo que sepáis lo ponéis, y lo que no me lo preguntáis&amp;quot;. Resultado: ni me molesté en intentar aprender inglés para aprobar esta asignatura. 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;Desde esas fechas, ni recuerdo cuántas veces me matriculé y comencé cursos de inglés. No recuerdo cuántos libros, casetes, y métodos milagro compré, sin ningún progreso, más allá de &amp;quot;my taylor is rich&amp;quot;. 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;Mientras tanto, armado de un voluminoso diccionario español-inglés Collins, me las ingeniaba para medio-entender los artículos tecnológicos que debía leer en inglés. Ni idea de gramática inglesa, que nunca estudié. Aunque algo de vocabulario terminé reteniendo, a fuerza de buscar repetidamente los mismo términos del mundo tecnológico, no tenía ni la más remota idea de su pronunciación, y si los hubiera oído en boca de algún angloparlante no hubiera sido capaz de identificarlos. 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;Mucha de la música que escuchaba estaba cantada en inglés. Pero para mí la voz era simplemente un instrumento más, al no entender nada de lo que decían. Algunas veces iba al cine a ver alguna película en versión original subtitulada, pero de la voz original solo apreciaba el tono, al no entender nada más que lo que podía leer en los subtítulos (perdiéndome de paso mucho de lo que podría haber disfrutado de la película si mis ojos no hubieran estado tan pendientes de leer los subtítulos). 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;En las conferencias a las que asistía me tocaba ponerme auriculares y escuchar la traducción simultánea, al no ser capaz de entender nada de inglés. Y además necesitaba algún intérprete para ayudarme en las reuniones, ya que no hubiera podido comunicarme con mis interlocutores de otro modo. 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;Un frio día de febrero del 1991, mientras esperaba en el aeropuerto de Barajas para volar a París para la conferencia PC-Forum 91, recibí una llamada de un viejo amigo (Reynaldo Barbosa) que me cambiaría la vida. Me preguntó si me apetecería ir a un proyecto en Indonesia, como experto de la Comisión Europea en Análisis de Sistemas, ya que se había producido una vacante y creía que yo podría ser la persona adecuada para cubrir el puesto. Mi primera reacción interna fue preguntarme &amp;quot;¿Dónde está Indonesia?&amp;quot; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;La empresa que me envió a Indonesia me preguntó por mi nivel de inglés, y les confirmé mi nulo conocimiento de este idioma. Me aseguraron que no representaría ningún problema, ya que la mitad del equipo del proyecto era español, y la otra mitad alemán, liderado por un ingeniero alemán (a quien yo tendría que reportar) que hablaba castellano perfectamente. Cómo logré escribir mi currículum en inglés, ayudado por mi viejo amigo el diccionario Collins, durante varios días, sigue siendo un misterio para mí. Pero cómo ese currículum logró pasar el filtro de la Comisión Europea, y del gobierno de Indonesia, es aún más asombroso. Supongo que hicieron un ejercicio de apreciar el fondo de mi experiencia, y no el horrible texto del currículo, ya que me aceptaron, incluso entusiastamente, para participar en el proyecto. 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;A mis 32 años, acompañado por mi esposa y nuestra hija Rocío, que tenía 5 años por aquél entonces, volamos a Indonesia un día de Mayo del 1991, preparados a enfrentarnos a lo desconocido, y aprender todo lo posible durante los siguientes 11 meses de nuestra vida. Nos acompañaban otros ingenieros españoles, por lo que pensé que era verdad que no debería temer mi desconocimiento del idioma inglés en este proyecto. Al llegar a Yakarta, conocí a algunos de los ingenieros alemanes del proyecto, pero pude comunicarme con ellos sin mayores problemas, parte en castellano, parte en francés. 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;La primera reunión del proyecto a la que asistí, el director de proyecto se dirigió a todos nosotros en un idioma que me pareció inglés. No entendí nada de nada de lo que dijo, y pregunté discretamente a mi amigo Javier Gras (que estaba a mi lado) que me resumiera lo que había dicho el director. Javier, sin más historias me lo resumió muy gráficamente diciéndome simplemente &amp;quot;que dice que estás jo%·$%do. Que a partir de este momento, el idioma oficial del proyecto es el inglés a todos los efectos&amp;quot;. No solo eso, sino que al día siguiente teníamos una reunión con el Director General de Minas y Energía, donde le presentaría a todo el equipo. Es imaginable el pánico que sentí en ese momento. 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;Como no soy persona a quien le guste mantener una situación de pánico durante mucho tiempo, esa misma tarde me fui a una academia local de inglés, donde me hicieron una prueba de ingreso. No sé cómo logré entenderme con el examinador, no recuerdo que tuviéramos ningún idioma común, aunque creo recordar que terminamos comunicándome por escrito, pero al preguntarle que según mi nivel de inglés cuánto tiempo me llevaría poder hablar y entender inglés, él me aseguró de que en menos de tres años lo conseguiría. Yo le dije asustado &amp;quot;¿tres años? tengo una reunión en el ministerio mañana!!!&amp;quot;. 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;La reunión del día siguiente se saldó con un simple &amp;quot;Nice meeting you&amp;quot;, que aprendí de memoria gracias a mi amigo Javier. Esa tarde fui a la academia, pero inmediatamente me di cuenta de la lentitud del sistema, diseñado para gente local que quisieran aprender inglés a largo plazo, así que abandoné ese curso definitivamente tras la primera clase. Hablé con algunos compañeros, y me fui a una librería donde compré un libro para preparar el TOEFL (Test of English as a Foreign Language) que incluía algunos casetes. Esa misma noche me escuche el primer casete, aunque no entendí gran cosa, por supuesto. 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;Como lo primero que tenía que hacer era analizar la situación actual de la infraestructura informática del proyecto, y no teníamos ni oficinas definitivas, me sirvió de excusa para encerrarme en mi despacho y estudiar la documentación y analizar necesidades y alternativas. Para obligarme a hablar y escuchar, aproveché que tenía que hacerme una idea de mercado informático local, y aproveché varios días visitando a proveedores de sistemas y servicios informáticos locales, mientras consumía casetes del TOEFL como un loco. Cómo logré hacerme entender con estos distribuidores cuando me reuní con ellos, es aún un misterio para mí. De todos modos, les pedí a todos que me enviaran las ofertas por escrito, confiando en mi mayor control del inglés escrito que el hablado. Sin embargo, un problema inmediato sería cómo responderles a ellos, ya que no hubiera sido capaz de escribir en inglés en absoluto. 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;Uno de los primeros fines de semana que pasé en Yakarta descubrí que en ese país no había cintas de vídeo, sino que habían dado el salto directamente al Laser Disc. Al ver la cantidad de películas disponibles para alquilar en laser Disc, se me ocurrió que podría aprovechar mi gusto por el cine, con mi necesidad de aprender inglés. Compré el lector de laser disc, y directamente alquilé algunas películas. Las películas venían en inglés, con subtítulos opcionales en bahasa indonesia. A partir de ese día, me convertí en un asiduo consumidor de películas en laser disc, varias cada semana, sin subtítulos ni en castellano ni en inglés, pero que estoy seguro fueron claves para mi rápido aprendizaje del inglés. También compré casetes de música, que llevaran las letras de las canciones en inglés, para poder identificar cómo sonaban dichas palabras. 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;Quizá no haya visto nunca tantas películas como durante esas primeras semanas en Yakarta. Todas lasta tardes, todos los fines de semana, empleados a conciencia a aprender todo el inglés que pudiera asimilar. 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;Según recuerdo, solo pasaron dos o tres semanas antes de que pudiera empezar a comunicarme limitada pero razonablemente con el personal de la oficina. Como todo el mundo estaba muy ocupado poniendo en marcha el proyecto, mi falta de conocimiento de inglés pasó más o menos desapercibido. Tengo que añadir que la inmensa amabilidad del equipo local del proyecto, me ayudó enormemente a sentirme integrado, a pesar de mis limitaciones de comunicación. 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;Fueron días muy duros, agotadores, estudiando a marchas forzadas, y siempre con el temor de que mi bajo nivel de inglés pudiera ponerme en evidencia, sin nadie que pudiera cubrirme. 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;Para animarme a seguir estudiando y no derrotarme, me fijé una meta: pasar el TOEFL antes de irme de volver a España. Me compré más libros y más casetes, seguí alquilando películas, y comprando CDs y casetes de música de los que pudiera leer las letras también. Empecé a poder comunicarme poco a poco, y un día ocurrió aquello que llevaba esperando tanto tiempo: empecé a soñar en inglés. Soñé que le hablaba en inglés a mi padre, y que me asombraba de que él no me entendiera, siendo tan claro lo que le estaba diciendo. Me desperté frustrado por la falta de comunicación, pero de pronto me di cuenta de lo que acababa de conseguir. 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;Entonces me fui dando cuenta, poco a poco, de que cada vez traducía menos lo que quería decir, sino que algunas expresiones me iban saliendo en inglés naturalmente, sin pensarlas en castellano primero. Además había expresiones que oía que ya no necesitaba traducir al castellano para entenderlas, sino que las entendía directamente en inglés. De pronto un día, escuchando una canción en la radio, que había oído miles de veces en mi juventud, reconocí algunas frases, y me emocioné. 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;Entonces empecé a disfrutar de utilizar este idioma para comunicarme con la gente de mi entorno más efectivamente. Además, por el camino, terminé aprendiendo algo de bahasa indonesia también, con lo que conseguí comunicarme con compañeros de trabajo (los conductores, por ejemplo) que no hablaban inglés. 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;Para darme más incentivos personales al aprendizaje del inglés, me propuse ampliar estudios en EEUU tras mi estancia en Indonesia. Me informé de los requisitos y me preparé los exámenes del GRE además del TOEFL, para poder ser admitido en un par de universidades que ofrecían un master de Informática aplicada a la Ingeniería civil (Oregon State y la Northwestern University). 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;Estudié a fondo, en los tiempos libres tras unas jornadas de trabajo agotadoras, donde me tocó diseñar el sistema de información del proyecto de micro-centrales hidroeléctricas en el que estábamos encuadrados, y además disfrutando todo lo posible con mi familia y amigos de la estancia en ese maravilloso país. 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;El caso es que la motivación personal funcionó. Mi trabajo en el proyecto fue exitoso, sin que mi nivel inicial de inglés hubiera supuesto una barrera apreciable para su ejecución. Terminé pasando los exigentes requisitos de admisión, y siendo admitido en ambas universidades para comenzar en Agosto de ese mismo año. Mi mercado laboral se expandió definitivamente a todo el globo, y como diría un angloparlante &amp;quot;I never looked back&amp;quot; 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;Volví de Indonesia en abril del 1992, y no me fui a ampliar estudios a los EEUU, por motivos personales. Pasé unos años más fuera de España en destinos donde no se hablaba inglés, sino francés (Marruecos) o español (Bolivia). Pero durante esos años, disfrutaba de ver películas en inglés, subtituladas o no. Leía frecuentemente publicaciones en inglés, sin necesitar a mi amigo Collins, a quien sustituí por un diccionario Webster del idioma inglés (no español-inglés). 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;A finales del 1998 terminé aceptando un trabajo como profesor de SQL Server en Inglaterra, y me tocó refrescar mis conocimientos de inglés muy rápidamente de nuevo. Mi día a día terminó siendo impartir clases de SQL Server en inglés 40 horas a la semana, a clientes angloparlantes. Empecé a escribir en grupos de usuarios de SQL Server, artículos y hasta un libro. Empecé a participar activamente como ponente en conferencias internacionales, y ser un poco conocido en este mundillo. 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;En el 2002 decidí montar SolidQ con unos pocos amigos de EEUU, y aquí sigo casi 11 años más tarde. Mi día a día es escribir y hablar en español e inglés con colegas, amigos y clientes. Mi mundo profesional ya no se limita al mercado hispanoparlante, desde esas semanas del 1991 en el que empecé a consumir casetes del TOEFL como si fueran rosquillas. 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;Y todo esto, gracias a que mi viejo amigo Reynaldo me sugirió ir a Indonesia a un proyecto de la Comisión Europea, hace casi 22 años. Y gracias fundamentalmente a mi esposa, que siempre me ha apoyado al 100% en hacer todo lo posible para conseguir nuestros sueños, a pesar de las barreras que nos hemos ido encontrando por el camino, y a pesar de los sacrificios familiares que este esfuerzo extra pudiera suponer. 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;Esta historia no es nada especial, es simplemente el proceso de no dejarse derrotar por una barrera, aunque sé que era enorme para mí en aquellos tiempos, y luchar para derribarla, con toda la energía interior que pueda encontrarse. 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;Yo lo logré. ¿A qué esperas para lograrlo?&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <shortDescription>&lt;div class="ExternalClass4B41820EF2E74FCC9F885A5F099378F7"&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;Hace un par de día, Carmen Torralvo, conocida y apreciada consultora de Recursos Humanos, comentó en un curso de Comunicación en &lt;a href="http://www.fundesem.es/"&gt;Fundesem&lt;/a&gt;, el contrasentido que supone que algunos profesionales desempleados se frustren en casa sin encontrar trabajo, mientras no se ponen manos a la obra en la mejora de su nivel de inglés, lo cual podría mejorar enormemente sus posibilidades de encontrar trabajo (dentro o fuera de España). 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Times New Roman;font-size:12pt"&gt;No estoy diciendo que esto sea la solución para el paro que tanto atenaza la...&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</shortDescription>
      <category name="Educación" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Educaci%c3%b3n" nameEnconded="Educaci%c3%b3n" />
      <category name="Emprendedores" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Emprendedores" nameEnconded="Emprendedores" />
      <category name="temas personales" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=temas+personales" nameEnconded="temas+personales" />
      <dc:language name="http://blogs.solidq.com/Pages/Home.aspx?language=Spanish" nameEncoded="Spanish" xmlns:dc="http://purl.org/dc/elements/1.1/"></dc:language>
    </item>
    <item>
      <title>Automatizando la generación de paquetes SSIS</title>
      <ItemID>168</ItemID>
      <link>http://blogs.solidq.com/BICorner/Post.aspx?ID=168&amp;title=Automatizando+la+generaci%c3%b3n+de+paquetes+SSIS</link>
      <pubDate>2013-01-23T10:47:30+01:00</pubDate>
      <author>Salvador Ramos</author>
      <authorEncoded>Salvador+Ramos</authorEncoded>
      <authorID>33</authorID>
      <comments>None</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">None</wfw:commentRss>
      <description>&lt;div class="ExternalClass0586467D50FF49A3ACAD02D278B6C18B"&gt;&lt;p&gt;Tras muchas experiencias en desarrollo de procesos ETL con Integration Services, en los que buena parte de ellos tienen como destino final un Data Mart o un Data Warehouse, hemos ido recopilando buenas prácticas, pros y contras de dar un enfoque u otro a la solución de cada problema, cuáles de ellas obtienen mejores resultados de rendimiento según qué casos, etc.&lt;/p&gt;  &lt;p&gt;Por otro lado, cuando llevas años haciendo procesos de este tipo, ves que hay muchas casuisticas que se repiten en buena parte de los procesos que tienes que diseñar, incluso ya tienes una imagen grabada en tu mente de cómo son algunos de estos procesos, debido a que los has repetido multitud de veces. Por ejemplo, los procesos de carga de una dimensión que tiene atributos a los que vas a aplicar SCD tipo 1 o SCD tipo 2.&lt;/p&gt;  &lt;p&gt;Y si estos procesos son tan repetitivos ¿Por qué no automatizarlos? Esa fue la pregunta que nos hicimos hace tiempo, y a partir de ahí nos pusimos a trabajar en el tema.&lt;/p&gt;  &lt;p&gt;¿Cuál fue nuestra solución? Crear un generador de paquetes que permitiera crear de forma automatizada paquetes que solucionasen casuísticas muy frecuentes. Comenzamos implementando una primera versión que era capaz de generar automáticamente un paquete que sincronizaba dos tablas. Le indicabas el origen, la tabla de origen, y el destino, y a partir de esa información generaba un paquete que sincronizaba el origen con el destino y además creaba una tabla reflejando el historial de cambios que se habían producido. Por tanto, además de sincronizar, auditaba cambios.&lt;/p&gt;  &lt;p&gt;De ahí seguimos avanzando y nos planteamos ¿Y si pudiera rellenar los datos del origen, las transformaciones más frecuentes (lookups, merge join, derived columns) en un Excel y que a partir de ahí me generase el paquete para ciertos procesos ETL que son repetitivos?&lt;/p&gt;  &lt;p&gt;Bien pues ya lo tenemos desde hace un tiempo disponible. ¿Te imaginas la cantidad de tiempo que te puede ahorrar, tanto de desarrollo como de mantenimiento y solución de bugs? Muchísimo, así es.&lt;/p&gt;  &lt;p&gt;Ahora con este generador de paquetes de SSIS, puedes generar un Excel que incluya un buen porcentaje de los paquetes ETL de cualquier proyecto en el que quieras hacer procesos que traen información a un área de staging y posteriormente desde ese área de staging alimentan el Data Mart o Data Warehouse. Por supuesto, recopilando todas las buenas prácticas que implementamos en nuestros proyectos habitualmente.&lt;/p&gt;  &lt;p&gt;Eso si, siempre habrá algunos más específicos que tengas que generar como hasta ahora, desde Visual Studio, pero serán los mínimos.&lt;/p&gt;  &lt;p&gt;Si quieres conocer más sobre nuestro Generador de paquetes y ver un caso práctico en el que se muestra desde el excel que rellenamos hasta el resultado final, te recomiendo ver este video:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.youtube.com/watch?v=uxkHMS3DB_k&amp;amp;list=UUu2F7ipsMrBg1IhBjMRWeLA&amp;amp;index=6" target="_blank"&gt;&lt;strong&gt;Video Generando Paquetes SSIS automáticamente&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Y leer estas dos entradas anteriores:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;a href="/BICorner/Post.aspx?ID=160&amp;amp;title=generando+paquetes+de+ssis+autom%c3%a1ticamente" target="_blank"&gt;Post generando Paquetes de SSIS automáticamente&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;a href="/BICorner/Post.aspx?ID=157&amp;amp;title=%c2%bfdesarrollamos+paquetes+de+ssis+o+proceso+de+etl?" target="_blank"&gt;¿Desarrollamos paquetes de SSIS o procesos de ETL?&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <shortDescription>&lt;div class="ExternalClass0586467D50FF49A3ACAD02D278B6C18B"&gt;&lt;p&gt;Tras muchas experiencias en desarrollo de procesos ETL con Integration Services, en los que buena parte de ellos tienen como destino final un Data Mart o un Data Warehouse, hemos ido recopilando buenas prácticas, pros y contras de dar un enfoque u otro a la solución de cada problema, cuáles de ellas obtienen mejores resultados de rendimiento según qué casos, etc.&lt;/p&gt;  &lt;p&gt;Por otro lado, cuando llevas años haciendo procesos de este tipo, ves que hay muchas casuisticas que se repiten en buena parte de los...&lt;/p&gt;&lt;/div&gt;</shortDescription>
      <category name="ETL" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=ETL" nameEnconded="ETL" />
      <category name="Integration Services" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Integration+Services" nameEnconded="Integration+Services" />
      <category name="SSIS" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=SSIS" nameEnconded="SSIS" />
      <category name="Generador paquetes SSIS" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Generador+paquetes+SSIS" nameEnconded="Generador+paquetes+SSIS" />
      <dc:language name="http://blogs.solidq.com/Pages/Home.aspx?language=Spanish" nameEncoded="Spanish" xmlns:dc="http://purl.org/dc/elements/1.1/"></dc:language>
    </item>
    <item>
      <title>Articulo publicado en la revista DotNetMania nº99</title>
      <ItemID>239</ItemID>
      <link>http://blogs.solidq.com/ElRinconDelDBA/Post.aspx?ID=239&amp;title=Articulo+publicado+en+la+revista+DotNetMania+n%c2%ba99</link>
      <pubDate>2013-01-21T13:21:04+01:00</pubDate>
      <author>Enrique Catalá</author>
      <authorEncoded>Enrique+Catal%c3%a1</authorEncoded>
      <authorID>38</authorID>
      <comments>None</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">None</wfw:commentRss>
      <description>&lt;div class="ExternalClass5E3558B9D8E24F5CBA4E9DA8BC239549"&gt;&lt;p&gt;Ya puedes leernos en el número de Enero de 2013 de la revista DotNetMania &lt;a href="http://www.dotnetmania.com/"&gt;http://www.dotnetmania.com/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;En este artículo (el segundo de una serie de 4) hablamos mi compañero Enrique Puig y yo sobre “&lt;em&gt;Buenas prácticas de codificación para capas de acceso a datos de aplicaciones&lt;/em&gt;”.  Os recordamos que en esa serie de 4 artículos vamos a desmenuzar las distintas posibilidades que tenemos a la hora de enfrentarnos al desarrollo de capas de acceso a datos.&lt;/p&gt;  &lt;p&gt;En esta ocasión nos centramos en los patrones de bajo nivel para capas de acceso a datos, tanto dinámicos como estáticos.&lt;/p&gt;  &lt;p&gt;No te lo pierdas!&lt;/p&gt;&lt;/div&gt;</description>
      <shortDescription>&lt;div class="ExternalClass5E3558B9D8E24F5CBA4E9DA8BC239549"&gt;&lt;p&gt;Ya puedes leernos en el número de Enero de 2013 de la revista DotNetMania &lt;a href="http://www.dotnetmania.com/"&gt;http://www.dotnetmania.com/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;En este artículo (el segundo de una serie de 4) hablamos mi compañero Enrique Puig y yo sobre “&lt;em&gt;Buenas prácticas de codificación para capas de acceso a datos de aplicaciones&lt;/em&gt;”.  Os recordamos que en esa serie de 4 artículos vamos a desmenuzar las distintas posibilidades que tenemos a la hora de enfrentarnos al desarrollo de capas de acceso a datos.&lt;/p&gt;  &lt;p&gt;En esta ocasión nos centramos en los patrones de...&lt;/p&gt;&lt;/div&gt;</shortDescription>
      <category name="Artículos y revistas" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Art%c3%adculos+y+revistas" nameEnconded="Art%c3%adculos+y+revistas" />
      <category name="noticias SQL Server" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=noticias+SQL+Server" nameEnconded="noticias+SQL+Server" />
      <dc:language name="http://blogs.solidq.com/Pages/Home.aspx?language=Spanish" nameEncoded="Spanish" xmlns:dc="http://purl.org/dc/elements/1.1/"></dc:language>
    </item>
    <item>
      <title>Zerkana organiza el evento “Novedades en Windows 8, Windows Server 2012 y SQL 2012” en Alicante</title>
      <ItemID>11</ItemID>
      <link>http://blogs.solidq.com/SolidQ/Post.aspx?ID=11&amp;title=Zerkana+organiza+el+evento+%e2%80%9cNovedades+en+Windows+8%2c+Windows+Server+2012+y+SQL+2012%e2%80%9d+en+Alicante</link>
      <pubDate>2013-01-16T18:25:00+01:00</pubDate>
      <author>SolidQ</author>
      <authorEncoded>SolidQ</authorEncoded>
      <authorID>150</authorID>
      <comments>None</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">None</wfw:commentRss>
      <description>&lt;div class="ExternalClass2140F42C880E45FDAF42BE00513EB48F"&gt;&lt;p&gt;El próximo  viernes, 18 de Enero se celebrará un encuentro organizado por Zerkana, en colaboración con SolidQ, Microsoft, la Diputación de Alicante y Microsoft TechNet. &lt;/p&gt;
&lt;p&gt;En el evento contaremos con Salvador Ramos y Miguel Egea, mentores en SolidQ y Microsoft MVPs en SQL.&lt;/p&gt;
&lt;p&gt;Aquí os dejamos la agenda del evento:&lt;/p&gt;
&lt;p&gt;&lt;img width="573" height="384" src="/SolidQ/PublishingImages/agendaZerkana.JPG" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;Lugar: &lt;/p&gt;
&lt;p&gt;Hogar Provincial - Aula formación Nº7 &lt;br /&gt;Excma. Diputación de Alicante &lt;br /&gt;Calle del Hogar Provincial, 33, 03559 Alicante&lt;/p&gt;
&lt;p&gt;¡&lt;a href="http://ws2012rocks.msregistration.com/abstract.aspx?id=7d701162-706c-474e-a801-3ad70ab0658f&amp;amp;Eventid=273" target="_blank"&gt;Regístrate ya&lt;/a&gt;!&lt;/p&gt;&lt;/div&gt;</description>
      <shortDescription>&lt;div class="ExternalClass2140F42C880E45FDAF42BE00513EB48F"&gt;&lt;p&gt;El próximo  viernes, 18 de Enero se celebrará un encuentro organizado por Zerkana, en colaboración con SolidQ, Microsoft, la Diputación de Alicante y Microsoft TechNet. &lt;/p&gt;
&lt;p&gt;En el evento contaremos con Salvador Ramos y Miguel Egea, mentores en SolidQ y Microsoft MVPs en SQL.&lt;/p&gt;
&lt;p&gt;Aquí os dejamos la agenda del evento:&lt;/p&gt;
&lt;p&gt;&lt;img width="573" height="384" src="/SolidQ/PublishingImages/agendaZerkana.JPG" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;Lugar: &lt;/p&gt;
&lt;p&gt;Hogar Provincial - Aula formación Nº7 &lt;br /&gt;Excma. Diputación de Alicante &lt;br /&gt;Calle del Hogar Provincial, 33, 03559 Alicante&lt;/br&gt;
&lt;p&gt;¡&lt;a href="http://ws2012rocks.msregistration.com/abstract.aspx?id=7d701162-706c-474e-a801-3ad70ab0658f&amp;amp;Eventid=273" target="_blank"&gt;Regístrate ya&lt;/a&gt;!&lt;/p&gt;&lt;/br&gt;&lt;/p&gt;&lt;/div&gt;</shortDescription>
      <category name="Events" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Events" nameEnconded="Events" />
      <dc:language name="http://blogs.solidq.com/Pages/Home.aspx?language=Spanish" nameEncoded="Spanish" xmlns:dc="http://purl.org/dc/elements/1.1/"></dc:language>
    </item>
    <item>
      <title>Diplomado de Acreditación Técnica como especialista en soluciones de Business Intelligence</title>
      <ItemID>10</ItemID>
      <link>http://blogs.solidq.com/SolidQ/Post.aspx?ID=10&amp;title=Diplomado+de+Acreditaci%c3%b3n+T%c3%a9cnica+como+especialista+en+soluciones+de+Business+Intelligence</link>
      <pubDate>2013-01-14T20:14:00+01:00</pubDate>
      <author>SolidQ</author>
      <authorEncoded>SolidQ</authorEncoded>
      <authorID>150</authorID>
      <comments>None</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">None</wfw:commentRss>
      <description>&lt;div class="ExternalClass5255731EBBD6476BAF0F3665F2D899BF"&gt;&lt;p&gt;Durante las próximas tres semanas se llevará a cabo un curso de Business Intelligence,  cuyo objetivo será el de ofrecer un título de acreditación técnica como especialista en soluciones de BI. &lt;/p&gt;
&lt;p&gt;Dicha acreditación a cargo de Jesús Gil Velasco, mentor en SolidQ, está compuesta por una serie de webcasts en vivo, presentando la información clave para entender y ejecutar  la oportunidad de negocio y los pasos puntales para empezar a implementar soluciones de BI.&lt;/p&gt;
&lt;p&gt;Al finalizar este diplomado, presentaremos el examen de acreditación Técnico para Soluciones de Business Intelligence.&lt;/p&gt;
&lt;h3&gt;Agenda&lt;/h3&gt;
&lt;table width="595" border="0" cellspacing="0" cellpadding="2"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="69" valign="top"&gt;Sesión 1&lt;/td&gt;
&lt;td width="159" valign="top"&gt;16 de Enero 12:00 pm (UTC-06:00)&lt;/td&gt;
&lt;td width="248" valign="top"&gt;MPN Technical Specialist BI: Recursos Técnicos de solución de Business Intelligence&lt;/td&gt;
&lt;td width="117" valign="top"&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032540140&amp;amp;Culture=es-MX&amp;amp;community=0" target="_blank"&gt;Registro a la sesión&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td width="69" valign="top"&gt;Sesión 2&lt;/td&gt;
&lt;td width="159" valign="top"&gt;23 de Enero 12:00 pm (UTC-06:00)&lt;/td&gt;
&lt;td width="248" valign="top"&gt;MPN Technical Specialist BI: Beneficios para el cliente con recursos de Microsoft Business Intelligence&lt;/td&gt;
&lt;td width="131" valign="top"&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032540142&amp;amp;Culture=es-MX&amp;amp;community=0" target="_blank"&gt;Registro a la sesión&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td width="69" valign="top"&gt;Sesión 3&lt;/td&gt;
&lt;td width="159" valign="top"&gt;30 de Enero 12:00 pm (UTC-06:00)&lt;/td&gt;
&lt;td width="248" valign="top"&gt;MPN Technical Specialist BI: Conoce las soluciones de BI de otros fabricantes&lt;/td&gt;
&lt;td width="131" valign="top"&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032540144&amp;amp;Culture=es-MX&amp;amp;community=0" target="_blank"&gt;Registro a la sesión&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td width="69" valign="top"&gt;Sesión 4&lt;/td&gt;
&lt;td width="159" valign="top"&gt;6 de Febrero 2:00 pm (UTC-06:00)&lt;/td&gt;
&lt;td width="248" valign="top"&gt;MPN Technical Specialist BI: Examen de Acreditación&lt;/td&gt;
&lt;td width="131" valign="top"&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032540146&amp;amp;Culture=es-MX&amp;amp;community=0" target="_blank"&gt;Registro a la sesión&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;El requisito que piden es que estés asociado a la cuenta del Microsoft Partner Network de tu empresa. Si aún no lo estás, puedes encontrar &lt;a href="http://mpnmexico.wordpress.com/2012/07/11/programa-de-especialista-en-venta-de-soluciones-microsoft/" target="_blank"&gt;aquí&lt;/a&gt; los pasos para hacerlo.&lt;/p&gt;
&lt;p&gt;Para más información, visite la &lt;a href="http://mpnmexico.wordpress.com/2013/01/03/acredita-a-tu-area-tecnica-como-especialista-en-preventa-de-soluciones-de-bi/" target="_blank"&gt;página del evento&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="/SolidQ/Lists/Posts/Attachments/10/c7af0a65-809e-449d-8602-17b414874c63_2_5BBE6AE3.jpg"&gt; &lt;/a&gt;&lt;img alt="c7af0a65-809e-449d-8602-17b414874c63.jpg" src="/SolidQ/PublishingImages/partner.jpg" style="margin:5px" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <shortDescription>&lt;div class="ExternalClass5255731EBBD6476BAF0F3665F2D899BF"&gt;&lt;p&gt;Durante las próximas tres semanas se llevará a cabo un curso de Business Intelligence,  cuyo objetivo será el de ofrecer un título de acreditación técnica como especialista en soluciones de BI. &lt;/p&gt;
&lt;p&gt;Dicha acreditación a cargo de Jesús Gil Velasco, mentor en SolidQ, está compuesta por una serie de webcasts en vivo, presentando la información clave para entender y ejecutar  la oportunidad de negocio y los pasos puntales para empezar a implementar soluciones de BI.&lt;/p&gt;
&lt;p&gt;Al finalizar este diplomado, presentaremos...&lt;/p&gt;&lt;/div&gt;</shortDescription>
      <category name="Events" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Events" nameEnconded="Events" />
      <dc:language name="http://blogs.solidq.com/Pages/Home.aspx?language=Spanish" nameEncoded="Spanish" xmlns:dc="http://purl.org/dc/elements/1.1/"></dc:language>
    </item>
    <item>
      <title>Curso MS Business Intelligence-SSAS: Construyendo y desplegando el modelo (34)</title>
      <ItemID>167</ItemID>
      <link>http://blogs.solidq.com/BICorner/Post.aspx?ID=167&amp;title=Curso+MS+Business+Intelligence-SSAS%3a+Construyendo+y+desplegando+el+modelo+(34)</link>
      <pubDate>2013-01-11T10:26:22+01:00</pubDate>
      <author>Salvador Ramos</author>
      <authorEncoded>Salvador+Ramos</authorEncoded>
      <authorID>33</authorID>
      <comments>None</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">None</wfw:commentRss>
      <description>&lt;div class="ExternalClassABE470E2D1384B0181E5C686204392DD"&gt;&lt;p&gt;&lt;em&gt;Tras el descanso Navideño, volvemos con la publicación del curso de Microsoft Business Intelligence, continuamos con los capítulos relativos a SQL Server Analysis Services (SSAS). Vamos con el siguiente &lt;/em&gt;:)&lt;/p&gt;  &lt;p&gt;Una vez hemos finalizado la construcción de nuestros cubos, el siguiente paso sería desplegarlo sobre un servidor de Analysis Services, para ello tenemos varias alternativas: &lt;/p&gt;  &lt;p&gt;· &lt;u&gt;Hacer el despliegue desde Visual Studio&lt;/u&gt;: en nuestro proyecto, vamos al menú ‘Build’ y seleccionar la opción ‘Deploy’, realizándose el despliegue sobre el servidor indicado en las propiedades de dicho proyecto. Como en cualquier proyecto de Visual Studio, podremos tener configurados varios entornos (desarrollo, pruebas, pre-producción, producción, etc.) y por tanto, desplegar en cualquiera de ellos.&lt;/p&gt;  &lt;p&gt;· &lt;u&gt;Utilizar el &lt;i&gt;Deployment Wizard&lt;/i&gt;&lt;/u&gt;: éste generará un archivo XML/A que posteriormente ejecutaremos en el servidor de destino. Para ejecutar dicha utilidad, ir a ‘&lt;i&gt;Start / MS SQL Server 2008 R2 / Analisys Services&lt;/i&gt;’:&lt;/p&gt;  &lt;p&gt;&lt;a href="/BICorner/Lists/Posts/Attachments/167/DespliegueCuboOLAP_71F36ECD.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px" title="DespliegueCuboOLAP" border="0" alt="DespliegueCuboOLAP" src="/BICorner/Lists/Posts/Attachments/167/DespliegueCuboOLAP_thumb_71F36ECD.png" width="368" height="213" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h5&gt;&lt;a name="_Toc291606222"&gt;Demo incluida en el curso online&lt;/a&gt;&lt;/h5&gt;  &lt;p&gt;Si estás siguiendo el curso, del cual este eBook es material complementario, accede al video de la ‘&lt;b&gt;Demo SSAS 01D&lt;/b&gt;', en el que se muestra con detalle una de las formas de despliegue, que es utilizando el propio &lt;i&gt;Visual Studio&lt;/i&gt;, y la configuración de las propiedades del proyecto para indicarle los diferentes entornos a los que queremos desplegar y los datos de éstos (servidor, nombre de la base de datos, etc.)&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Si te interesa esta información, y deseas convertirte en un profesional altamente especializado en Microsoft Business Intelligence, te recomiendo que nos pidas información sobre nuestro &lt;a href="http://www.solidq.com/squ/courses/Pages/Master-BI-Certified-Business-Intelligence-Microsoft-Espanol.aspx"&gt;&lt;strong&gt;Master en BI&lt;/strong&gt;&lt;/a&gt;. &lt;em&gt;Recuerda que hay poquitas plazas disponibles!!!&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;em&gt; &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt; &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Post publicados anteriormente como parte de este curso:&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=164&amp;amp;title=curso+ms+business+intelligence%e2%80%93ssas:+objetos+de+una+bbdd+de+analysis+services+(parte+iv%e2%80%93dimensiones)+(33)" target="_blank"&gt;SSAS, Objetos de una BBDD de Analysis Services parte IV – Dimensiones) (33)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=163&amp;amp;title=curso+ms+business+intelligence+-+ssas:+objetos+de+una+bbdd+de+analysis+services+(parte+iii%e2%80%93cubos)+(32)"&gt;SSAS, Objetos de una BBDD de Analysis Services (parte III – Cubos) (32)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=162&amp;amp;title=curso+ms+business+intelligence+-+ssas:+objetos+de+una+bbdd+de+analysis+services+(parte+ii+-+datasource+views)+(31)"&gt;SSAS, Objetos de una BBDD de Analysis Services (parte II – DataSource Views) (31)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=156&amp;amp;title=curso+ms+business+intelligence+-+ssas:+objetos+de+una+bbdd+de+analysis+services+(parte+i+-+datasources)+(30)"&gt;SSAS, Objetos de una BBDD de Analysis Services (parte I – DataSources) (30)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=155&amp;amp;title=curso+ms+business+intelligence+-+ssas:+cubos+olap,+conceptos+b%c3%a1sicos+(parte+iii)+(29)"&gt;SSAS, Cubos OLAP, Conceptos básicos (parte III) (29)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=154&amp;amp;title=curso+ms+business+intelligence+-+ssas:+cubos+olap,+conceptos+b%c3%a1sicos+(parte+ii)+(28)"&gt;SSAS, Cubos OLAP, Conceptos básicos (parte II) (28)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=152&amp;amp;title=curso+ms+business+intelligence+-+ssas:+cubos+olap,+conceptos+b%c3%a1sicos+(parte+i)+(27)"&gt;SSAS, Cubos OLAP, Conceptos básicos (parte I) (27)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=151&amp;amp;title=curso+ms+business+intelligence+-+ssas:+qu%c3%a9+es+analysis+services+(26)"&gt;SSAS, Qué es Analysis Services (26)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=149&amp;amp;title=curso+ms+business+intelligence+-+fin+del+m%c3%b3dulo+de+ssis+y+recapitulaci%c3%b3n+(25)"&gt;Fin del módulo de SSIS y recapitulación (25)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=143&amp;amp;title=cursos+ms+business+intelligence+ssis:+programar+la+ejecuci%c3%b3n+de+paquetes+(24)"&gt;SSIS, Programar la ejecución de paquetes (24)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=142&amp;amp;title=curso+ms+business+intelligence+-+ssis:+ejecuci%c3%b3n+de+paquetes+en+el+servidor+(23)"&gt;SSIS, Ejecución de paquetes en el servidor (23)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=140&amp;amp;title=curso+ms+business+intelligence+ssis:+despliegue+de+paquetes+(22)"&gt;SSIS, Despliegue de paquetes (22)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=132&amp;amp;title=curso+ms+business+intelligence+ssis:+configuraci%c3%b3n,+despliegue+y+administracion+(parte+iii)+(21)"&gt;SSIS Configuración, Despliegue y Administración (parte III) (21)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=130&amp;amp;title=curso+ms+business+intelligence+-+ssis:+configuracion,+despliegue+y+administraci%c3%b3n+(parte+ii)+(20)"&gt;SSIS Configuración, Despliegue y Administración (parte II) (20)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=129&amp;amp;title=curso+ms+business+intelligence+ssis:+configuraci%c3%b3n,+despliegue+y+administracion+(parte+i)+(19)"&gt;SSIS Configuración, Despliegue y Administración (parte I) (19)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=128&amp;amp;title=curso+ms+business+intelligence+-+ssis+logging+(parte+iii)+(18)"&gt;SSIS Logging (parte III) (18)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=126&amp;amp;title=curso+ms+business+intelligence+-+ssis+logging+(parte+ii)+(17)"&gt;SSIS Logging (parte II) (17)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=123&amp;amp;title=curso+ms+business+intelligence+-+ssis+loging+(parte+i)+(16)"&gt;SSIS Logging (parte I) (16)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=122&amp;amp;title=curso+ms+business+intelligence+ssis+buenas+pr%c3%a1cticas+(parte+iii)+(15)"&gt;SSIS Buenas prácticas (parte III) (15)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=120&amp;amp;title=curso+ms+business+intelligence+-+ssis+buenas+pr%c3%a1cticas+(parte+ii)+(14)"&gt;SSIS Buenas prácticas (parte II) (14)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=119&amp;amp;title=curso+ms+business+intelligence+-+ssis+buenas+pr%c3%a1cticas+(parte+i)+(13)"&gt;SSIS Buenas prácticas (parte I) (13)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=112&amp;amp;title=curso+ms+business+intelligence+-+ssis+data+flow+(12)"&gt;SSIS Data Flow (12)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=106&amp;amp;title=Curso+MS+Business+Intelligence+-+SSIS+ControlFlow+(11)"&gt;SSIS Control Flow (11)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=105&amp;amp;title=Curso+MS+Business+Intelligence+-+Introduccion+a+SSIS+(10)"&gt;Introducción a SSIS (10)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=104&amp;amp;title=Curso+MS+Business+Intelligence+-+Modelado+Dimensional+(9)"&gt;Modelado Dimensional (9)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=103&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Introduccion+completa+(8)"&gt;Introducción Completa (8)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=84&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Herramientas+cliente+SQL+Server+(7)"&gt;Herramientas Cliente SQL Server (7)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=83&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Componentes+de+la+plataforma+Microsoft+BI+(6)"&gt;Componentes de la Plataforma Microsoft BI (6)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=82&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Visi%c3%b3n+y+estrategia+(5)"&gt;Microsoft BI – Visión y Estrategia (5)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=81&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Componentes+de+una+soluci%c3%b3n+de+BI+(4)"&gt;Componentes de una Solución de BI (4)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=80&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Conceptos+importantes+sobre+BI+%e2%80%93+parte+II+(3)"&gt;Conceptos importantes sobre BI – parte II (3)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=79&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Conceptos+importantes+sobre+BI+%e2%80%93+parte+I+(2)"&gt;Conceptos importantes sobre BI – parte I (2)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="/BICorner/Post.aspx?ID=78&amp;amp;title=Curso+MS+Business+Intelligence+%e2%80%93+Definici%c3%b3n+del+t%c3%a9rmino+BI+(1)"&gt;Definición del término BI (1)&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/div&gt;</description>
      <shortDescription>&lt;div class="ExternalClassABE470E2D1384B0181E5C686204392DD"&gt;&lt;p&gt;&lt;em&gt;Tras el descanso Navideño, volvemos con la publicación del curso de Microsoft Business Intelligence, continuamos con los capítulos relativos a SQL Server Analysis Services (SSAS). Vamos con el siguiente &lt;/em&gt;:)&lt;/p&gt;  &lt;p&gt;Una vez hemos finalizado la construcción de nuestros cubos, el siguiente paso sería desplegarlo sobre un servidor de Analysis Services, para ello tenemos varias alternativas: &lt;/p&gt;  &lt;p&gt;· &lt;u&gt;Hacer el despliegue desde Visual Studio&lt;/u&gt;: en nuestro proyecto, vamos al menú ‘Build’ y seleccionar la opción ‘Deploy’,...&lt;/p&gt;&lt;/div&gt;</shortDescription>
      <category name="Analysis Services" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Analysis+Services" nameEnconded="Analysis+Services" />
      <category name="Deployment" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Deployment" nameEnconded="Deployment" />
      <category name="despliegue SSAS" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=despliegue+SSAS" nameEnconded="despliegue+SSAS" />
      <category name="Cubos OLAP" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Cubos+OLAP" nameEnconded="Cubos+OLAP" />
      <category name="Cursos" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Cursos" nameEnconded="Cursos" />
      <dc:language name="http://blogs.solidq.com/Pages/Home.aspx?language=Spanish" nameEncoded="Spanish" xmlns:dc="http://purl.org/dc/elements/1.1/"></dc:language>
    </item>
    <item>
      <title>Módulos para desplegar páginas en SharePoint independiente del idioma</title>
      <ItemID>235</ItemID>
      <link>http://blogs.solidq.com/sharepoint/Post.aspx?ID=235&amp;title=M%c3%b3dulos+para+desplegar+p%c3%a1ginas+en+SharePoint+independiente+del+idioma</link>
      <pubDate>2013-01-10T14:01:00+01:00</pubDate>
      <author>Cristian M. Zaragoza Gómez</author>
      <authorEncoded>Cristian+M.+Zaragoza+G%c3%b3mez</authorEncoded>
      <authorID>29</authorID>
      <comments>None</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">None</wfw:commentRss>
      <description>&lt;div class="ExternalClassBDE3886C13774E91974DE7F4AD938490"&gt;&lt;p align="justify"&gt;Cuando creamos en Visual Studio un módulo para proveer de archivos a SharePoint (imágenes, hojas de estilos, scripts, etc.) tenemos un fichero XML con la siguiente estructura:&lt;/p&gt;  &lt;pre class="brush: xml; auto-links: true; collapse: false; first-line: 1; gutter: true; highlight: [3,4]; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;
&amp;lt;Elements xmlns=&amp;quot;http://schemas.microsoft.com/sharepoint/&amp;quot;&amp;gt;
  &amp;lt;Module Name=&amp;quot;...&amp;quot; Url=&amp;quot;..&amp;quot;&amp;gt;
    &amp;lt;File Path=&amp;quot;...&amp;quot; Url=&amp;quot;...&amp;quot; Type=&amp;quot;GhostableInLibrary&amp;quot;/&amp;gt;
    ...
  &amp;lt;/Module&amp;gt;
&amp;lt;/Elements&amp;gt;&lt;/pre&gt;

&lt;p align="justify"&gt;Donde vemos que en la etiqueta &amp;lt;Module&amp;gt; tenemos la propiedad Url, que es la que indica en qué lugar de SharePoint se van a desplegar los archivos. Hasta aquí todo correcto. ¿Qué URL deberíamos poner si queremos desplegar páginas? La URL de la biblioteca de páginas, ¿verdad? Y aquí es donde tenemos el problema. Si la colección de sitios la creamos en inglés, la URL relativa de la biblioteca de páginas es “/Pages”, pero si la creamos en español, por ejemplo, la URL relativa es “/Paginas”. ¿Tenemos que crear un módulo por cada posible paquete de idiomas instalado? La respuesta es obviamente no. La solución es usar los recursos para multi-idioma de SharePoint (archivos con extensión &lt;em&gt;resx&lt;/em&gt;), donde tenemos una palabra clave (&lt;em&gt;token&lt;/em&gt;) que nos devuelve la URL relativa de la biblioteca de páginas, según el idioma con el que hayamos creado la colección de sitios:&lt;/p&gt;

&lt;pre class="brush: xml; auto-links: true; collapse: false; first-line: 1; gutter: true; highlight: [1]; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"&gt;$Resources:osrvcore,List_Pages_UrlName&lt;/pre&gt;

&lt;p&gt;Quedando la etiqueta &amp;lt;Module&amp;gt; tal que así:&lt;/p&gt;

&lt;pre class="brush: xml; auto-links: true; collapse: false; first-line: 1; gutter: true; highlight: [3]; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;
&amp;lt;Elements xmlns=&amp;quot;http://schemas.microsoft.com/sharepoint/&amp;quot;&amp;gt;
  &amp;lt;Module Name=&amp;quot;...&amp;quot; Url=&amp;quot;$Resources:osrvcore,List_Pages_UrlName&amp;quot;&amp;gt;
    &amp;lt;File Path=&amp;quot;...&amp;quot; Url=&amp;quot;...&amp;quot; Type=&amp;quot;GhostableInLibrary&amp;quot;/&amp;gt;
    ...
  &amp;lt;/Module&amp;gt;
&amp;lt;/Elements&amp;gt;&lt;/pre&gt;

&lt;p&gt;Espero que os resulte de ayuda. Hasta la próxima! &lt;img class="wlEmoticon wlEmoticon-smile" style="" alt="Sonrisa" src="/sharepoint/Lists/Posts/Attachments/235/wlEmoticon-smile_2_06FFC525.png" /&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <shortDescription>&lt;div class="ExternalClassBDE3886C13774E91974DE7F4AD938490"&gt;&lt;p align="justify"&gt;Cuando creamos en Visual Studio un módulo para proveer de archivos a SharePoint (imágenes, hojas de estilos, scripts, etc.) tenemos un fichero XML con la siguiente estructura:&lt;/p&gt;  

&lt;p align="justify"&gt;Donde vemos que en la etiqueta &amp;lt;Module&amp;gt; tenemos la propiedad Url, que es la que indica en qué lugar de SharePoint se van a desplegar los archivos. Hasta aquí todo correcto. ¿Qué URL deberíamos poner si queremos desplegar páginas? La URL de la biblioteca de páginas, ¿verdad? Y aquí es donde tenemos el problema. Si la...&lt;/p&gt;&lt;/div&gt;</shortDescription>
      <category name="SharePoint" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=SharePoint" nameEnconded="SharePoint" />
      <category name="SharePoint 2010" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=SharePoint+2010" nameEnconded="SharePoint+2010" />
      <category name="SharePoint 2013" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=SharePoint+2013" nameEnconded="SharePoint+2013" />
      <category name="modulos" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=modulos" nameEnconded="modulos" />
      <category name="características" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=caracter%c3%adsticas" nameEnconded="caracter%c3%adsticas" />
      <category name="archivos" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=archivos" nameEnconded="archivos" />
      <category name="páginas" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=p%c3%a1ginas" nameEnconded="p%c3%a1ginas" />
      <category name="despliegue" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=despliegue" nameEnconded="despliegue" />
      <dc:language name="http://blogs.solidq.com/Pages/Home.aspx?language=Spanish" nameEncoded="Spanish" xmlns:dc="http://purl.org/dc/elements/1.1/"></dc:language>
    </item>
    <item>
      <title>eBook Gratuito de SharePoint 2013 de SolidQ</title>
      <ItemID>233</ItemID>
      <link>http://blogs.solidq.com/sharepoint/Post.aspx?ID=233&amp;title=eBook+Gratuito+de+SharePoint+2013+de+SolidQ</link>
      <pubDate>2013-01-09T12:20:42+01:00</pubDate>
      <author>José Quinto Zamora</author>
      <authorEncoded>Jos%c3%a9+Quinto+Zamora</authorEncoded>
      <authorID>2</authorID>
      <comments>None</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">None</wfw:commentRss>
      <description>&lt;div class="ExternalClassE3AD3D75CE69479280F899754C94899C"&gt;&lt;p&gt;Buenas a tod@s!&lt;/p&gt;  &lt;p&gt;Llega 2013 y con él, también llega la nueva versión de SharePoint, bautizada como SharePoint 2013, pese a la negativa de Microsoft en varias ocasiones en utilizar el 13 en sus versiones. No se vosotros, pero a mi, me da buen augurio esta nueva versión, y no porque confíe en la buena suerte, sino porque realmente he tenido la oportunidad de ver todas las novedades que trae la nueva versión y Microsoft va por el buen camino. No han dejado pasar por alto la tendencia social, ni la tendencia de diseño Metro o Windows 8. &lt;/p&gt;  &lt;p&gt;Bueno tampoco pretendo contar aquí todas las novedades de SharePoint 2013, todo lo contrario, lo podéis ver todo bien estructurado en el nuevo &lt;strong&gt;libro en modalidad ebook completamente GRATUITO&lt;/strong&gt; que SolidQ ha puesto a vuestra disposición (solamente requiere registro). Yo lo consideraría como un regalo de los reyes magos, ya que en principio iba a ser de pago y luego se decidió aportar a la comunidad con este libro de 223 páginas.&lt;/p&gt;  &lt;p&gt;Para ver más información y descargarlo (solamente requiere registro en SolidQ) podéis hacerlo aquí: &lt;a title="http://www.solidq.com/sqj/books/Pages/SharePoint-2013-Apps-el-nuevo-modelo-de-desarrollo.aspx" href="http://www.solidq.com/sqj/books/Pages/SharePoint-2013-Apps-el-nuevo-modelo-de-desarrollo.aspx"&gt;http://www.solidq.com/sqj/books/Pages/SharePoint-2013-Apps-el-nuevo-modelo-de-desarrollo.aspx&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="/sharepoint/Lists/Posts/Attachments/233/LibroSharePoint2013_6FE31659.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px" title="LibroSharePoint2013" border="0" alt="LibroSharePoint2013" src="/sharepoint/Lists/Posts/Attachments/233/LibroSharePoint2013_thumb_5AF193E6.png" width="364" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Si después de leer este libro te quedas con ganas de profundizar más en algunos aspectos concretos de SharePoint 2013, te recomiendo esta serie de webcast realizados por SolidQ en colaboración con TechNet: &lt;a title="http://blogs.solidq.com/sharepoint/Post.aspx?ID=225&amp;amp;title=Ciclo+de+WebCast+de+SharePoint+2013" href="/sharepoint/Post.aspx?ID=225&amp;amp;title=Ciclo+de+WebCast+de+SharePoint+2013"&gt;http://blogs.solidq.com/sharepoint/Post.aspx?ID=225&amp;amp;title=Ciclo+de+WebCast+de+SharePoint+2013&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;El hecho de que este haciendo este post, y de que haya sido posible la realización, maquetación y publicación de este libro no es algo trivial, sino que ha requerido de esfuerzo y sacrificio por parte del equipo de SharePoint de SolidQ. Concretamente me gustaría agradecer este logro a:&lt;/p&gt;  &lt;p&gt;- &lt;a href="http://twitter.com/daniel_seara" target="_blank"&gt;Daniel A. Seara&lt;/a&gt;. Gracias por hacer esta idea posible.&lt;/p&gt;  &lt;p&gt;- &lt;a href="http://twitter.com/daniel_seara" target="_blank"&gt;Guillermo&lt;/a&gt;, &lt;a href="http://twitter.com/ivanparedes_" target="_blank"&gt;Iván&lt;/a&gt;, &lt;a href="http://twitter.com/cmzaragoza" target="_blank"&gt;Cristian&lt;/a&gt;, &lt;a href="http://twitter.com/rober_ramon" target="_blank"&gt;Roberto&lt;/a&gt;. Gracias por esos madrugones y por el compromiso mostrado en este reto (aquí me incluyo yo también &lt;img style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none" class="wlEmoticon wlEmoticon-smile" alt="Sonrisa" src="/sharepoint/Lists/Posts/Attachments/233/wlEmoticon-smile_2_5AF193E6.png" /&gt;).&lt;/p&gt;  &lt;p&gt;- &lt;a href="http://twitter.com/pacomarinq" target="_blank"&gt;Paco&lt;/a&gt;: Gracias por la corrección lingüística.&lt;/p&gt;  &lt;p&gt;- &lt;a href="http://twitter.com/Rocio_Guerrero_" target="_blank"&gt;Rocío G&lt;/a&gt;. Gracias por esos findes y horas extra de maquetación y diseño del ebook. &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;¡¡SeguiMOSS!!&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Saludos!&lt;/p&gt;  &lt;p&gt;JQ&lt;/p&gt;  &lt;p&gt;&lt;a href="/sharepoint/Home.aspx" target="_blank"&gt;@jquintozamora&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <shortDescription>&lt;div class="ExternalClassE3AD3D75CE69479280F899754C94899C"&gt;&lt;p&gt;Buenas a tod@s!&lt;/p&gt;  &lt;p&gt;Llega 2013 y con él, también llega la nueva versión de SharePoint, bautizada como SharePoint 2013, pese a la negativa de Microsoft en varias ocasiones en utilizar el 13 en sus versiones. No se vosotros, pero a mi, me da buen augurio esta nueva versión, y no porque confíe en la buena suerte, sino porque realmente he tenido la oportunidad de ver todas las novedades que trae la nueva versión y Microsoft va por el buen camino. No han dejado pasar por alto la tendencia social, ni la tendencia...&lt;/p&gt;&lt;/div&gt;</shortDescription>
      <category name="SharePoint 2013" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=SharePoint+2013" nameEnconded="SharePoint+2013" />
      <category name="ebook" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=ebook" nameEnconded="ebook" />
      <category name="libro" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=libro" nameEnconded="libro" />
      <dc:language name="http://blogs.solidq.com/Pages/Home.aspx?language=Spanish" nameEncoded="Spanish" xmlns:dc="http://purl.org/dc/elements/1.1/"></dc:language>
    </item>
    <item>
      <title>SQL Saturday #195 México</title>
      <ItemID>7</ItemID>
      <link>http://blogs.solidq.com/SolidQ/Post.aspx?ID=7&amp;title=SQL+Saturday+%23195+M%c3%a9xico</link>
      <pubDate>2013-01-07T12:06:00+01:00</pubDate>
      <author>SolidQ</author>
      <authorEncoded>SolidQ</authorEncoded>
      <authorID>150</authorID>
      <comments>None</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">None</wfw:commentRss>
      <description>&lt;div class="ExternalClass552D58AFD19E4DC28D5D84CA47AF4936"&gt;&lt;p&gt;Miguel Ángel Granados (mentor en &lt;a href="https://www.solidq.com/" target="_blank"&gt;SolidQ&lt;/a&gt;) y el Capítulo de PASS de México están organizando el evento gratuito SQL Saturday. que se celebrará en Isabel La Católica #51, Col. Centro, Del. Cuauhtémoc, México el próximo 2 de Febrero del 2013.&lt;/p&gt;
&lt;p&gt;En este encuentro participarán como ponentes nuestros compañeros Miguel Ángel Granados (&lt;a href="https://twitter.com/SQLMiguelG" target="_blank"&gt;@SQLMiguelG&lt;/a&gt;), Jesús Gil (&lt;a href="https://twitter.com/jesus_gilv" target="_blank"&gt;@jesus_gilv&lt;/a&gt;) y John Alexander Bulla (&lt;a href="https://twitter.com/johnbulla" target="_blank"&gt;@johnbulla&lt;/a&gt;).&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Seguridad en SQL Server 2012&lt;/li&gt;
&lt;li&gt;Características de SQL Server 2012&lt;/li&gt;
&lt;li&gt;Datos especiales&lt;/li&gt;
&lt;li&gt;Integration Services&lt;/li&gt;
&lt;li&gt;Modelado de bases de datos&lt;/li&gt;
&lt;li&gt;Mejorando el desempeño de bases de datos utilizando las mejores prácticas&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;La semana que viene se publicará el horario de sesiones y ponentes confirmados, os mantendremos informados.&lt;/p&gt;
&lt;p&gt;&lt;img width="384" height="180" src="/SolidQ/PublishingImages/Events/PASSSQLSaturdayMExico2013.jpg" alt="" style="display:block;float:none;margin-left:auto;margin-right:auto" /&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Si quieres saber más información sobre este evento, visite la página oficial de &lt;a href="http://www.sqlsaturday.com/195/eventhome.aspx" target="_blank"&gt;PASS SQL Saturday #195 Mexico 2013&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Además, podrás seguir las novedades del evento en &lt;a href="https://www.facebook.com/sqlsat195" target="_blank"&gt;Facebook&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;¡&lt;a href="http://www.sqlsaturday.com/195/register.aspx" target="_blank"&gt;Regístrate&lt;/a&gt; ya!&lt;/p&gt;&lt;/div&gt;</description>
      <shortDescription>&lt;div class="ExternalClass552D58AFD19E4DC28D5D84CA47AF4936"&gt;&lt;p&gt;Miguel Ángel Granados (mentor en &lt;a href="https://www.solidq.com/" target="_blank"&gt;SolidQ&lt;/a&gt;) y el Capítulo de PASS de México están organizando el evento gratuito SQL Saturday. que se celebrará en Isabel La Católica #51, Col. Centro, Del. Cuauhtémoc, México el próximo 2 de Febrero del 2013.&lt;/p&gt;
&lt;p&gt;En este encuentro participarán como ponentes nuestros compañeros Miguel Ángel Granados (&lt;a href="https://twitter.com/SQLMiguelG" target="_blank"&gt;@SQLMiguelG&lt;/a&gt;), Jesús Gil (&lt;a href="https://twitter.com/jesus_gilv" target="_blank"&gt;@jesus_gilv&lt;/a&gt;) y John Alexander Bulla (&lt;a href="https://twitter.com/johnbulla" target="_blank"&gt;@johnbulla&lt;/a&gt;).&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Seguridad en SQL Server 2012&lt;/li&gt;
&lt;li&gt;Características de SQL Server 2012&lt;/li&gt;
&lt;li&gt;Datos especiales&lt;/li&gt;
&lt;li&gt;Integration Services&lt;/li&gt;
&lt;li&gt;Modelado...&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</shortDescription>
      <category name="Events" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Events" nameEnconded="Events" />
      <dc:language name="http://blogs.solidq.com/Pages/Home.aspx?language=Spanish" nameEncoded="Spanish" xmlns:dc="http://purl.org/dc/elements/1.1/"></dc:language>
    </item>
    <item>
      <title>No permitamos perder lo que tanto nos ha costado conseguir en España</title>
      <ItemID>75</ItemID>
      <link>http://blogs.solidq.com/fguerrero/Post.aspx?ID=75&amp;title=No+permitamos+perder+lo+que+tanto+nos+ha+costado+conseguir+en+Espa%c3%b1a</link>
      <pubDate>2013-01-05T14:02:00+01:00</pubDate>
      <author>Fernando G. Guerrero</author>
      <authorEncoded>Fernando+G.+Guerrero</authorEncoded>
      <authorID>20</authorID>
      <comments>None</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">None</wfw:commentRss>
      <description>&lt;div class="ExternalClass398E991BBDB142B28FC48F56AAD2B623"&gt;&lt;p&gt;Anoche en TVE, Iñaki Gabilondo comentó que desde que empezó la democracia en España, hemos pasado de $4K de renta per cápita a $30K. Dijo también, que esto que estamos pasando ahora a lo que llamamos crisis, es simplemente la realidad de la vida que nos toca vivir. Y tiene más razón que un santo. &lt;/p&gt;
&lt;p&gt;Esto me hizo buscar datos de PIB comparados, y lo que encontré fue impresionante. &lt;/p&gt;
&lt;p&gt;Sin irme tan atrás (¿sabíais que en el 1960 el PIB per cápita de México y España eran idénticos?), voy a comparar los datos económicos de España y EEUU desde el año que creamos SolidQ (2002) hasta la actualidad. Esto es lo que he encontrado: &lt;/p&gt;
&lt;ol&gt;&lt;li&gt;El PIB de EEUU era en el 2002 equivalente a 15.43 veces el de España, y en el 2011 era solo 10.18 veces (en euros). España ha pasado de €0.7M a €1.1M de PIB en el periodo 2002 al 2011, un 45.81% de incremento &lt;/li&gt;
&lt;li&gt;El PIB per cápita de EEUU era en el 2002 un 121% mayor que el de España, y ahora es solo un 50% mayor (en euros). España ha pasado de 17.700 € en el 2002 a 23.100 € en el 2011, un 30.51% de incremento, mientras que el de USA se ha mantenido prácticamente estable durante ese periodo (en euros) &lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;Por cierto, haciendo estos números en dólares americanos, EEUU incrementó su PIB per cápita (PPP) de $37600 en el 2002 a $49000 en el 2011. España pasó de $20700 en el 2002 a $31000 en el 2011. El índice PPP no es equivalente al nominal, y no es lo mismo hacer los cálculos en dólares que en euros, pero aún con este índice se aprecia un incremento de un 49.76% en ese mismo periodo de tiempo. &lt;/p&gt;
&lt;p&gt;Todos sufrimos el estado actual de crisis en el que vivimos en España. Pero no podemos resignarnos a perder los logros de tantos años. Está en nuestra mano el defender con uñas y dientes nuestro derecho a prosperar y a crear riqueza a nuestro alrededor. &lt;/p&gt;
&lt;p&gt;Que nuestros gobernantes nos permitan trabajar. Que no ahoguen a las empresas con retrasos injustificados en los pagos que nos deben, al mismo tiempo que nos golpean con puño de hierro en cuanto nos vemos obligados a retrasar nuestras obligaciones tributarias. &lt;/p&gt;
&lt;p&gt;Si los gobernantes pagaran a tiempo sus obligaciones, quizá las grandes empresas podrían pagar a tiempo a sus proveedores (empresas medianas y pequeñas en su mayoría), y así todos podríamos pagar a tiempo a nuestros empleados y proveedores. Nuestros empleados podrían pagar sus hipotecas y préstamos a tiempo, lo que reduciría la morosidad bancaria, al mismo tiempo, abaratando el crédito, y permitiendo de nuevo el crecimiento del empleo y de la actividad económica en este país que tanto ha progresado en tan poco tiempo. &lt;/p&gt;
&lt;p&gt;¿Es una utopía? quizá sí, pero solo requiere un primer paso para desenmarañar la situación actual: que la administración empiece por pagar sus obligaciones a tiempo, de un modo predecible, y la maquinaria económica de este país empezará a funcionar como un reloj... español.&lt;/p&gt;&lt;/div&gt;</description>
      <shortDescription>&lt;div class="ExternalClass398E991BBDB142B28FC48F56AAD2B623"&gt;&lt;p&gt;Anoche en TVE, Iñaki Gabilondo comentó que desde que empezó la democracia en España, hemos pasado de $4K de renta per cápita a $30K. Dijo también, que esto que estamos pasando ahora a lo que llamamos crisis, es simplemente la realidad de la vida que nos toca vivir. Y tiene más razón que un santo. &lt;/p&gt;
&lt;p&gt;Esto me hizo buscar datos de PIB comparados, y lo que encontré fue impresionante. &lt;/p&gt;
&lt;p&gt;Sin irme tan atrás (¿sabíais que en el 1960 el PIB per cápita de México y España eran idénticos?), voy a comparar los datos...&lt;/p&gt;&lt;/div&gt;</shortDescription>
      <category name="Negocios" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Negocios" nameEnconded="Negocios" />
      <category name="Política" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Pol%c3%adtica" nameEnconded="Pol%c3%adtica" />
      <category name="Emprendedores" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Emprendedores" nameEnconded="Emprendedores" />
      <dc:language name="http://blogs.solidq.com/Pages/Home.aspx?language=Spanish" nameEncoded="Spanish" xmlns:dc="http://purl.org/dc/elements/1.1/"></dc:language>
    </item>
    <item>
      <title>Articulo publicado en la revista DotNetMania nº98</title>
      <ItemID>237</ItemID>
      <link>http://blogs.solidq.com/ElRinconDelDBA/Post.aspx?ID=237&amp;title=Articulo+publicado+en+la+revista+DotNetMania+n%c2%ba98</link>
      <pubDate>2012-12-17T14:46:57+01:00</pubDate>
      <author>Enrique Catalá</author>
      <authorEncoded>Enrique+Catal%c3%a1</authorEncoded>
      <authorID>38</authorID>
      <comments>None</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">None</wfw:commentRss>
      <description>&lt;div class="ExternalClass968BD9C2165E45B197B9E25A830B6C90"&gt;&lt;p&gt;Ya puedes leernos de nuevo en el número de diciembre de 2012 de la revista DotNetMania &lt;a title="http://www.dotnetmania.com/" href="http://www.dotnetmania.com/"&gt;http://www.dotnetmania.com/&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;En una serie de 4 artículos, hablaremos Enrique Catalá y Enrique Puig sobre “&lt;em&gt;Buenas prácticas de codificación para capas de acceso a datos de aplicaciones&lt;/em&gt;”. En esa serie de 4 artículos vamos a desmenuzar las distintas posibilidades que tenemos a la hora de enfrentarnos al desarrollo de capas de acceso a datos.&lt;/p&gt;  &lt;p&gt;Hablaremos a grandes rasgos de:  &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Patrones de acceso a datos      &lt;ul&gt;       &lt;li&gt;Tipología de acceso &lt;/li&gt;        &lt;li&gt;Patrones de bajo nivel &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;ORM      &lt;ul&gt;       &lt;li&gt;Motivación de los ORM &lt;/li&gt;        &lt;li&gt;Pros y contras de los ORM &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Entity framework      &lt;ul&gt;       &lt;li&gt;Entity Data Model &lt;/li&gt;        &lt;li&gt;Operaciones con Entity Framework &lt;/li&gt;        &lt;li&gt;Comparativa de rendimientos &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;No te lo pierdas! suscribete a &lt;a title="http://www.dotnetmania.com/" href="http://www.dotnetmania.com/"&gt;http://www.dotnetmania.com/&lt;/a&gt; para poder disfrutarlos.&lt;/p&gt;&lt;/div&gt;</description>
      <shortDescription>&lt;div class="ExternalClass968BD9C2165E45B197B9E25A830B6C90"&gt;&lt;p&gt;Ya puedes leernos de nuevo en el número de diciembre de 2012 de la revista DotNetMania &lt;a title="http://www.dotnetmania.com/" href="http://www.dotnetmania.com/"&gt;http://www.dotnetmania.com/&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;En una serie de 4 artículos, hablaremos Enrique Catalá y Enrique Puig sobre “&lt;em&gt;Buenas prácticas de codificación para capas de acceso a datos de aplicaciones&lt;/em&gt;”. En esa serie de 4 artículos vamos a desmenuzar las distintas posibilidades que tenemos a la hora de enfrentarnos al desarrollo de capas de acceso a datos.&lt;/p&gt;  &lt;p&gt;Hablaremos a grandes rasgos de:  &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Patrones de acceso a datos      &lt;ul&gt;...&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</shortDescription>
      <category name="SQL Server" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=SQL+Server" nameEnconded="SQL+Server" />
      <category name="Transact SQL" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Transact+SQL" nameEnconded="Transact+SQL" />
      <category name="Entity Framework" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Entity+Framework" nameEnconded="Entity+Framework" />
      <category name="Artículos y revistas" urlAbsolute="http://blogs.solidq.com/Pages/Home.aspx?category=Art%c3%adculos+y+revistas" nameEnconded="Art%c3%adculos+y+revistas" />
      <dc:language name="http://blogs.solidq.com/Pages/Home.aspx?language=Spanish" nameEncoded="Spanish" xmlns:dc="http://purl.org/dc/elements/1.1/"></dc:language>
    </item>
  </channel>
</rss>