Show Menu
TEMAS×

Directrices generales para la ejecución de consultas en el Servicio de Consulta

Este documento detalla detalles importantes que deben conocerse al escribir consultas en el servicio de Consulta de la plataforma Adobe Experience Platform.
Para obtener información detallada sobre la sintaxis SQL utilizada en el servicio de Consulta, lea la documentación de sintaxis SQL.

Modelos de ejecución de Consulta

El servicio de Consulta de la plataforma Adobe Experience tiene dos modelos de ejecución de consultas: interactiva y no interactiva. La ejecución interactiva se utiliza para el desarrollo de consultas y la generación de informes en las herramientas de inteligencia empresarial, mientras que la no interactiva se utiliza para trabajos más grandes y consultas operativas como parte de un flujo de trabajo de procesamiento de datos.

Ejecución de consultas interactivas

Las Consultas se pueden ejecutar de forma interactiva enviándolas a través de la interfaz de usuario del servicio de Consulta o a través de un cliente conectado. Cuando se ejecuta el servicio de Consulta a través de un cliente conectado, se ejecuta una sesión activa entre el cliente y el servicio de Consulta hasta que la consulta enviada se devuelve o se agota el tiempo de espera.
La ejecución de consultas interactivas tiene las siguientes limitaciones:
Parámetro
Limitación
Tiempo de espera de Consulta
10 minutos
Máximo de filas devueltas
50,000
consultas simultáneas máximas
5
Para anular la limitación máxima de filas, incluya LIMIT 0 en la consulta. El tiempo de espera de consulta de 10 minutos sigue siendo válido.
De forma predeterminada, los resultados de las consultas interactivas se devuelven al cliente y no se mantienen . Para mantener los resultados como un conjunto de datos en la plataforma de experiencias, la consulta debe utilizar la CREATE TABLE AS SELECT sintaxis.

Ejecución de consultas no interactivas

Las Consultas enviadas a través de la API de servicio de Consulta se ejecutan de forma no interactiva. La ejecución no interactiva significa que el servicio de Consulta recibe la llamada de API y ejecuta la consulta en el orden en que se recibe. Las consultas no interactivas siempre resultan en la generación de un nuevo conjunto de datos en la plataforma de experiencias para recibir los resultados o en la inserción de nuevas filas en un conjunto de datos existente.

Acceso a un campo específico dentro de un objeto

Para acceder a un campo dentro de un objeto de la consulta, puede utilizar la notación de puntos ( . ) o la notación de corchetes ( [] ). La instrucción SQL siguiente utiliza la notación de puntos para recorrer el endUserIds objeto hasta el mcid objeto.
SELECT endUserIds._experience.mcid
FROM {ANALYTICS_TABLE_NAME}
WHERE endUserIds._experience.mcid IS NOT NULL
LIMIT 1

Propiedad
Descripción
{ANALYTICS_TABLE_NAME}
El nombre de la tabla de análisis.
La instrucción SQL siguiente utiliza la notación de corchetes para recorrer el endUserIds objeto hasta el mcid objeto.
SELECT endUserIds['_experience']['mcid']
FROM {ANALYTICS_TABLE_NAME}
WHERE endUserIds._experience.mcid IS NOT NULL
LIMIT 1

Propiedad
Descripción
{ANALYTICS_TABLE_NAME}
El nombre de la tabla de análisis.
Dado que cada tipo de anotación devuelve los mismos resultados, el que elija utilizar estará a su preferencia.
Las dos consultas de ejemplo anteriores devuelven un objeto acoplado en lugar de un solo valor:
              endUserIds._experience.mcid   
--------------------------------------------------------
 (48168239533518554367684086979667672499,"(ECID)",true)
(1 row)

El endUserIds._experience.mcid objeto devuelto contiene los valores correspondientes para los parámetros siguientes:
  • id
  • namespace
  • primary
Cuando la columna solo se declara en el objeto, devuelve el objeto entero como una cadena. Para vista solo del ID, utilice:
SELECT endUserIds._experience.mcid.id
FROM {ANALYTICS_TABLE_NAME}
WHERE endUserIds._experience.mcid IS NOT NULL
LIMIT 1

     endUserIds._experience.mcid.id 
----------------------------------------
 48168239533518554367684086979667672499
(1 row)

Cuándo utilizar comillas simples, comillas de doble y comillas

En esta sección se explica cuándo utilizar comillas simples, comillas de doble y comillas en consultas.

Comillas únicas

La comilla simple ( ' ) se utiliza para crear cadenas de texto. Por ejemplo, se puede utilizar en la SELECT instrucción para devolver un valor de texto estático en el resultado y en la cláusula WHERE para evaluar el contenido de una columna.
La siguiente consulta declara un valor de texto estático ( 'datasetA' ) para una columna:
SELECT 
  'datasetA',
  timestamp,
  web.webPageDetails.name
FROM {ANALYTICS_TABLE_NAME}
LIMIT 10

La siguiente consulta utiliza una cadena con un solo comillas ( 'homepage' ) en su cláusula WHERE para devolver eventos para una página específica.
SELECT 
  timestamp,
  endUserIds._experience.mcid.id
FROM {ANALYTICS_TABLE_NAME}
WHERE web.webPageDetails.name = 'homepage'
LIMIT 10

Comillas de Doble

La comilla de doble ( " ) se utiliza para declarar un identificador con espacios.
La siguiente consulta utiliza comillas de doble para devolver valores de columnas especificadas cuando una columna contiene un espacio en su identificador:
SELECT
  no_space_column,
  "space column"
FROM
( SELECT 
    'column1' as no_space_column,
    'column2' as "space column"
)

Las comillas de Doble no se pueden utilizar con acceso a campo de notación de puntos.

Comillas secundarias

La comilla ` trasera se utiliza para omitir los nombres de columna reservados únicamente cuando se utiliza la sintaxis de notación de puntos. Por ejemplo, como order es una palabra reservada en SQL, debe utilizar comillas para acceder al campo commerce.order :
SELECT 
  commerce.`order`
FROM {ANALYTICS_TABLE_NAME}
LIMIT 10

También se utilizan comillas dobles para acceder a un campo que inicio con un número. Por ejemplo, para acceder al campo 30_day_value , debe utilizar la notación de comillas invertidas.
SELECT
    commerce.`30_day_value`
FROM {ANALYTICS_TABLE_NAME}
LIMIT 10

Las comillas tipográficas no son necesarias si utiliza la notación de corchetes.
 SELECT
  commerce['order']
 FROM {ANALYTICS_TABLE_NAME}
 LIMIT 10

Pasos siguientes

Al leer este documento, se le han presentado algunas consideraciones importantes al escribir consultas con el servicio de Consulta. Para obtener más información sobre cómo utilizar la sintaxis SQL para escribir sus propias consultas, lea la documentación de sintaxis SQL.