--- title: Databend 开源周报第 107 期 description: slug: databend-weekly-107 date: 2023-08-21 tags: [weekly] cover_url: databend-weekly.svg image: databend-weekly.png contributors: - name: ariesdevil - name: b41sh - name: dantengsky - name: Dousir9 - name: everpcpc - name: flaneur2020 - name: JackTan25 - name: lichuang - name: nange - name: PsiACE - name: RinChanNOWWW - name: SkyFan2002 - name: soyeric128 - name: sundy-li - name: TCeason - name: Xuanwo - name: xudong963 - name: youngsofun - name: zhang2014 - name: zhyass authors: - datafuselabs ---  > 英文版移步:https://databend.rs/blog/2023-08-20-databend-weekly > > [Databend](https://github.com/datafuselabs/databend) 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:[https://app.databend.cn](https://app.databend.cn) 。 ## What's On In Databend 探索 Databend 本周新进展,遇到更贴近你心意的 Databend 。 ### 理解连接参数 **连接参数** 是建立与 Databend 支持的外部存储服务(如Amazon S3)的连接时所需的一组身份验证和配置信息。这些参数被括号包围、由一组用逗号或空格分隔的键值对组成。在创建 Stage 、`COPY INTO` 和查询外部文件时都会用到。 下面的 SQL 语句展示了如何利用连接参数创建用 S3 作为底层存储的 Stage 。 ```sql CREATE STAGE my_s3_stage URL = 's3://load/files/' CONNECTION = ( ACCESS_KEY_ID = '<your-access-key-id>', SECRET_ACCESS_KEY = '<your-secret-access-key>' ); ``` 如果您想了解更多信息,请查看下面列出的资源。 - [Docs | SQL Reference - Connection Parameters](https://databend.rs/doc/sql-reference/connect-parameters) ### Hive Catalog 支持配置存储参数 在刚刚过去的一周中,Databend 为 Hive Catalog 引入了存储参数选项,允许为其配置特定的存储服务,不再依赖 Default Catalog 自身的存储后端。 下面的例子展示了如何创建以 MinIO 作为底层存储服务的 Hive Catalog : ```sql CREATE CATALOG hive_ctl TYPE = HIVE CONNECTION =( ADDRESS = '127.0.0.1:9083' 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 #12469 | feat: Add storage params in hive catalog](https://github.com/datafuselabs/databend/pull/12469) ## Code Corner 一起来探索 Databend 和周边生态中的代码片段或项目。 ### 使用 `gitoxide` 加速 Git 依赖下载 `gitoxide` 是一个用 Rust 编写的高性能、现代化的 Git 实现。利用 `cargo` 的 `gitoxide` 特性(Unstable),可以使用 `gitoxide` crate 替代 `git2` 执行各种 git 操作,从而在下载 crates-index 和 git 依赖时获得数倍的性能提高。 Databend 最近在 CI 中为 `cargo {build | clippy | test} ` 启用了这一特性,你也可以在本地开发时尝试添加 `-Zgitoxide` 选项来加速构建过程: ```sql cargo -Zgitoxide=fetch,shallow-index,shallow-deps build ``` 如果您想了解更多信息,请查看下面列出的资源。 - [chore(ci): cargo build with -Zgitoxide](https://github.com/datafuselabs/databend/pull/12504) - [The Cargo Book | Unstable - gitoxide](https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#gitoxide) ## Highlights 以下是一些值得注意的事件,也许您可以找到感兴趣的内容。 - 不与 `SELECT` 共用也可以单独使用 `VALUES` 子句。 - 变更列时支持修改默认值。 - 为 Parquet 格式的表添加虚拟列支持 - 支持在执行写入操作(`COPY INTO` 和 `REPLACE INTO`)后对表进行自动重聚类 ## What's Up Next 我们始终对前沿技术和创新理念持开放态度,欢迎您加入社区,为 Databend 注入活力。 ### 增强 `infer_schema` 能力以支持文件路径 当前,Databend 既支持查询由文件路径指向的文件也支持查询位于 Stage 中的文件,例如: ```sql select * from 'fs:///home/...'; select * from 's3://bucket/...'; select * from @stage; ``` 然而,目前 `infer_schema` 只支持处理位于 Stage 中的文件: ```sql select * from infer_schema(location=>'@stage/...'); ``` 如果需要对位于其它路径下的文件进行推断,就会导致报错: ```sql! select * from infer_schema(location =>'fs:///home/...'); -- this will panic. ``` 我们希望可以统一 `infer_schema` 函数的行为,允许其对所有位置的文件进行推断,使之具有更好的可用性。 [Issue #12458 | Feature: `infer_schema` support normal file path](https://github.com/datafuselabs/databend/issues/12458) 如果你对这个主题感兴趣,可以尝试解决其中的部分问题或者参与讨论和 PR review 。或者,你可以点击 https://link.databend.rs/i-m-feeling-lucky 来挑选一个随机问题,祝好运! ## 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