En esta página se describe cómo gestionar el contenido del almacén de columnas del motor columnar añadiendo y quitando columnas manualmente.
En función de tu carga de trabajo, puedes añadir manualmente columnas al almacén de columnas o eliminar algunas o todas las columnas de una tabla o una vista materializada del almacén de columnas. La evaluación de consultas usa automáticamente los datos de columnas almacenados para responder a las consultas.
Cuando elija las tablas, las vistas materializadas y las columnas que va a añadir al almacén de columnas, tenga en cuenta tanto el tamaño del almacén de columnas como la forma de la carga de trabajo. Entre los candidatos adecuados para la selección se incluyen las tablas o vistas grandes que se analizan con frecuencia. En estas tablas o vistas, identifica los índices grandes no únicos que usa la carga de trabajo de OLAP. Puedes añadir las columnas de estos índices al almacén de columnas y, posiblemente, eliminar los índices, lo que eliminará el coste de rendimiento asociado a su mantenimiento en la instancia principal.
Utilice uno de los siguientes métodos para gestionar el contenido del almacén de columnas del motor de columnas:
- Gestionar el contenido de Column Store actualizando las marcas de la base de datos
- Gestionar el contenido de column store con funciones SQL
Consulta Qué datos puedes añadir al almacén de columnas para obtener información sobre los tipos de datos y las fuentes de datos que puedes usar al añadir tablas, columnas y vistas materializadas al almacén de columnas.
Antes de empezar
- Debes tener uno de estos roles de gestión de identidades y accesos en el Google Cloud proyecto que estés usando:
roles/alloydb.admin
(el rol de gestión de identidades y accesos predefinido de AlloyDB)roles/owner
(el rol básico de propietario de gestión de identidades y accesos)roles/editor
(el rol básico de gestión de identidades y accesos Editor)
Si no tienes ninguno de estos roles, ponte en contacto con el administrador de tu organización para solicitar acceso.
Gestionar el contenido de column store actualizando las marcas de la base de datos
Puede gestionar el contenido de column store manualmente actualizando la marca de base de datos google_columnar_engine.relations
. La marca tiene un solo valor que especifica todas las fuentes de datos de tu almacén de columnas. Durante el reinicio, las columnas especificadas en esta marca se rellenan automáticamente en el almacén de columnas.
Puedes usar esta marca junto con auto-columnarization. Si el motor columnar tiene memoria disponible después de rellenar las columnas que especifiques mediante la marca google_columnar_engine.relations
, la columnarización automática añade más columnas al almacén de columnas según sea necesario.
Para obtener más información sobre cómo definir las marcas de la base de datos de una instancia con la CLI de Google Cloud o con la consola Google Cloud , consulta el artículo Configurar las marcas de la base de datos de una instancia.
Añadir columnas con marcas
Para añadir columnas al almacén de columnas, define el
google_columnar_engine.relations
de una instancia. Asigne a este parámetro una lista de elementos separados por comas, en la que cada elemento especifique una lista de columnas que se incluirán de una tabla concreta, con este formato:
DATABASE_NAME.SCHEMA_NAME.TABLE_NAME(COLUMN_LIST)
Haz los cambios siguientes:
DATABASE_NAME: la base de datos que contiene las columnas que se van a añadir al almacén de columnas.
SCHEMA_NAME: el esquema que identifica las tablas o las vistas materializadas que se van a añadir al almacén de columnas. Por ejemplo,
public
.TABLE_NAME: la tabla o la vista materializada que contiene las columnas que se van a añadir al almacén de columnas.
COLUMN_LIST: lista separada por comas de las columnas que se van a añadir al almacén de columnas.
Para añadir todas las columnas de una tabla o de una vista materializada, omita la lista de columnas:
DATABASE_NAME.SCHEMA_NAME.TABLE_NAME
Para obtener más información sobre cómo definir las marcas de la base de datos en una instancia, consulta Configurar las marcas de la base de datos de una instancia.
Nota sobre la sintaxis de la línea de comandos
Si usas la CLI de Google Cloud para definir la marca google_columnar_engine.relations
, debes usar la sintaxis de delimitador alternativo para separar las marcas de base de datos que definas. Esto se debe a que la lista de columnas está separada por comas, por lo que debes usar un carácter que no sea una coma al especificar marcas en el mismo argumento de línea de comandos.
En el siguiente ejemplo se muestra cómo usar la CLI de gcloud para añadir dos columnas en el esquema public
al almacén de columnas. En el ejemplo se define una marca independiente para habilitar el motor columnar, ya que, al usar el comando gcloud alloydb instance update
para definir cualquier marca de base de datos, también se deben definir todas las demás marcas de base de datos que quieras que tengan valores no predeterminados, aunque ya estén definidas.
gcloud alloydb instances update INSTANCE_NAME \
--database-flags=^:^\
google_columnar_engine.relations='DATABASE_NAME.public.TABLE_NAME(COLUMN_1,COLUMN_2)'\
:google_columnar_engine.enabled=on\
[:FLAG_3=VALUE_3 ...] \
--region=REGION_ID \
--cluster=CLUSTER_ID
Eliminar columnas con marcas
Para eliminar columnas del almacén de columnas, asigna un nuevo valor a la marca google_columnar_engine.relations
descrita en la sección anterior y omite las columnas que quieras eliminar.
Para eliminar todas las columnas del almacén de columnas, anula la marca google_columnar_engine.relations
de tu instancia.
Para obtener más información sobre cómo definir marcas de base de datos en una instancia, consulta Configurar las marcas de base de datos de una instancia.
Gestionar el contenido de column store con funciones SQL
Puedes gestionar el contenido de Column Store manualmente mediante funciones SQL.
Añadir columnas con funciones SQL
Ejecuta la función SQL google_columnar_engine_add
para añadir columnas
al almacén de columnas.
Este método añade las columnas especificadas al almacén de columnas y gestiona las columnas solo en el nodo conectado. Las nuevas columnas no se conservan en la tienda al reiniciar la instancia.
Este método no cambia la marca de la base de datos google_columnar_engine.relations
. La columna automática no tiene en cuenta las columnas añadidas por esta función SQL.
Cliente psql
SELECT google_columnar_engine_add( relation => 'TABLE_NAME', columns => 'COLUMN_LIST' );
-
Sustituye lo siguiente:
- "TABLE_NAME": cadena que contiene el nombre de la tabla o de la vista materializada. Si la tabla o la vista se encuentran en un esquema distinto de
public
, especifica el nombre del esquema, un punto y el nombre de la tabla o la vista. Por ejemplo,'myschema.mytable'
. - "COLUMN_LIST": cadena que contiene una lista de nombres de columnas separados por comas y que distingue entre mayúsculas y minúsculas. Si quiere añadir todas las columnas de la tabla o de la vista materializada al almacén de columnas, omita este parámetro.
Eliminar columnas con funciones de SQL
Ejecuta la función SQL google_columnar_engine_drop
de la siguiente manera:
Cliente psql
SELECT google_columnar_engine_drop( relation => 'TABLE_NAME', columns => 'COLUMN_LIST' );
- "TABLE_NAME": cadena que contiene el nombre de la tabla o de la vista materializada. Si la tabla o la vista se encuentran en un esquema distinto de
public
, especifica el nombre del esquema, un punto y el nombre de la tabla o la vista. Por ejemplo,'myschema.mytable'
. - "COLUMN_LIST": cadena que contiene una lista de nombres de columnas separados por comas y que distingue entre mayúsculas y minúsculas. Si quiere añadir todas las columnas de la tabla o de la vista materializada al almacén de columnas, omita este parámetro.
Puedes usar la función google_columnar_engine_drop
para quitar las columnas añadidas editando la marca de base de datos google_columnar_engine.relations
. Sin embargo, cuando lo haga, esas columnas se volverán a añadir al almacén columnar cuando se reinicie la instancia.