keboola / db-extractor-common
Keboola数据库提取器公共库
Requires
- php: >=8.2
- ext-json: *
- ext-pdo: *
- keboola/common-exceptions: ^1.1
- keboola/csv: ^3.2
- keboola/db-extractor-adapter: ^1.14
- keboola/db-extractor-config: ^1.15
- keboola/db-extractor-ssh-tunnel: ^1.3.0
- keboola/db-extractor-table-format: ^3.8
- keboola/php-component: ^10.0
- keboola/php-datatypes: ^7.2
- keboola/php-utils: ^2.3||^3.0||^4.0
- keboola/retry: ^0.5
- monolog/monolog: ^2.0
- nette/utils: ^3.0
- phpunit/phpunit: ^9.1
- pimple/pimple: ^3.3
- psr/log: ^1.1
Requires (Dev)
- cweagans/composer-patches: ^1.7
- ihsw/toxiproxy-php-client: ^2.0
- keboola/coding-standard: >=13.0
- keboola/php-temp: ^2.0
- php-parallel-lint/php-parallel-lint: ^1.2
- phpstan/phpstan: ^1.10
- symfony/debug: ^4.3
- symfony/finder: ^6.3
- symplify/vendor-patches: ^11.2
- dev-master
- 17.1.0
- 17.0.11
- 17.0.10
- 17.0.9
- 17.0.8
- 17.0.7
- 17.0.6
- 17.0.5
- 17.0.4
- 17.0.3
- 17.0.2
- 17.0.1
- 17.0.0
- 16.2.2
- 16.2.1
- 16.2.0
- 16.1.0
- 16.0.1
- 16.0.0
- 15.0.1
- 15.0.0
- 14.6.0
- 14.5.3
- 14.5.2
- 14.5.1
- 14.5.0
- 14.4.0
- 14.3.0
- 14.2.3
- 14.2.2
- 14.2.1
- 14.2.0
- 14.1.0
- 14.0.4
- 14.0.3
- 14.0.2
- 14.0.1
- 14.0.0
- 13.3.0
- 13.2.4
- 13.2.3
- 13.2.2
- 13.2.1
- 13.2.0
- 13.1.0
- 13.0.0
- 12.2.0
- 12.1.2
- 12.1.1
- 12.1.0
- 12.0.1
- 12.0.0
- 11.0.0
- 10.0.1
- 10.0.0
- 9.4.1
- 9.4.0
- 9.3.2
- 9.3.1
- 9.3.0
- 9.2.1
- 9.2.0
- 9.1.11
- 9.1.10
- 9.1.9
- 9.1.8
- 9.1.7
- 9.1.6
- 9.1.5
- 9.1.4
- 9.1.3
- 9.1.2
- 9.1.1
- 9.1.0
- 9.0.0
- 8.1.0
- 8.0.0
- 7.0.0
- 6.2.0
- 6.1.0
- 6.0.0
- 5.3.2
- 5.3.1
- 5.3.0
- 5.2.3
- 5.2.2
- 5.2.1
- 5.2.0
- 5.1.0
- 5.0.2
- 5.0.1
- 5.0.0
- 4.1.1
- 4.1.0
- 4.0.6
- 4.0.5
- 4.0.4
- 4.0.3
- 4.0.2
- 4.0.1
- 4.0.0
- 3.2.2
- 3.2.1
- 3.2.0
- 3.1.3
- 3.1.1
- 3.1.0
- 3.0.4
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- 2.0.7
- 2.0.6
- 2.0.5
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 1.4.0
- 1.3.0
- 1.2.5
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.1
- 1.1.0
- 1.0.0
- 0.0.4
- 0.0.3
- 0.0.2
- 0.0.1
- dev-novakjiri-SUPPORT-7637
- dev-ondra-setup-logger
- dev-webrouse-254-db-adapter
- dev-piv-ignore-extra-action-keys
- dev-tf-testing-rf
- dev-david-value-objects
- dev-david-v10
- dev-ujovlado-notifications
- dev-piv-retry-connection
- dev-piv-tunnel-c
- dev-backup-david-value-objects-2019-01-23
- dev-backup-v10-before-rebase-2019-01-23
- dev-piv-update-php-datatypes
- dev-php55
This package is auto-updated.
Last update: 2024-09-12 11:00:36 UTC
README
用于创建特定供应商数据库提取器的公共类。
使用DBC提取器
开发和运行测试
docker compose build
docker compose run --rm tests # runs the tests
用法
将库添加到组件的composer中
php composer.phar require db-extractor-common
composer.json
{
"require": "db-extractor-common": ^8.0
}
用法
创建入口脚本文件 run.php
,例如为MySQL提取器: https://github.com/keboola/db-extractor-mysql/blob/master/src/run.php
请注意,从版本7开始,支持配置行,因此不需要支持.yml配置或表数组配置。
从config.json
文件加载$config
。您必须为data_dir
和extractor_class
键提供值。extractor_class
是派生提取器的主类,它应该扩展Keboola\DbExtractor\Extractor\Extractor
。
您需要实现以下方法
createConnection(array $params)
testConnection()
simpleQuery(array $table, array $columns = array()): string
getTables(?array $tables = null): array;
注意,为了支持标识符清理,getTables方法应返回每个列的sanitizedName
属性。这个sanitizedName
应该使用Keboola\php-utils\sanitizeColumnName
创建
如果您想实现增量获取,必须实现
validateIncrementalFetching(array $table, string $columnName, ?int $limit = null): void
请参见Common
类的示例: https://github.com/keboola/db-extractor-common/blob/master/src/Keboola/DbExtractor/Extractor/Common.php#L52
您的提取器类命名空间应为Keboola\DbExtractor\Extractor
,类的名称应与数据库供应商名称对应,例如PgSQL、Oracle、Impala、Firebrid、DB2等。
请检查上述现有实现以获取帮助。
检查用户名
检查用户名功能比较 - KBC_REALUSER
环境变量的值 - 和配置中数据库用户的用户名。
如果启用,值必须相同才能运行组件。
如果使用服务帐户,则跳过检查。更多信息请参阅UsernameChecker
类。
示例图像/堆栈参数
{ "checkUsername": { "enabled": true } }
服务帐户可以由正则表达式定义
{ "checkUsername": { "enabled": true, "serviceAccountRegexp": "~^service_~i" } }
或用户帐户可以由正则表达式定义(逻辑相反)
{ "checkUsername": { "enabled": true, "userAccountRegexp": "~^[0-9]{3}_" } }
许可证
MIT许可,请参阅LICENSE文件。