Hasbytes como clave principal

Un usuario Pregunto ✅

vendido estático

Hola,

Estamos creando un modelo de datos en SQL Server que combina datos de múltiples fuentes en nuestro lago de datos. Estamos tratando de construirlo con el futuro en mente, ya que probablemente también lo convertiremos en un proceso de tipo ETL. Por el momento, se trata básicamente de una serie de vistas que hemos definido.

Al hacer esto, tenemos varias columnas dentro de cada vista que, cuando se consideran juntas, actúan como una ‘clave principal’ para esa vista. Cada una de las tres vistas principales tiene su propia clave y están vinculadas a cada una por esta clave (grupo de columnas).

Definí esta clave en la vista usando hashbytes, como en el fragmento de abajo. Mi problema es que PowerBI carga la columna hashbyte como binaria dentro del editor de consultas, pero fuera del editor de consultas, estas columnas no parecen existir. Mi objetivo era poder crear una relación simple dentro de powerBI entre las tres vistas principales utilizando esta columna para las ‘uniones’ entre ellas, pero parece que no puedo definir esa relación desde la pestaña de modelado dentro del escritorio de PBI porque no lo hace ‘ t mostrar esa columna en absoluto. Si cambio el tipo en el editor de consultas para cambiarlo a texto en lugar de binario, recibo un error al aplicar los cambios de que este tipo de transformación no se puede usar con la consulta directa.

¡Por favor ayuda!

Andy

ALTER view [CustomerView] as
	select HASHBYTES('SHA2_256',
			CONCAT(SourceSystemID,'␟'
				,SourceSystemVersion,'␟'
				,ETLVersion,'␟'
				,ETLDatetime,'␟'
				,RecordVersion,'␟'
				,CustID,'␟'
				)) as CustomerKey
				,* from Customer

vendido estático

En respuesta a v-piga-msft

Pude cambiar a la función CHECKSUM () dentro del servidor SQL. Creo que esto funcionará, pero estoy esperando algunos índices de nuestro grupo de DBA antes de poder ejecutar mis verificaciones. Sin embargo, esto entró en Power BI como un número, por lo que pude usar esto como la clave para vincular las tablas. Mi rendimiento es terrible sin los índices, pero creo que el CHECKSUM ha hecho lo que necesitaba.

Bostonmichelle

Hashbytes aparentemente funciona ahora en PowerQuery. Estoy usando esto:

convertir (nvarchar (50), hashbytes (‘MD4’, BR.projecttitle), 2)

v-piga-msft

Hola @soldstatic,

Sí, me temo que no podemos convertir el tipo de datos en el modo de consulta directa.

Podemos probar de otra manera, podría tener una referencia de este hilo similar que ha sido resuelto.

Atentamente,

cereza

vendido estático

En respuesta a v-piga-msft

Pude cambiar a la función CHECKSUM () dentro del servidor SQL. Creo que esto funcionará, pero estoy esperando algunos índices de nuestro grupo de DBA antes de poder ejecutar mis verificaciones. Sin embargo, esto entró en Power BI como un número, por lo que pude usar esto como la clave para vincular las tablas. Mi rendimiento es terrible sin los índices, pero creo que el CHECKSUM ha hecho lo que necesitaba.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *