WEBVTT

00:00:00.000 --> 00:00:09.223
[MÚSICA]

00:00:13.237 --> 00:00:15.891
Hola, todo el mundo Bienvenido a otro
episodio interesante de los datos expuestos.

00:00:15.891 --> 00:00:16.920
Soy su anfitrión Scott Klein y

00:00:16.920 --> 00:00:19.060
volver conmigo por populares
demanda a Michael [RÍE].

00:00:19.060 --> 00:00:19.780
>> [RÍEN]
>> Michael Rys.

00:00:19.780 --> 00:00:20.370
>> Gracias, Scott.

00:00:20.370 --> 00:00:22.000
>> Michael, ¿cómo estás?

00:00:22.000 --> 00:00:23.570
>> Hola chicos, sí lo

00:00:23.570 --> 00:00:28.380
Yo soy después de más de medio año
de no hablar sobre SQL de U.

00:00:28.380 --> 00:00:31.100
He vuelto a ofrecerle una actualización
de lo que hemos agregado y

00:00:31.100 --> 00:00:31.660
¿qué hemos cambiado.

00:00:31.660 --> 00:00:34.540
>> Sí, y Estamos ansiosos
a ella cuz U-SQL es un tema popular.

00:00:34.540 --> 00:00:36.400
Antes de comenzar,
hablamos sobre el mismo,

00:00:36.400 --> 00:00:38.490
introducir ustedes brevemente para
aquellos que no se sepa.

00:00:38.490 --> 00:00:39.830
>> Sí, entonces mi nombre es Mike Rys,

00:00:39.830 --> 00:00:43.170
Soy director de programas en
el equipo de datos grandes de Microsoft.

00:00:43.170 --> 00:00:47.510
Soy responsable U SQL y
Análisis de datos Azure lago.

00:00:47.510 --> 00:00:48.240
>> Maravilla.

00:00:48.240 --> 00:00:50.082
Está bien, ya que estás aquí para hablar,

00:00:50.082 --> 00:00:54.294
cuz Sí, ha sido probablemente cuatro a
seis meses desde que tuvimos en la última.

00:00:54.294 --> 00:00:54.960
>> Sí.

00:00:54.960 --> 00:00:59.070
>> ¿Cuál es nuevo desde
¿última vez tuvimos en?

00:00:59.070 --> 00:01:02.790
>> Bien, por lo tanto, bastante
progreso en agregar algunas características

00:01:02.790 --> 00:01:04.163
que se pidió.

00:01:04.163 --> 00:01:04.737
>> Sí.
>> Y

00:01:04.737 --> 00:01:09.060
algunas de las características que pensamos
podría ser interesante para agregar.

00:01:09.060 --> 00:01:11.610
También agrega algo de rendimiento
mejoras, etc., y

00:01:11.610 --> 00:01:15.380
Soy tipo de aquí a rápidamente
Pulse en algunos de ellos.

00:01:15.380 --> 00:01:17.014
>> Todos los derechos.
>> Y mostrar algún código y

00:01:17.014 --> 00:01:17.910
ejemplos, etc.

00:01:17.910 --> 00:01:18.750
>> Siempre me gusta mirar el código.

00:01:18.750 --> 00:01:20.160
Bien, retrocedamos derecha en.

00:01:20.160 --> 00:01:20.890
Así que ¿qué tiene?

00:01:20.890 --> 00:01:25.440
>> Bien, así que primero en términos de
Algunas características nuevas que tenemos.

00:01:25.440 --> 00:01:27.160
Hemos agregado la seguridad.

00:01:27.160 --> 00:01:27.690
>> Está bien.
>> Y

00:01:27.690 --> 00:01:32.178
básicamente ACLing en la carpeta y
fidle de nivel, de archivo y

00:01:32.178 --> 00:01:34.925
carpeta de nivel, lo sentimos mucho.

00:01:34.925 --> 00:01:36.500
>> [RÍEN]
>> En el almacén, y

00:01:36.500 --> 00:01:39.900
también la posibilidad de establecer
permisos de nivel de base de datos.

00:01:39.900 --> 00:01:42.210
Entonces, permítanme mostrar rápidamente
Puede que en el portal,

00:01:42.210 --> 00:01:44.670
que es la única forma en que
actualmente puede hacer eso.

00:01:44.670 --> 00:01:45.200
>> Está bien.
>> Hasta

00:01:45.200 --> 00:01:46.955
Aquí tenemos nuestro portal de Azure y

00:01:46.955 --> 00:01:49.170
Voy a abrir Mi
Cuenta de datos lago aquí.

00:01:50.370 --> 00:01:54.530
Y, a continuación, en la cuenta del lago de datos
mediante el Explorador de datos

00:01:54.530 --> 00:01:56.340
Puedo ver mis bases de datos aquí.

00:01:56.340 --> 00:01:59.010
Así que si puedo acercar rápidamente,

00:01:59.010 --> 00:02:00.910
Aquí verá mi catálogo
>> Sí.

00:02:00.910 --> 00:02:02.930
>> tiene todas estas bases de datos.

00:02:02.930 --> 00:02:07.030
Ahora analicemos
JSONBlock base de datos aquí.

00:02:07.030 --> 00:02:13.160
Y ahora observa aquí,
hay una propiedad de administrar el acceso.

00:02:13.160 --> 00:02:17.510
Que ahora me permite
básicamente dar permisos para

00:02:17.510 --> 00:02:21.340
personas a utilizar la base de datos y
hacer cosas con él.

00:02:21.340 --> 00:02:26.690
Por lo que puede ver aquí, en este momento,
es sólo yo que tienen acceso.

00:02:26.690 --> 00:02:29.975
Para que tenga un propietario, que es el
persona que crea la base de datos.

00:02:29.975 --> 00:02:30.600
>> Mm-hm.

00:02:30.600 --> 00:02:33.780
>> Puede establecer permisos
en una base por grupo.

00:02:33.780 --> 00:02:35.460
Y para todo el mundo.

00:02:35.460 --> 00:02:39.244
Por ejemplo, podría tener
un grupo de personas que pueden para

00:02:39.244 --> 00:02:41.221
ejemplo de crear objetos en ella.

00:02:41.221 --> 00:02:45.634
Como registrar el ensamblado, crear
una tabla, insertar datos y escaneo automático.

00:02:45.634 --> 00:02:49.460
Sólo lectura de los datos
dentro de la tabla.

00:02:49.460 --> 00:02:52.737
>> Es como la demás Azure
¿almacén de datos y cosas que?

00:02:52.737 --> 00:02:53.727
¿Esto viene

00:02:53.727 --> 00:02:56.170
Active Directory Azure
>> Sí.

00:02:56.170 --> 00:02:56.700
¿>> permisos?

00:02:56.700 --> 00:02:59.280
>> Por lo que los principios de seguridad
son Active Directory de Azure.

00:02:59.280 --> 00:03:02.630
Por lo que algunos iniciar sesión o

00:03:02.630 --> 00:03:06.160
un grupo de seguridad que puede utilizar
aquí el principio de seguridad.

00:03:06.160 --> 00:03:06.750
>> Está bien.
>> Y

00:03:06.750 --> 00:03:09.960
los permisos
¿son específicos de la base de datos.

00:03:09.960 --> 00:03:14.640
Así de lectura o escritura, o
enumerar básicamente, etc.

00:03:14.640 --> 00:03:16.780
Por lo que puede ver aquí tipo de
los permisos que tienen.

00:03:16.780 --> 00:03:17.340
>> Está bien.

00:03:17.340 --> 00:03:18.440
En el nivel de base de datos.

00:03:18.440 --> 00:03:19.630
>> Bueno, bueno.

00:03:19.630 --> 00:03:22.210
Y el tiempo que tiene
¿está disponible?

00:03:22.210 --> 00:03:28.280
>> Por lo que ha estado disponible para
aproximadamente un mes.

00:03:28.280 --> 00:03:29.608
>> Está bien.
>> Ahora la novedad es I

00:03:29.608 --> 00:03:31.780
le gustaría hablar
mejoras en el rendimiento.

00:03:31.780 --> 00:03:35.660
Ahora estas mejoras de rendimiento
aún no están en el producto.

00:03:35.660 --> 00:03:36.360
>> Está bien.
>> Pero

00:03:36.360 --> 00:03:39.315
debe ser probablemente por el tiempo
Este vídeo va en vivo.

00:03:39.315 --> 00:03:41.410
>> [RÍEN]
>> O poco allí después con suerte.

00:03:41.410 --> 00:03:42.020
>> Con suerte.

00:03:42.020 --> 00:03:44.118
>> No como un mes más tarde.

00:03:44.118 --> 00:03:47.380
Y lo que es, es básicamente es

00:03:47.380 --> 00:03:50.585
tiene un montón de gente que el amor
Para utilizar nuestro archivo establecer característica.

00:03:50.585 --> 00:03:53.885
Características del conjunto de archivos significa básicamente
proporcionar una ruta de acceso que contiene

00:03:53.885 --> 00:03:58.125
caracteres comodín en la ruta de acceso para recoger
todos los archivos que coincidan con la ruta de acceso.

00:03:58.125 --> 00:03:59.145
>> Coincide con la ruta de acceso.

00:03:59.145 --> 00:04:00.755
>> Pero
tenemos algunos problemas de rendimiento.

00:04:00.755 --> 00:04:03.055
Y voy a mostrar rápidamente
se muestra un ejemplo aquí.

00:04:04.175 --> 00:04:09.620
Así que si puedo ir aquí
Tengo Visual Studio.

00:04:09.620 --> 00:04:11.370
Aquí tengo un script sencillo.

00:04:11.370 --> 00:04:14.020
>> Sí.
>> Ahora, esta secuencia de comandos va a través de

00:04:14.020 --> 00:04:16.230
algunos de nuestros datos de telemetría.

00:04:16.230 --> 00:04:16.949
>> Está bien.
>> Y

00:04:16.949 --> 00:04:19.639
Si lo mira
tiene aquí está,

00:04:19.639 --> 00:04:24.770
básicamente tiene una ruta bastante larga
nombre con un montón de patrones en ella.

00:04:24.770 --> 00:04:29.160
Por lo que básicamente se parametriza el
clúster en el que buscamos.

00:04:29.160 --> 00:04:30.840
La fecha, el año, mes, fecha.

00:04:30.840 --> 00:04:31.610
>> Sí y el nombre.

00:04:31.610 --> 00:04:33.350
>> Y el nombre del archivo.

00:04:33.350 --> 00:04:36.929
Y ¿qué hacer aquí es sólo
básicamente extraer los datos fuera de

00:04:38.200 --> 00:04:40.950
las líneas, por lo que
Estoy algo bastante lenta.

00:04:40.950 --> 00:04:42.440
>> Sí.
>> Y promocionar obviamente todas

00:04:42.440 --> 00:04:45.395
estos, a lo que llamamos columnas virtuales,
fuera de la trama.

00:04:45.395 --> 00:04:45.950
>> Derecho.
>> Y

00:04:45.950 --> 00:04:49.270
a continuación, hacer algunas sencillas
las agregaciones abajo allí, y

00:04:49.270 --> 00:04:50.660
salida en un archivo.

00:04:50.660 --> 00:04:53.170
Para no tener que
escribir los datos.

00:04:53.170 --> 00:04:58.600
Ahora no voy a ejecutar, pero
Si lo ejecuta contra las existentes

00:04:58.600 --> 00:05:02.850
en la actualidad, el tiempo de ejecución
observará algunas cosas.

00:05:02.850 --> 00:05:06.110
Permitirme acercar rápidamente para
puede ver los números aquí.

00:05:06.110 --> 00:05:13.000
Primero, tenemos unos 2.150
archivos que estamos trabajando en.

00:05:13.000 --> 00:05:15.010
Que vea
en la mano derecha.

00:05:15.010 --> 00:05:16.098
>> 2.150.
>> Permitirme,

00:05:16.098 --> 00:05:18.700
es posible acercar parte aquí.

00:05:18.700 --> 00:05:20.310
Eso es básicamente la entrada.

00:05:20.310 --> 00:05:23.290
Por lo que trabajamos en los archivos de más de 2.000.

00:05:23.290 --> 00:05:23.940
>> Está bien.

00:05:23.940 --> 00:05:27.825
>> Ahora Desgraciadamente,
la compilación tiene diez minutos.

00:05:27.825 --> 00:05:28.600
>> [RÍEN]
>> Por el momento.

00:05:28.600 --> 00:05:31.230
Y en realidad,
Si llega a más de 5.000 archivos o

00:05:31.230 --> 00:05:33.190
por lo que es tiempo de se espera.

00:05:33.190 --> 00:05:37.580
Dado que nuestro tiempo de compilación
hacia fuera del límite es de 24 minutos.

00:05:37.580 --> 00:05:39.620
>> Está bien.
>> Y pasar por alto la puesta en cola, se

00:05:39.620 --> 00:05:42.850
tenía algunas otras cosas que se ejecutan en el
mismo tiempo cuando estaba haciendo este trabajo.

00:05:42.850 --> 00:05:46.411
Y ya está
se ejecuta en 35 minutos.

00:05:46.411 --> 00:05:46.932
>> Sí, woo.

00:05:46.932 --> 00:05:50.264
>> O 35 y una mitad minutos
lograr tus cosas que hacer.

00:05:50.264 --> 00:05:50.889
>> Está bien.

00:05:50.889 --> 00:05:53.178
>> Sí, así que no muy buena.

00:05:53.178 --> 00:05:55.150
>> Más de 2.000 archivos
parece mucho tiempo.

00:05:56.240 --> 00:05:57.570
>> Lo que hicimos fue ahora

00:05:57.570 --> 00:06:02.120
Ahora es el trabajo con
se ejecuta en los bits nuevo.

00:06:02.120 --> 00:06:02.660
>> Está bien.

00:06:02.660 --> 00:06:07.890
>> Y lo primero
Observe que es mi

00:06:07.890 --> 00:06:11.530
Ahora ha pasado el tiempo de compilación
abajo en un orden de magnitud.

00:06:11.530 --> 00:06:12.830
Ahora es acerca de aproximadamente un minuto.

00:06:12.830 --> 00:06:13.640
>> Un minuto, sí.

00:06:13.640 --> 00:06:17.560
>> Y probablemente va
para escalar mucho mejor en

00:06:17.560 --> 00:06:18.707
términos del número de archivos.

00:06:18.707 --> 00:06:19.508
>> Está bien.
>> Por lo que esperamos que

00:06:19.508 --> 00:06:21.780
orden de uno o dos de
archivos más que anteriormente.

00:06:21.780 --> 00:06:23.550
>> Wow.

00:06:23.550 --> 00:06:25.990
>> Y la otra nota
como es posible que observe es,

00:06:25.990 --> 00:06:30.890
volver a pasar por alto la cola, el
funcionamiento era menos de diez minutos.

00:06:30.890 --> 00:06:35.700
Por lo que el procesamiento de estos
archivos de más de 2.000 fue bastante

00:06:35.700 --> 00:06:37.180
ahora un poco más rápido.

00:06:37.180 --> 00:06:41.010
Porque también hemos producido
mejor los planes

00:06:41.010 --> 00:06:43.510
sabe cómo tratar con este tipo de archivos.

00:06:43.510 --> 00:06:44.420
>> Bueno, buena.

00:06:44.420 --> 00:06:47.930
>> Esta es solo dato de una sugerencia en

00:06:47.930 --> 00:06:49.825
Novedades de
condiciones de rendimiento.

00:06:49.825 --> 00:06:50.440
>> Buena.

00:06:50.440 --> 00:06:53.710
>> Otra cosa que nos
mejorar es la reutilización de envases.

00:06:53.710 --> 00:06:58.160
Así que hoy, cuando programe un trabajo
todas estas notas que usted

00:06:58.160 --> 00:07:02.920
tiene dentro del gráfico de trabajo
Básicamente se ejecute en pequeños recipientes.

00:07:02.920 --> 00:07:08.550
Y cada vez que se inicia un trabajo,
crea un nuevo contenedor y

00:07:08.550 --> 00:07:13.225
que toma entre medio segundo
posiblemente varios segundos.

00:07:13.225 --> 00:07:13.970
>> Derecho.

00:07:13.970 --> 00:07:17.710
>> Y así lo que estamos ahora
Si lo hace en la próxima versión,

00:07:17.710 --> 00:07:20.440
es que nos estamos reutilizando
los contenedores siempre que sea posible.

00:07:20.440 --> 00:07:23.780
Por lo que básicamente no tiene
ese tiempo de inicio de todo el tiempo.

00:07:23.780 --> 00:07:26.799
Y que también debe mejorar
el rendimiento bastante.

00:07:27.930 --> 00:07:28.830
>> Eso de bueno saber.

00:07:28.830 --> 00:07:29.893
>> Ahora en términos de funcionalidad,

00:07:29.893 --> 00:07:31.441
Obviamente ya no tengo
estado aquí por tanto tiempo.

00:07:31.441 --> 00:07:32.469
>> [RÍEN]
>> Tenemos una gran cantidad de

00:07:32.469 --> 00:07:33.089
Funcionalidad de [CROSSTALK].

00:07:33.089 --> 00:07:35.760
>> Una larga lista.

00:07:35.760 --> 00:07:39.350
>> Tal vez voy y mostrar algunos de
aquellos, voy a ir rápidamente a través de.

00:07:39.350 --> 00:07:43.000
Así que hemos añadido muestreo, voy a
mostrar un sencillo ejemplo.

00:07:43.000 --> 00:07:46.840
Pero también tenemos capacidad
a uniforme de muestreo y

00:07:46.840 --> 00:07:50.480
muestreo incluso a través de
conjuntos de datos correlacionados.

00:07:50.480 --> 00:07:54.310
Por lo que si lo dibujos, obtendrá
realmente estadísticamente significativos

00:07:54.310 --> 00:07:56.765
ejemplo de las dos
socios conjuntos.

00:07:56.765 --> 00:07:57.610
>> Derecho.

00:07:57.610 --> 00:08:02.270
>> Es también la capacidad de
para realizar una ordenación previa o reducir.

00:08:02.270 --> 00:08:05.330
Le mostraré rápidamente el código
cómo llamarlo.

00:08:05.330 --> 00:08:10.190
Tengo un blog publicar en mi MSDM
blog que muestra cómo

00:08:10.190 --> 00:08:13.090
escribir también el reductor.

00:08:13.090 --> 00:08:18.240
Hemos agregado algunas adicionales
Opciones de declaración de variables

00:08:18.240 --> 00:08:20.845
que podemos abordar
parametrización y

00:08:20.845 --> 00:08:23.705
constante de plegado,
Se muestra en un segundo.

00:08:23.705 --> 00:08:25.563
Y agregamos IF Then Else.

00:08:25.563 --> 00:08:28.127
>> Sí [REÍR].

00:08:28.127 --> 00:08:28.985
Sí!

00:08:28.985 --> 00:08:30.465
>> Sin embargo, es sólo el tiempo de compilación.

00:08:30.465 --> 00:08:31.245
>> Está bien.
>> Básicamente da

00:08:31.245 --> 00:08:33.355
la capacidad para
parametriza la secuencia de comandos.

00:08:33.355 --> 00:08:33.930
>> Está bien.
>> Y

00:08:33.930 --> 00:08:37.815
a continuación, vea si desea ejecutar,
Digamos,

00:08:37.815 --> 00:08:40.933
la versión de depuración o de la producción
versión de la secuencia de comandos, por ejemplo.

00:08:40.933 --> 00:08:42.860
>> Está bien.
Siendo útil aunque.

00:08:42.860 --> 00:08:47.200
>> Sí, también puede utilizar
EXISTE archivo o partición

00:08:47.200 --> 00:08:51.550
dentro de la IF expresión después de ELSE,
o en cualquier otro contexto booleano.

00:08:51.550 --> 00:08:53.492
>> Está bien.
>> Para comprobar por ejemplo,

00:08:53.492 --> 00:08:56.323
no el archivo o
ya existe la partición.

00:08:56.323 --> 00:08:59.490
Y si es así,
a continuación, vamos a ejecutar algo.

00:08:59.490 --> 00:09:01.040
O si no es así,
a continuación, ejecutar otra cosa.

00:09:01.040 --> 00:09:02.150
>> Esa es la gran.
>> Lo veremos en

00:09:02.150 --> 00:09:02.830
así un minuto.

00:09:02.830 --> 00:09:04.080
>> Está bien.

00:09:04.080 --> 00:09:06.680
Omitir las primeras n filas, esto ha sido
la solicitud de un rato, creo.

00:09:06.680 --> 00:09:07.920
>> Sí, sí, sí, y

00:09:07.920 --> 00:09:11.252
realmente esperamos que nos
tendrían hacia fuera hace mucho tiempo.

00:09:11.252 --> 00:09:12.245
>> [RÍEN]
>>, Pero nos costó,

00:09:12.245 --> 00:09:13.890
Desafortunadamente, un poco más.

00:09:13.890 --> 00:09:14.770
Y ahora está allí.

00:09:14.770 --> 00:09:15.607
>> Está bien.
>> Lo veremos

00:09:15.607 --> 00:09:16.169
en un minuto así.

00:09:16.169 --> 00:09:18.420
>> Woo, está bien.

00:09:18.420 --> 00:09:20.650
>> Y
utilizando la instrucción para abreviar los nombres de C#.

00:09:20.650 --> 00:09:23.150
>> Está bien.
>> Le mostraré rápidamente.

00:09:23.150 --> 00:09:26.980
Y, a continuación, por último,
nos hemos alter table agregar y

00:09:26.980 --> 00:09:28.090
eliminación de columnas.

00:09:28.090 --> 00:09:29.491
>> Está bien.
>> Que le da la capacidad para realizar

00:09:29.491 --> 00:09:31.490
un poco de esquema
evolución de las tablas.

00:09:31.490 --> 00:09:32.560
>> Maravilloso.
>> También.

00:09:32.560 --> 00:09:34.950
>> Buena.
>> No muestro que aunque.

00:09:34.950 --> 00:09:36.397
>> Eso de acuerdo.
>>, Puede buscarla en la versión

00:09:36.397 --> 00:09:37.598
notas que hemos publicado un poco.

00:09:37.598 --> 00:09:41.017
>> Está bien.
>> Bien, así que volvamos a mi código

00:09:41.017 --> 00:09:45.633
aquí y echemos un vistazo a
segundo script que tengo.

00:09:45.633 --> 00:09:49.318
Ahora lo que hace esta secuencia de comandos es
se declaran algunas variables, y

00:09:49.318 --> 00:09:51.275
Se obtenga en en un segundo.

00:09:51.275 --> 00:09:52.862
>> Mm-hm.

00:09:52.862 --> 00:09:54.800
>> Ya existe
son las diferentes opciones y

00:09:54.800 --> 00:09:56.681
Deseo mostrar rápidamente
es lo que hacen.

00:09:56.681 --> 00:09:59.712
Y aquí abajo, a continuación, I
tener una instrucción IF.

00:09:59.712 --> 00:10:04.472
Y ¿qué ocurre si la instrucción no es
comprueba en realidad existe el archivo

00:10:04.472 --> 00:10:07.617
en el almacén cuando
la secuencia de comandos se compila.

00:10:07.617 --> 00:10:09.279
>> Sí, éste es uno de los ejemplos
¿dio en la diapositiva, derecho?

00:10:09.279 --> 00:10:14.260
>> Sí, y si existe,
a continuación, hacer una extracción aquí.

00:10:14.260 --> 00:10:18.899
Ahora esta extracción funciona
en algunos datos de telemetría del coche.

00:10:18.899 --> 00:10:23.839
Y por lo tanto, los datos realmente
contiene, voy a mostrar que

00:10:23.839 --> 00:10:29.049
Es rápida, dos filas de encabezado.

00:10:31.040 --> 00:10:34.630
Pueden ver aquí, es algunos coches
telemetría desde la línea de abajo.

00:10:34.630 --> 00:10:39.132
Pero la primera línea simplemente da
Me alguna información de grabación.

00:10:39.132 --> 00:10:43.199
Y, a continuación, la segunda línea me da
la fila de encabezado real y así sucesivamente.

00:10:43.199 --> 00:10:45.929
Y obviamente quisiera
Si desea omitir esas dos, por lo que

00:10:45.929 --> 00:10:47.361
que funciona Mi extractor.

00:10:50.286 --> 00:10:55.948
Por lo que estoy usando skipFirstNRows:2.

00:10:55.948 --> 00:11:00.877
A continuación, hacer algunos cálculos aquí,
sólo algunos agrupación

00:11:00.877 --> 00:11:05.940
Para ver información, y
a continuación, en el extremo de salida.

00:11:05.940 --> 00:11:07.880
Si el archivo no existe,

00:11:07.880 --> 00:11:13.200
Crear sólo una fila de pseudo aquí
que dice: archivo no encontrado.

00:11:13.200 --> 00:11:16.334
Y hacer el mismo resultado
por trampas en el nombre del

00:11:16.334 --> 00:11:17.410
la columna.

00:11:17.410 --> 00:11:19.328
>> [RÍEN]
>> Así que espero que funciona.

00:11:19.328 --> 00:11:23.576
Bien, por lo que si ejecuto esto ahora,
Bueno, antes de que ejecute,

00:11:23.576 --> 00:11:27.930
Permítame declarar rápidamente,
Explique la declaración aquí.

00:11:27.930 --> 00:11:31.700
Por lo tanto, esta instrucción declare
dice nombre DECLARE externo.

00:11:31.700 --> 00:11:36.380
Ahora lo que esto hace es que me permite
Para agregar otra instrucción de declaración

00:11:36.380 --> 00:11:41.180
o un parámetro de la secuencia de comandos.

00:11:41.180 --> 00:11:43.424
Pero si no hay ningún
parámetro proporcionado,

00:11:43.424 --> 00:11:46.332
a continuación, ejecuta la secuencia de comandos sigue
con este valor predeterminado.

00:11:46.332 --> 00:11:49.692
Por lo que no es así, ya que hoy if I
Hay dos instrucciones para declare

00:11:49.692 --> 00:11:52.090
la misma variable,
nos básicamente error.

00:11:52.090 --> 00:11:53.610
Y en este caso, básicamente decimos,

00:11:53.610 --> 00:11:56.790
Bueno, en realidad esto es tipo de
el valor predeterminado para la secuencia de comandos.

00:11:56.790 --> 00:11:59.750
Y si desea proporcionar con
algún mecanismo de parámetro, para

00:11:59.750 --> 00:12:02.785
ejemplo de generador de datos de Azure
como un modelo de parámetro

00:12:02.785 --> 00:12:04.620
donde antepone
las declaraciones de clase.

00:12:04.620 --> 00:12:08.355
Por lo tanto, que me ofrecería la posibilidad de
valor predeterminado de esta secuencia de comandos y

00:12:08.355 --> 00:12:11.595
entonces todavía parametriza para
ejemplo de ADF o

00:12:11.595 --> 00:12:13.805
otra herramienta de presentación.

00:12:13.805 --> 00:12:17.623
La quinta línea
dice que DECLARE CONST.

00:12:17.623 --> 00:12:21.483
Lo que esto hace es, realmente
comprueba si la expresión que

00:12:21.483 --> 00:12:25.430
proporcionar después es constante plegable,
¿Por qué es importante?

00:12:25.430 --> 00:12:30.200
Bueno, constante plegable es algo
que podemos evaluar en compilación

00:12:30.200 --> 00:12:31.220
tiempo, y

00:12:31.220 --> 00:12:35.300
tenemos unos contextos donde se
permiten colocar en expresiones.

00:12:35.300 --> 00:12:38.860
Que bien tienen que ser
constante plegable, al igual que para

00:12:38.860 --> 00:12:41.810
ejemplo la de
cláusula en un extracto.

00:12:41.810 --> 00:12:46.190
O tengo optimizaciones especiales
que se producirá.

00:12:47.790 --> 00:12:51.580
Pero todavía se ejecutará incluso
Si no es constante plegable.

00:12:51.580 --> 00:12:54.810
Así que esto me da la posibilidad de
afirmar que esta expresión

00:12:54.810 --> 00:12:55.830
es constante plegable.

00:12:55.830 --> 00:12:57.028
Ahora, en este caso,

00:12:57.028 --> 00:13:01.617
Puesto que estoy haciendo concatenación de cadenas
con una función anónima allí.

00:13:01.617 --> 00:13:03.347
>> [RÍEN]
>> Esto no va a ser

00:13:03.347 --> 00:13:05.943
constante plegable, por lo que
Si se compila este.

00:13:08.872 --> 00:13:13.118
Y se produce el error de sintaxis aquí
como estoy ejecutando todavía en no

00:13:13.118 --> 00:13:14.840
publicado en tiempo de ejecución aquí.

00:13:14.840 --> 00:13:18.392
Por lo que es mi herramienta local
no actualizado todavía.

00:13:18.392 --> 00:13:22.376
>> [RÍEN]
>> Se ha descubierto después de aproximadamente seis a

00:13:22.376 --> 00:13:29.512
el compilador será de diez segundos
queja sobre esto, veamos.

00:13:32.613 --> 00:13:34.850
>> Por lo tanto, en este punto,
Sí, hay que ir.

00:13:34.850 --> 00:13:37.600
>> Sí, por lo que
Voy a pasar por aquí los errores.

00:13:38.740 --> 00:13:42.850
Y si puedo acercar
Observará que ahora dice:

00:13:42.850 --> 00:13:46.850
la expresión no puede ser
se evalúa en tiempo de compilación.

00:13:46.850 --> 00:13:47.447
>> No puede doblarse.
Y

00:13:47.447 --> 00:13:52.330
Aquí está en las palabras clave CONST declarar
expresión donde esto sucede.

00:13:53.800 --> 00:13:58.458
Por lo tanto, ahora puedo hacer es,
Puedo ir a la parte posterior del curso,

00:13:58.458 --> 00:14:04.490
sólo solucionar este problema, y
Corríjalo con esta instrucción.

00:14:04.490 --> 00:14:08.470
Ahora, el valor predeterminado que tengo aquí,
no existe ese archivo.

00:14:08.470 --> 00:14:15.587
Si ejecuto este trabajo ahora,
Se vaya y se ejecutarán y

00:14:15.587 --> 00:14:21.032
crear el archivo acaba diciendo
que el archivo no existe.

00:14:21.032 --> 00:14:27.234
>> Bien, así que
Esto va a tomar un poco.

00:14:29.174 --> 00:14:32.710
¿El código que estábamos buscando en?

00:14:32.710 --> 00:14:33.910
>> Buscábamos esto aquí.

00:14:33.910 --> 00:14:38.030
>> Bien, así que la diferencia,
como decía que la línea 5

00:14:38.030 --> 00:14:42.020
en este momento no puede doblarse, por lo que
¿cuz no se pudo encontrar el nombre?

00:14:42.020 --> 00:14:44.408
>> N, plegamiento constante significa
que se puede evaluar o

00:14:44.408 --> 00:14:45.019
compilado en.

00:14:45.019 --> 00:14:48.533
Por lo que estamos básicamente kind
de hacer alguna evaluación de

00:14:48.533 --> 00:14:49.890
las expresiones.

00:14:49.890 --> 00:14:52.018
Similar a lo que C# hace por ejemplo,

00:14:52.018 --> 00:14:54.288
Si agrega dos constante
valores con C#.

00:14:54.288 --> 00:14:57.846
>> Y por lo tanto, en este caso, obviamente
Esta expresión lambda no es

00:14:57.846 --> 00:15:01.826
constante plegable porque nuestra
carpeta constante no es lo suficientemente inteligente

00:15:01.826 --> 00:15:02.819
para buscar en él.

00:15:02.819 --> 00:15:06.251
Mientras que una cadena simple
se admite la concatenación,

00:15:06.251 --> 00:15:08.981
realmente toda la cadena
las operaciones son,

00:15:08.981 --> 00:15:11.733
es por eso que tuve que, como por ejemplo un -
>> Todos los derechos, sí,

00:15:11.733 --> 00:15:12.559
eso tiene sentido ahora.

00:15:12.559 --> 00:15:15.719
>> Enfriar todos los derechos, ejecutemos
Atrás y ver lo que hace el trabajo.

00:15:17.110 --> 00:15:17.631
Por lo que se está ejecutando ahora.

00:15:20.490 --> 00:15:22.140
Probablemente ya terminado, sí.

00:15:23.910 --> 00:15:27.015
Así que ahora,
Si se abre el archivo de encabezado aquí,

00:15:27.015 --> 00:15:31.592
se que podrá descargar

00:15:31.592 --> 00:15:36.562
Tenga en cuenta que estoy obteniendo el -
>> No encontrado.

00:15:36.562 --> 00:15:37.620
>> Archivo no encontrado.

00:15:38.680 --> 00:15:43.920
Y si regresamos ahora y
Cambiar esto

00:15:43.920 --> 00:15:48.450
y agregue este DECLARE adicional

00:15:48.450 --> 00:15:51.640
instrucciones antes que la externa
declaración de la misma variable.

00:15:52.770 --> 00:15:54.420
Y enviar esto ahora

00:15:55.450 --> 00:15:57.770
en ese momento en el tiempo
que realmente funciona.

00:15:57.770 --> 00:16:00.210
>> Veo.
>> Es así, quizás mientras se está ejecutando,

00:16:00.210 --> 00:16:01.850
Permítanme mostrarles rápidamente algunos
de lo demás.

00:16:04.520 --> 00:16:10.210
Por lo tanto, una cosa que deseaba
Mostrar era la gama, el PRESORT.

00:16:10.210 --> 00:16:14.540
Por lo tanto, en este caso, aquí se
tiene un SQL U script

00:16:14.540 --> 00:16:16.780
toma algunos datos de rangos.

00:16:16.780 --> 00:16:22.340
Y tengo que tipo de contraer
los rangos que se superponen.

00:16:22.340 --> 00:16:26.940
Y por lo tanto, con el fin de poder hacer
que, escribo un agregador personalizado.

00:16:26.940 --> 00:16:31.492
Pero el agregador personalizado, la mejor
es la forma de hacerlo, si puedo hacer,

00:16:31.492 --> 00:16:34.400
Básicamente hay que
entrada de datos ordenados.

00:16:34.400 --> 00:16:38.594
Entonces, puedo simplemente mirar la siguiente
fila para ver si tengo que incluirlo

00:16:38.594 --> 00:16:42.174
en el intervalo anterior o
Si inicia un nuevo intervalo.

00:16:42.174 --> 00:16:46.647
Y por lo tanto, realizar una ordenación previa básicamente ahora
me da la posibilidad de crear

00:16:46.647 --> 00:16:49.650
agregaciones de ordenadas definido por el usuario.

00:16:49.650 --> 00:16:55.320
Así, esto es sólo un ejemplo,
realmente tiene esto en mi blog MSDN.

00:16:55.320 --> 00:16:59.260
Disponible si desea también
buscar el aspecto del código, y

00:16:59.260 --> 00:17:01.270
es que se puede descargar desde
nuestro sitio de backup también.

00:17:02.400 --> 00:17:05.800
Por lo tanto, a continuación, el segundo
lo que quería mostrar

00:17:05.800 --> 00:17:07.799
rápidamente es la instrucción USING.

00:17:09.230 --> 00:17:13.230
De nuevo, esto es código que nos
Puede descargar desde nuestra GitHub.

00:17:14.670 --> 00:17:19.570
Entonces, ¿qué hacer aquí es que hago referencia
un ensamblado espacial de SQL Server

00:17:19.570 --> 00:17:22.010
que descargado e instalado.

00:17:22.010 --> 00:17:24.880
Y también ya predefinidos y

00:17:24.880 --> 00:17:29.220
precargados en nuestro tiempo de ejecución es
el ensamblado System.Data.

00:17:29.220 --> 00:17:31.788
Así que ahora que, en lugar de tener que
Escriba los tipos de servidor de Microsoft SQL.

00:17:31.788 --> 00:17:35.734
>> [RÍEN]
>> Geometría SQL o geografía,

00:17:35.734 --> 00:17:39.181
Utilizar sólo la instrucción USING
para acortar, y

00:17:39.181 --> 00:17:42.243
a continuación, puedo usar
dentro de mi expresión de C#.

00:17:42.243 --> 00:17:44.380
>> Lo que tiene la experiencia
¿mucho mejor en este caso?

00:17:44.380 --> 00:17:46.322
>> Sí,
similar al uso de la cláusula de C#

00:17:46.322 --> 00:17:48.773
salvo que se trata de un caso superior
en lugar de minúsculas.

00:17:48.773 --> 00:17:51.057
>> Bien, sí, maravilloso.

00:17:51.057 --> 00:17:56.300
>> Ahora, volvamos a nuestro trabajo
que obviamente ha completado.

00:17:56.300 --> 00:17:59.779
Como se puede ver que estamos escribiendo
un poco más datos aquí, así que

00:17:59.779 --> 00:18:01.202
Si descarga el archivo.

00:18:06.711 --> 00:18:11.142
Ahora verá que hice:
¿>> Bien, obtendrá algunos datos?

00:18:11.142 --> 00:18:16.447
>> Cinco vueltas, se trata de la duración
de cada vuelta en milisegundos o

00:18:16.447 --> 00:18:19.890
por lo tanto, se trata de la más alta
RPM que obtuve.

00:18:19.890 --> 00:18:21.666
Esto también es el más alto
velocidad a la que lo obtuve,

00:18:21.666 --> 00:18:24.078
en un momento de kilómetros por hora,
no en millas por hora.

00:18:24.078 --> 00:18:25.125
>> [RÍEN].

00:18:25.125 --> 00:18:30.708
Y así que era el más rápido era, como
200 kilómetros por hora y 196.

00:18:30.708 --> 00:18:32.534
Y, a continuación, se ha producido probablemente,

00:18:32.534 --> 00:18:36.660
Tuve que conducir detrás de otro
chico que era sólo como 150 o algo así.

00:18:36.660 --> 00:18:39.654
>> Bien, bien 200 kilómetros
una hora, todavía unos 100 y -

00:18:39.654 --> 00:18:40.271
>> 25 millas.

00:18:40.271 --> 00:18:41.903
>> 25 millas, está bien.

00:18:41.903 --> 00:18:43.551
Que todavía está recortado
a lo largo de bastante bien.

00:18:43.551 --> 00:18:44.287
>> Y que se encontraba en una pista de carreras.

00:18:44.287 --> 00:18:45.263
>> Está bien.
[RISA]

00:18:45.263 --> 00:18:46.279
>> Y no en la vía pública.

00:18:46.279 --> 00:18:47.303
>> Que estaba en 405. [RISAS]

00:18:47.303 --> 00:18:48.575
>> No, no, no, no, no.

00:18:48.575 --> 00:18:50.702
No justifica el, unidad normal.

00:18:50.702 --> 00:18:51.472
>> Muy buena.

00:18:51.472 --> 00:18:54.991
[RISA]
>> Está bien, ya que esto sólo muestra cómo

00:18:54.991 --> 00:19:00.010
Ahora podemos básicamente usar IF, a continuación
Instrucción ELSE y omitir el encabezado.

00:19:00.010 --> 00:19:04.925
Porque ahora obviamente omitidos sobre
esos dos encabezados sin tener

00:19:04.925 --> 00:19:08.756
para escribir un extractor de datos personalizados o
Diga silent es igual a true o

00:19:08.756 --> 00:19:16.240
algo bueno, así que ahora, volver atrás
Aquí creo que he demostrado gran parte de ella.

00:19:16.240 --> 00:19:20.130
Ahora, compatibilidad también 's algo
que hemos agregado nuevas capacidades.

00:19:20.130 --> 00:19:21.320
En Visual Studio ahora,

00:19:21.320 --> 00:19:24.790
Si tiene un error en tiempo de ejecución,
hay una barra que aparece en la parte superior,

00:19:24.790 --> 00:19:29.690
que le permite descargar el
Error al vértice y depurar localmente.

00:19:29.690 --> 00:19:33.685
Por lo tanto, si tiene código de usuario, digamos que
escribir su propio extractor, o

00:19:33.685 --> 00:19:35.758
Escriba la FDU C# complicado.

00:19:35.758 --> 00:19:39.881
Y tiene un problema
causa de no sé,

00:19:39.881 --> 00:19:45.710
desbordamiento de la memoria, los números no válidos
de columnas, convertir errores más o menos.

00:19:45.710 --> 00:19:48.230
Ahora puede descargar el vértice y

00:19:48.230 --> 00:19:51.850
Mire localmente en su local
depurador, dentro de Visual Studio.

00:19:51.850 --> 00:19:52.670
>> Y ver dónde TI -
>> Y depurarlo y

00:19:52.670 --> 00:19:53.265
vea lo que sucede.

00:19:53.265 --> 00:19:54.913
Por lo es otra característica muy interesante.

00:19:54.913 --> 00:19:55.594
>> Muy agradable.

00:19:55.594 --> 00:19:59.084
>> Y espero que podemos invitar uno
de los chicos de la de Visual Studio

00:19:59.084 --> 00:20:01.724
equipo podría hacer un vídeo en algún momento. un

00:20:01.724 --> 00:20:02.220
>> Que sería interesante.

00:20:02.220 --> 00:20:03.620
Bien, sí, nosotros hacemos en eso.

00:20:03.620 --> 00:20:05.692
>> Bien,
Ahora es un poco más grave.

00:20:05.692 --> 00:20:06.910
Por lo tanto, hemos tenido la buena noticia.

00:20:06.910 --> 00:20:08.470
Ahora las malas noticias [RÍE].

00:20:08.470 --> 00:20:10.523
>> Es aún buenas noticias a largo plazo,
pero

00:20:10.523 --> 00:20:14.102
significa que las personas que realmente
está utilizando el nuevo SQL ahora mayo

00:20:14.102 --> 00:20:15.971
tiene que buscar y corregir sus secuencias de comandos.

00:20:15.971 --> 00:20:16.670
>> Está bien.

00:20:16.670 --> 00:20:19.909
>> Lo largo del tiempo de
nuestro desarrollo de características

00:20:19.909 --> 00:20:23.146
tenemos un par de cosas
se aprecia que necesite

00:20:23.146 --> 00:20:26.481
mejorar porque lo
era difícil de comprender.

00:20:26.481 --> 00:20:30.732
Porque era engañosa,
algo incorrecto, etc.

00:20:30.732 --> 00:20:35.044
La primera es que la gente consiguió
confundirse con la sintaxis de la partición

00:20:35.044 --> 00:20:37.050
en la instrucción de creación de tabla.

00:20:37.050 --> 00:20:39.175
Por lo que estábamos diciendo
Con particiones por HASH y

00:20:39.175 --> 00:20:42.220
a continuación, hemos dicho también
DIVIDIDAS POR CUBO.

00:20:42.220 --> 00:20:43.845
Y no estaba tan claro cómo se relacionan.

00:20:43.845 --> 00:20:44.676
>> Está bien.
>> Y así

00:20:44.676 --> 00:20:48.742
Ahora vamos a poner a la terminología
mucho, mucho más precisa.

00:20:48.742 --> 00:20:49.414
>> Está bien.

00:20:49.414 --> 00:20:51.369
>> Ahora decimos partición,

00:20:51.369 --> 00:20:54.687
las particiones son cosas
que son direccionables.

00:20:54.687 --> 00:20:59.310
Que se utiliza para llamar
DIVIDIDAS POR CUBO.

00:20:59.310 --> 00:21:02.818
Además, lo que hemos utilizado
para llamar a hash partición ahora son hash

00:21:02.818 --> 00:21:06.624
distribución o distribución de rango,
que es básicamente la distribución

00:21:06.624 --> 00:21:10.240
de los datos dentro de una tabla o
dentro de una partición individual.

00:21:10.240 --> 00:21:14.190
Y eso es ahora muy
claramente indicado en la sintaxis.

00:21:14.190 --> 00:21:17.237
Así que si tiene se ha utilizado
PARTICIONES, por favor, por favor,

00:21:17.237 --> 00:21:19.524
vaya y cambie el código
en distribuido por.

00:21:19.524 --> 00:21:20.400
>> Está bien.
>> Además,

00:21:20.400 --> 00:21:25.144
Si utiliza particiones por cubo
a continuación, ir y utilizar particiones por

00:21:25.144 --> 00:21:27.194
DISTRIBUIR, en su lugar.

00:21:27.194 --> 00:21:30.194
En realidad, eso es
muy importante, porque lo antes posible,

00:21:30.194 --> 00:21:32.660
se desconectará la sintaxis antigua,
¿verdad?

00:21:32.660 --> 00:21:37.688
Ahora se admiten ambas,
pero, a finales de septiembre,

00:21:37.688 --> 00:21:42.454
principios de octubre, probablemente,
se desconectará la sintaxis antigua.

00:21:42.454 --> 00:21:45.121
Y tendrá que ir y
cambiar la secuencia de comandos.

00:21:45.121 --> 00:21:46.442
>> Bien, sí.

00:21:46.442 --> 00:21:49.839
>> Y nota no afecta
cualquier elemento de los datos, así que

00:21:49.839 --> 00:21:53.947
no tiene que ir y
Vuelva a ejecutar la secuencia de comandos, los metadatos,

00:21:53.947 --> 00:21:56.724
los datos subyacentes
es exactamente el mismo.

00:21:56.724 --> 00:21:58.921
Es simplemente que la sintaxis
está cambiando, lo

00:21:58.921 --> 00:22:01.523
no tienes que hacer nada.

00:22:01.523 --> 00:22:07.061
Y del mismo modo que ahora vamos
a requieren que se utilice el funcionario

00:22:07.061 --> 00:22:11.954
indicación para
24 horas en el archivo establecer patrones.

00:22:11.954 --> 00:22:18.448
Por lo que actualmente se admiten ambos
h minúscula y mayúscula H.

00:22:18.448 --> 00:22:23.524
Pero en C# caso inferior h en
lenguaje del patrón significa es para

00:22:23.524 --> 00:22:25.606
relojes de 12 horas.

00:22:25.606 --> 00:22:29.282
Y, por tanto, vamos a ahora básicamente
Descartar la h minúscula y

00:22:29.282 --> 00:22:31.268
requerirá sólo mayúsculas H.

00:22:31.268 --> 00:22:34.050
>> Mayúscula h, está bien.

00:22:34.050 --> 00:22:39.490
>> Otra cosa en el archivo
establecer tamaño, tenemos dos formas de

00:22:39.490 --> 00:22:43.150
cede básicamente wild
tarjeta en un nombre y

00:22:43.150 --> 00:22:45.654
que es de tipo cadena o
en el texto o forma.

00:22:45.654 --> 00:22:49.326
Uno era la col; *.

00:22:49.326 --> 00:22:49.904
>> Sí.
>> Y

00:22:49.904 --> 00:22:51.293
el otro era simplemente el nombre de la columna.

00:22:51.293 --> 00:22:51.981
>> Está bien.

00:22:51.981 --> 00:22:53.279
>> Y que dio lugar a confusión.

00:22:53.279 --> 00:22:55.576
Tenían ligeramente
una semántica diferente, pero

00:22:55.576 --> 00:22:58.909
era muy confuso para las personas
comprender cuál.

00:22:58.909 --> 00:23:03.898
Así que vamos a básicamente
quitar el codename col *,

00:23:03.898 --> 00:23:08.780
y voy a hacer la semántica
de la que sólo tiene que

00:23:08.780 --> 00:23:13.900
nombre de columna es equivalente a
uno con la estrella antes.

00:23:13.900 --> 00:23:16.717
Por favor ir y
volver a cambiar porque [INAUDIBLE]-

00:23:16.717 --> 00:23:19.427
>> [CROSSTALK]

00:23:19.427 --> 00:23:22.676
>> Script dejará de funcionar cuando se

00:23:22.676 --> 00:23:24.189
no lo hacen.

00:23:24.189 --> 00:23:25.997
Bien, eso es todo.

00:23:25.997 --> 00:23:26.580
>> Bien, Maravilla.

00:23:26.580 --> 00:23:28.741
Información tan buena, muy interesante.

00:23:28.741 --> 00:23:30.389
Michael, gracias por venir.

00:23:30.389 --> 00:23:34.115
Si tienen alguna duda,
Si los visores tienen alguna pregunta,

00:23:34.115 --> 00:23:37.360
¿Cuál es la mejor manera de obtener
¿una suspensión de, hacerle preguntas?

00:23:37.360 --> 00:23:40.872
>> La mejor manera es si está
externo, puede tweet Me y

00:23:40.872 --> 00:23:42.458
Debo poder verla.

00:23:42.458 --> 00:23:43.626
>> Está bien.

00:23:43.626 --> 00:23:47.462
>> Lo contrario deje un comentario a lo largo,
debajo de ese vídeo aquí.

00:23:47.462 --> 00:23:49.510
>> Sí, en el blog
Sí, dejar un comentario.

00:23:49.510 --> 00:23:51.766
>> O
me conecte a través de mi blog más o menos.

00:23:51.766 --> 00:23:52.734
>> Está bien, perfecto.

00:23:52.734 --> 00:23:54.830
Todos los derechos, cuz estoy seguro
habrá algunas preguntas

00:23:54.830 --> 00:23:57.298
especialmente alrededor de la última
Marco de tiempo de septiembre principios de octubre.

00:23:57.298 --> 00:24:00.628
O sobre la próxima decir, 30 días
Iniciar migración sobre personas.

00:24:00.628 --> 00:24:04.122
Todo derecho, lo
visitas él en su cuenta de Twitter,

00:24:04.122 --> 00:24:06.773
su identificador de Twitter, o en su blog.

00:24:06.773 --> 00:24:08.920
Y estoy seguro de que Mike será
encantados de ayudarle.

00:24:08.920 --> 00:24:12.241
Todo el mundo, gracias por verlo,
y nos vemos la próxima vez.

00:24:12.241 --> 00:24:22.241
[MÚSICA]

