[{"data":1,"prerenderedAt":124},["ShallowReactive",2],{"project-34835982":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":31,"aspects":33,"strip":35,"post_text":37,"what":38,"said":57,"maker_in_thread":77,"shape":80,"grid":82,"attempts":87,"same_week":88,"maker_shows":116,"maker_hidden":117,"reader_version":118,"card":119},"34835982","clickhouse-obfuscator","A Tool for Data Obfuscation","title","Show HN: A Tool for Data Obfuscation","https:\u002F\u002Fclickhouse.com\u002Fblog\u002Ffive-methods-of-database-obfuscation","clickhouse.com","zX41ZdbW",1676648879,2023,19,2,1721,3109,56,"shown","data","database obfuscation","cli",[24,25,26,27],"data obfuscation","database anonymization","synthetic data","test data generation","quiet",null,{"positive":31,"neutral":32,"mixed":32,"critical":32},1,0,{"design":34},{"positive":31,"critical":32},[32,36],5,"A few years ago, I was challenged with a task: given a database table with production data, generating fake data with the same structure but resembling most of the probability distributions, inter-column dependencies, and keeping the compression ratios.\n\nThis task was very difficult to solve. Either I was getting something too random, not anonymized enough, or too slow.\n\nAfter experimenting with five different methods (explicit distributions, Markov models, Feistel Networks, LSTM, compressed data mutation), I've implemented it in a tool named `clickhouse-obfuscator`.\n\nIt works directly on file",{"problem":39,"audience":29,"pricing":29,"motivation":45,"time_to_build":29,"stack":49,"openness":55,"stage":56,"team_size":55},{"value":40,"source":41,"evidence":42},"Creating fake data from production tables that keeps distributions, column dependencies and compression ratios","maker",[43],{"id":44},"post",{"value":46,"source":41,"evidence":47},"A task to generate realistic fake data from production tables that was hard to solve",[48],{"id":44},[50],{"value":51,"source":52,"evidence":53},"C++","inferred",[54],{"id":44},"unknown","launched",{"praise":58,"objections":73,"requests":74,"questions":75,"alternatives":76},[59,67],{"value":60,"source":61,"evidence":62},"Cool approach, with the Wolfenstein fizzlefade illustration of pseudo-random permutations","commenter",[63],{"id":64,"by":65,"text":66},"34836242","znaimon","This is so cool! Laughed at using the Wolfenstein 3D 'fizzlefade' animation to illustrate pseudo-random permutations",{"value":68,"source":41,"evidence":69},"Useful for amplifying data volume for tests",[70],{"id":71,"by":11,"text":72},"34836047","You can also use this tool to amplify the data volume for tests. For example, based on a dataset of 100 million records from ClickBench, I created a dataset of 100 billion…",[],[],[],[],{"comments":31,"answered":32,"key":78},[79],{"id":71,"text":72},{"commenters":15,"max_depth":31,"maker_replies":31,"first_comment_mins":81,"lifespan_hours":32},4,[83,85],[71,32,32,84,11,31],"project\u002Fpositive\u002Fperformance",[64,31,36,86,65,32],"project\u002Fpositive\u002Fdesign",[],[89,94,99,103,108,112],{"id":90,"name":91,"points":92,"category":93},"34869244","PyGWalker",712,"dev_tools",{"id":95,"name":96,"points":97,"category":98},"34897773","AskHN",612,"ai",{"id":100,"name":101,"points":102,"category":93},"34897645","highlight.io",408,{"id":104,"name":105,"points":106,"category":107},"34826085","Basement Community",373,"consumer_social",{"id":109,"name":110,"points":111,"category":93},"34848583","Noya",285,{"id":113,"name":114,"points":115,"category":20},"34881286","Yobulk",233,6,false,"v2",{"id":120,"name":5,"line":6,"ai":117,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":121,"maker":11,"domain":10,"tier":19,"attempts":32,"strip":122,"url":9,"mix":123,"praise":60,"objection":-1,"sub":21},34835982,[24,25,26,27],"05",[31,32,32,32],1794036631350]