63个版本
0.5.7 | 2024年1月26日 |
---|---|
0.5.5 | 2023年9月14日 |
0.5.2 | 2022年11月4日 |
0.5.0-beta.4 | 2022年1月1日 |
0.0.10 | 2019年3月8日 |
在 数据库接口 中排名 71
每月下载量 161
765KB
16K SLoC
dbcrossbar
: 在数据库、CSV文件和云存储之间复制表格数据
dbcrossbar
在不同的数据库和存储格式之间移动大数据集。
一些示例
# Copy from a CSV file to a PostgreSQL table.
dbcrossbar cp \
--if-exists=overwrite \
--schema=postgres-sql:my_table.sql \
csv:my_table.csv \
'postgres://[email protected]:5432/postgres#my_table'
# Upsert from a PostgreSQL table to BigQuery.
dbcrossbar cp \
--if-exists=upsert-on:id \
--temporary=gs://$GS_TEMP_BUCKET \
--temporary=bigquery:$GCLOUD_PROJECT:temp_dataset \
'postgres://[email protected]:5432/postgres#my_table' \
bigquery:$GCLOUD_PROJECT:my_dataset.my_table
它还可以在表格模式格式之间进行转换,包括PostgreSQL的 CREATE TABLE
语句和BigQuery JSON模式
# Convert a PostgreSQL `CREATE TABLE` statement to a BigQuery JSON schema.
dbcrossbar schema conv postgres-sql:my_table.sql bigquery-schema:my_table.json
# Extract a schema from a CSV file and convert to Postgres `CREATE TABLE`.
dbcrossbar schema conv csv:data.csv postgres-sql:schema.sql
更多信息,请参阅文档。
贡献
有关构建 dbcrossbar
、运行测试和贡献代码的更多说明,请参阅 CONTRIBUTING.md。
我们要求 nightly Rust。我们使用 rust-toolchain
文件锁定特定的 nightly Rust 版本。如果您想更新它,请查看 Rustup组件历史记录 并选择支持 rls
、clippy
和 rustfmt
的最新版本。
运行集成测试
您可以使用 cargo test
运行常规测试套件,但为了运行完整的集成测试,您需要执行以下操作
# Run a local PostgreSQL on port 5432.
docker run --name postgres -e POSTGRES_PASSWORD= -p 5432:5432 -d mdillon/postgis
createdb -h localhost -U postgres -w dbcrossbar_test
export POSTGRES_TEST_URL=postgres://postgres:@localhost:5432/dbcrossbar_test
echo "create extension if not exists postgis;" | psql $POSTGRES_TEST_URL
echo "create extension if not exists citext;" | psql $POSTGRES_TEST_URL
echo "create schema if not exists testme1;" | psql $POSTGRES_TEST_URL
# Point to test databases and test buckets.
export GS_TEST_URL=gs://$MY_GS_TEST_BUCKET/dbcrossbar/
export BQ_TEST_DATASET=$MY_BQ_ROOT:test
export S3_TEST_URL=s3://$MT_S3_TEST_BUCKET/dbcrossbar/
# This helps to ensure that we're not depending on our users to have set
# a default gcloud project anywhere.
gcloud config unset project
# These can be omitted if you don't want to test Redshift.
export REDSHIFT_TEST_URL=redshift://user:pass@server:port/db
export REDSHIFT_TEST_IAM_ROLE=$MY_IAM_ROLE
export REDSHIFT_TEST_REGIION=$MY_AWS_REGION
# Needed for BigML. Does not work with AWS_SESSION_TOKEN.
export AWS_ACCESS_KEY_ID=... AWS_SECRET_ACCESS_KEY=...
export BIGML_USERNAME=... BIGML_API_KEY=...
# Run the integration tests.
env RUST_BACKTRACE=1 RUST_LOG=warn,dbcrossbar=debug \
cargo test --all -- --ignored --nocapture
许可证
根据以下任一许可证授权
- Apache License,版本2.0,(LICENSE-APACHE.txt 或 在线)
- MIT许可证 (LICENSE-MIT.txt 或 在线)
...根据您的选择。
贡献
除非您明确说明,否则根据Apache-2.0许可证定义的任何有意提交以包含在作品中的贡献,都应如上所述双许可,不附加任何额外条款或条件。
第三方库
dbcrossbar
依赖于多种第三方库,每个库都有自己的版权和许可,详情请见此处。我们已配置了一个 deny.toml
文件,当前尝试将依赖限制在 MIT、Apache-2.0、BSD-3-Clause、BSD-2-Clause、CC0-1.0、ISC、OpenSSL 和 Zlib 许可证,以及一个单独的 MPL-2.0 依赖项。但请验证 deny.toml
文件(以及个别依赖项)以确保,因为细节可能会在未来发生变化。这些许可证中的每一项都对再分发施加了某些义务。
依赖项
~43–60MB
~1M SLoC