--- title: Databend 开源周报第 106 期 description: slug: databend-weekly-106 date: 2023-08-14 tags: [weekly] cover_url: databend-weekly.svg image: databend-weekly.png contributors: - name: akoshchiy - name: b41sh - name: BohuTANG - name: Chasen-Zhang - name: dantengsky - name: Dousir9 - name: drmingdrmer - name: everpcpc - name: flaneur2020 - name: hantmac - name: JackTan25 - name: lichuang - name: nange - name: parkma99 - name: PsiACE - name: RinChanNOWWW - name: SkyFan2002 - name: soyeric128 - name: sundy-li - name: TCeason - name: wubx - name: Xuanwo - name: xudong963 - name: zhyass authors: - datafuselabs --- > 英文版移步:https://databend.rs/blog/2023-08-13-databend-weekly > > [Databend](https://github.com/datafuselabs/databend) 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:[https://app.databend.cn](https://app.databend.cn) 。 ## What's On In Databend 探索 Databend 本周新进展,遇到更贴近你心意的 Databend 。 ### 数据脱敏 Databend 新增数据脱敏能力。通过设定脱敏策略(Masking Policy),可以控制敏感数据的显示或访问方式,从而在允许授权用户与数据交互的同时保护机密性。 ```sql -- Create a masking policy CREATE MASKING POLICY email_mask AS (val string) RETURNS string -> CASE WHEN current_role() IN ('MANAGERS') THEN val ELSE '*********' END COMMENT = 'hide_email'; -- Associate the masking policy with the 'email' column ALTER TABLE user_info MODIFY COLUMN email SET MASKING POLICY email_mask; ``` **数据脱敏** 需要升级至 **企业版** 。如需了解升级信息,请联系 [Databend 团队](https://www.databend.cn/contact-us) 。 如果您想了解更多信息,请查看下面列出的资源。 - [Docs | MASKING POLICY](https://databend.rs/doc/sql-commands/ddl/mask-policy/) ## Code Corner 一起来探索 Databend 和周边生态中的代码片段或项目。 ### 为 Python Binding 支持 `show()` 方法 在 PySpark 、DuckDB、DataFusion 的 Python 绑定/包中均支持了 `show()` 方法,用于输出前 n 行结果。 Databend 最近也通过 PyO3 为 Python Binding 实现了相应的支持,代码片段如下。 ```rust #[pyo3(signature = (num=20))] fn show(&self, py: Python, num: usize) -> PyResult<()> { let blocks = self.collect(py)?; let bs = self.get_box(); let result = blocks.box_render(num, bs.bs_max_width, bs.bs_max_width); // Note that println! does not print to the Python debug console and is not visible in notebooks for instance let print = py.import("builtins")?.getattr("print")?; print.call1((result,))?; Ok(()) } ``` 如果您想了解更多信息,请查看下面列出的资源。 - [Issue #12255 | For Python compatibility, please add show() method](https://github.com/datafuselabs/databend/issues/12255) ## Highlights 以下是一些值得注意的事件,也许您可以找到感兴趣的内容。 - 支持分布式 `REPLACE INTO` 。 - 支持用于计算向量 2 范数(欧几里得范数)的算符 `<->` 。 - 新增地理位置函数:`h3_to_center_child` / `h3_exact_edge_length_m` / `h3_exact_edge_length_km` / `h3_exact_edge_length_rads` / `h3_num_hexagons` / `h3_line` / `h3_distance` / `h3_hex_ring` `h3_get_unidirectional_edge`。 - 阅读文档 [Docs | ALTER TABLE COLUMN](https://databend.rs/doc/sql-commands/ddl/table/alter-table-column) 了解如何利用添加、转换、重命名、更改或删除列等操作修改表。 ## What's Up Next 我们始终对前沿技术和创新理念持开放态度,欢迎您加入社区,为 Databend 注入活力。 ### 为 Hive Catalog 添加存储后端支持 此前 Databend 的 Hive Catalog 实现缺反自己的存储后端配置,只能回滚到 Default Catalog 对应的存储后端。导致当 Hive MetaStore 指向的存储服务与 Default Catalog 配置不一致时无法读取数据。 现在计划为 Hive Catalog 引入 CONNECTION 选项,允许对存储后端进行配置,解决异构存储下的 Hive 加速问题。 ```sql CREATE CATALOG hive_ctl TYPE=HIVE HMS_ADDRESS='127.0.0.1:9083' CONNECTION=( URL='s3://warehouse/' AWS_KEY_ID='admin' AWS_SECRET_KEY='password' ENDPOINT_URL='http://localhost:9000' ); ``` [Issue #12407 | Feature: Add storage support for Hive catalog](https://github.com/datafuselabs/databend/issues/12407) 如果你对这个主题感兴趣,可以尝试解决其中的部分问题或者参与讨论和 PR review 。或者,你可以点击 https://link.databend.rs/i-m-feeling-lucky 来挑选一个随机问题,祝好运! ## New Contributors 一起认识社区中的新伙伴,Databend 因你们而变得更加美好。 * [@parkma99](https://github.com/parkma99) 修复了 `CREATE ROLE` 时的解析问题,[#12341](https://github.com/datafuselabs/databend/pull/12341) 。 ## Changelog 前往查看 Databend 每日构建的变更日志,以了解开发的最新动态。 地址:https://github.com/datafuselabs/databend/releases ## Contributors 非常感谢贡献者们在本周的卓越工作。  ## Connect With Us Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式数仓。期待您的关注,一起探索云原生数仓解决方案,打造新一代开源 Data Cloud。 - [Databend Website](https://databend.rs) - [GitHub Discussions](https://github.com/datafuselabs/databend/discussions) - [Twitter](https://twitter.com/Datafuse_Labs) - [Slack Channel](https://link.databend.rs/join-slack)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up