Forum Discussion

Omega's avatar
Omega
Impactful Individual
2 years ago
Solved

Convert key in text to Integer for optimization

Hi,    I have created tables in Power BI, in which the keys in each table is in text. After analyzing the model, I noticed that the key columns are consuming a lot of size causing performance issue...
  • Anonymous's avatar
    Anonymous
    2 years ago

    Hi,

    Thanks for the solution Anand24  provided, and i want to offer some more information for user to refer to.

    hello Omega , you can create a custom column.

    let
            ListChars = Text.ToList([your column name]),
            ListNumbers = List.Transform(ListChars, 
                each Character.ToNumber(_)),
            HashNumber = List.Accumulate(ListNumbers, 
                0,
                (state, current) => 
                    Number.Mod((state * 31 + current), 9223372036854775807))
        in
            HashNumber

    Output

    You can also refer to the following code in advanced editor.

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCg12jHd29Il3MzE0MjFUitVBEnI3BoqBhZwd/eL9/ULi3dyMDS2NIMocnZxd3dyVYmMB", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}}),
        #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each let
            ListChars = Text.ToList([Column1]),
            ListNumbers = List.Transform(ListChars, 
                each Character.ToNumber(_)),
            HashNumber = List.Accumulate(ListNumbers, 
                0,
                (state, current) => 
                    Number.Mod((state * 31 + current), 9223372036854775807))
        in
            HashNumber),
        #"Changed Type1" = Table.TransformColumnTypes(#"Added Custom",{{"Custom", Int64.Type}})
    in
        #"Changed Type1"

    Best Regards!

    Yolo Zhu

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

    Convert key in text to Integer for optimization.pbix24 KB