UNPKG

@142vip/data-source

Version:

通用型数据源,支持多种数据库、API、CSV等形式的数据源管理

141 lines (112 loc) 3.56 kB
# @142vip/data-source [![NPM version](https://img.shields.io/npm/v/@142vip/data-source?labelColor=0b3d52&color=1da469&label=version)](https://www.npmjs.com/package/@142vip/data-source) **TIPS:没数据源,可视化、数字孪生就是玩单机** ## 介绍 `@142vip/data-source`模块可以用来连接多种数据源,支持从数据源快速获取数据 ## 安装 ```bash # npm npm install @142vip/data-source # pnpm pnpm i @142vip/data-source ``` ### 简单使用 按照数据来源,将数据源分为CSV型、API型、SQL数据库型三种类型。 - [CSV](./docs/csv.md) - API - [ALI Gateway API](docs/apis/vip-ali-gateway-api.md) - [DTable API](docs/apis/vip-dtable-api.md) - [DTStack API](docs/apis/vip-dtstack-api.md) - [HTTP API](docs/apis/vip-http-api.md) - SQL - [ClickHouse数据库](docs/sql/vip-clickhouse.md) - [达梦数据库](docs/sql/vip-dameng.md) - [DB2数据库](docs/sql/vip-ibm-db.md) - [KingBase金仓数据库](docs/sql/vip-kingbase.md) - [MySQL数据库](docs/sql/vip-mysql.md) - [SQL Server数据库](docs/sql/vip-mssql.md) - [Oracle数据库](docs/sql/vip-oracle.md) - [PostgreSQL数据库](docs/sql/vip-postgresql.md) - [MongoDB数据库](docs/sql/vip-mongo.md) ### 新增数据源 #### 定义接口类型 ```ts export interface MyDataSourceOptions { // coding xxx } ``` #### 初始化连接器 ```ts import { DataSourceConnector } from '@142vip/data-source' export class MyDataSource implements DataSourceConnector<MyDataSourceOptions> { /** * 获取连接数据 */ public async getConnectionData(options: MyDataSourceOptions): Promise<DataSourceParseResponse> { try { // coding xxx } catch (error) { return handlerDataSourceConnectError(VipPostgreSql.name, error) } finally { await pgClient?.end() } } } ``` #### 进一步拓展 基于`DataSourceManager`接口,封装`parseData``testConnect``getDataBaseNames`等常用方法。 ```ts /** * 自定义数据源 */ export class MyDataSource implements DataSourceManager { /** * 解析数据 */ public async parseData(): Promise<DataSourceParseResponse> { // coding xxx } /** * 测试连接 */ public testConnect(): Promise<DataSourceParseResponse> { // coding xxx } /** * 获取表名列表 */ public getDataBaseNames(): Promise<DataSourceParseResponse<string[]>> { // coding xxx } /** * 获取表名列表 */ public getTableNames(): Promise<DataSourceParseResponse<DataSourceTable[]>> { // coding xxx } /** * 获取表字段列表 */ public getTableColumns(tableName: string, schema?: string): Promise<DataSourceParseResponse<DataSourceColumn[]>> { // coding xxx } } ``` ## 参考 - [aliyun-api-gateway](https://www.npmjs.com/package/aliyun-api-gateway) - [axios](https://www.npmjs.com/package/axios) - [clickhouse](https://www.npmjs.com/package/clickhouse) - [csv-parse](https://www.npmjs.com/package/csv-parse) - [dmdb](https://www.npmjs.com/package/dmdb) - [ibm_db](https://www.npmjs.com/package/ibm_db) - [iconv-lite](https://www.npmjs.com/package/iconv-lite) - [mssql](https://www.npmjs.com/package/mssql) - [oracledb](https://www.npmjs.com/package/oracledb) - [pg](https://www.npmjs.com/package/pg) - [mongodb](https://www.npmjs.com/package/mongodb) ## 证书 [MIT](https://opensource.org/license/MIT) Copyright (c) 2019-present, @142vip 储凡 **仅供学习参考,商业使用请保留作者版权信息,作者不保证也不承担任何软件的使用风险。**