华为云用户手册

  • javax.sql.PooledConnection javax.sql.PooledConnection是由连接池创建的连接接口。 表1 对javax.sql.PooledConnection的支持情况 方法名 返回值类型 支持JDBC 4 addConnectionEventListener (ConnectionEventListener listener) void Yes close() void Yes getConnection() Connection Yes removeConnectionEventListener (ConnectionEventListener listener) void Yes addStatementEventListener (StatementEventListener listener) void Yes removeStatementEventListener (StatementEventListener listener) void Yes 父主题: JDBC接口参考
  • PL/pgSQL语言函数 PL/pgSQL类似于Oracle的PL/SQL,是一种可载入的过程语言。 用PL/pgSQL创建的函数可以被用在任何可以使用内建函数的地方。例如,可以创建复杂条件的计算函数并且后面用它们来定义操作符或把它们用于索引表达式。 SQL被大多数数据库用作查询语言。它是可移植的并且容易学习。但是每一个SQL语句必须由数据库服务器单独执行。 这意味着客户端应用必须发送每一个查询到数据库服务器、等待它被处理、接收并处理结果、做一些计算,然后发送更多查询给服务器。如果客户端和数据库服务器不在同一台机器上,所有这些会引起进程间通信并且将带来网络负担。 通过PL/pgSQL,可以将一整块计算和一系列查询分组在数据库服务器内部,这样就有了一种过程语言的能力并且使SQL更易用,同时能节省的客户端/服务器通信开销。 客户端和服务器之间的额外往返通信被消除。 客户端不需要的中间结果不必被整理或者在服务器和客户端之间传送。 多轮的查询解析可以被避免。 PL/pgSQL可以使用SQL中所有的数据类型、操作符和函数。 应用PL/pgSQL创建函数的语法为CREATE FUNCTION。正如前面所说,PL/pgSQL类似于Oracle的PL/SQL,是一种可载入的过程语言。其应用方法与存储过程相似,只是存储过程无返回值,函数有返回值。 父主题: 用户自定义函数
  • PG_WLM_STATIS TICS PG_WLM_STATISTI CS 视图显示作业结束后或已被处理异常后的负载管理相关信息。该视图8.1.2版本中已废弃,可使用PGXC_WLM_SESSION_INFO视图查看所有CN上执行作业结束后的负载管理记录。 表1 PG_WLM_STATISTICS字段 名称 类型 描述 statement text 执行了异常处理的语句。 block_time bigint 语句执行前的阻塞时间。 elapsed_time bigint 语句的实际执行时间。 total_cpu_time bigint 语句执行异常处理时DN上CPU使用的总时间。 qualification_time bigint 语句检查倾斜率的时间周期。 cpu_skew_percent integer 语句在执行异常处理时DN上CPU使用的倾斜率。 control_group text 语句执行异常处理时所使用的Cgroups。 status text 语句执行异常处理后的状态,包括: pending:执行前预备状态。 running:执行进行状态。 finished:执行正常结束。 abort:执行异常终止。 action text 语句执行的异常处理动作,包括: abort:执行终止操作。 adjust:执行Cgroups调整操作,目前只有降级操作。 finish:正常结束。 queryid bigint 语句执行所使用的内部query_id。 threadid bigint 后端线程ID。 父主题: 系统视图
  • PG_COMM_CLIENT_INFO PG_COMM_CLIENT_INFO视图存储单个节点客户端连接信息(DN上查询该视图显示CN连接DN的信息)。 表1 PG_COMM_CLIENT_INFO字段 名称 类型 描述 node_name text 当前节点的名称。 app text 客户端应用名。 tid bigint 当前线程的线程号。 lwtid integer 当前线程的轻量级线程号。 query_id bigint 查询ID,对应debug_query_id。 socket integer 如果是物理连接,显示socket。 remote_ip text 对端节点IP。 remote_port text 对端节点port。 logic_id integer 如果是逻辑连接,显示sid,显示-1时表示当前连接是物理连接。 父主题: 系统视图
  • PG_SESSION_IOSTAT PG_SESSION_IOSTAT视图8.1.2版本中已废弃,为兼容历史版本功能保留该视图,当前版本查询无效。可使用PGXC_WLM_SESSION_STATISTICS视图查看所有CN上正在执行的作业的负载管理信息。 表1 PG_SESSION_IOSTAT字段 名称 类型 描述 query_id bigint 作业ID。 mincurriops integer 该作业当前io在各DN中的最小值。 maxcurriops integer 该作业当前io在各DN中的最大值。 minpeakiops integer 在作业运行时,作业io峰值中,各DN的最小值。 maxpeakiops integer 在作业运行时,作业io峰值中,各DN的最大值。 io_limits integer 该作业所设GUC参数io_limits。 io_priority text 该作业所设GUC参数io_priority。 query text 作业。 node_group text 作业所属用户对应的逻辑集群。 父主题: 系统视图
  • PGXC_SQL_COUNT 通过PGXC_SQL_COUNT视图,可以实时显示集群中各CN节点上SELECT、INSERT、UPDATE、DELETE、MERGE INTO五种SQL、以及DDL、DML、DCL语句的节点级和用户级统计结果,识别当前业务负载较重的query类型,衡量整个集群和单个节点执行某种类型查询的能力。通过对以上几类SQL查询进行计数和响应时间统计,获得指定时刻的统计结果,经计算可以得到指定QPS等统计信息。例如,T1时刻,USER1的SELECT计数结果为X1,T2时刻为X2,则可计算得到该用户SELECT查询的QPS值为(X2-X1)/(T2-T1)。由此,可获得集群用户级QPS曲线图和集群吞吐情况,监测每个用户的业务负载是否发生剧烈变化。如果有剧烈变化,可以定位具体的语句类型(SELECT/INSERT/UPDATE/DELETE/MERGE INTO)。同时观测QPS曲线可以获知问题发生时间点,结合其它工具,定位问题点。能够为集群性能调优、问题定位等提供依据。 PGXC_SQL_COUNT视图的字段与GS_SQL_COUNT一致,详见表1。 当执行MERGE INTO语句时,若能下推,在DN上收到的是MERGE INTO语句,将在DN节点上进行MERGE INTO类型计数,相应mergeinto_count列计数增加;若不能下推,在DN上收到的是UPDATE或INSERT语句,将在DN节点上进行UPDATE或INSERT类型计数,相应的update_count列或insert_count列计数增加。 父主题: 系统视图
  • PG_TRIGGER PG_TRIGGER系统表存储触发器信息。 名称 类型 描述 tgrelid oid 触发器所在表的OID。 tgname name 触发器名。 tgfoid oid 触发器OID。 tgtype smallint 触发器类型。 tgenabled "char" O表示触发器在“origin”和“local”模式下触发。 D表示触发器被禁用。 R表示触发器在“replica”模式下触发。 A表示触发器始终触发。 tgisinternal boolean 内部触发器标识,如果为true表示内部触发器。 tgconstrrelid oid 完整性约束引用的表。 tgconstrindid oid 完整性约束的索引。 tgconstraint oid 约束触发器在pg_constraint中的OID。 tgdeferrable boolean 约束触发器是为DEFERRABLE类型。 tginitdeferred boolean 约束触发器是否为INITIALLY DEFERRED类型。 tgnargs smallint 触发器函数入参个数。 tgattr int2vector 当触发器指定列时的列号,未指定则为空数组。 tgargs bytea 传递给触发器的参数。 tgqual pg_node_tree 表示触发器的WHEN条件,如果没有则为null。 父主题: 系统表
  • GS_RESPOOL_MONITOR GS_RESPOOL_MONITOR视图显示所有资源池作业运行信息及资源使用信息,仅支持CN上查询。该视图仅8.2.1.100及以上集群版本支持。 表1 GS_RESPOOL_MONITOR字段 名称 类型 描述 rpname name 资源池名称。 nodegroup name 资源池所属逻辑集群的名称,默认集群显示“installation”。 cn_count bigint 集群包含的CN数量,多CN环境下用于判断单CN管控结果是否合理。 short_acc boolean 资源池是否开启短查询加速。 session_count bigint 关联该资源池的会话数量,即关联该资源池的用户发起的会话数量,包含IDLE和ACTIVE会话。 active_count bigint 关联该资源池的活跃会话数量,即正在执行查询的会话数量。 global_wait bigint 关联该资源池的所有作业中,因单CN上并发超max_active_statements引起排队的作业数。 fast_run bigint 关联该资源池的所有作业中,正在资源池快车道运行的作业数。 fast_wait bigint 关联该资源池的所有作业中,在资源池快车道排队的作业数。 fast_limit bigint 资源池快车道作业并发上限。 slow_run bigint 关联该资源池的所有作业中,正在资源池慢车道运行的作业数。 slow_wait bigint 关联该资源池的所有作业中,在资源池慢车道排队的作业数。 slow_limit bigint 资源池慢车道作业并发上限。 used_mem text 资源池在所有DN上已用内存的平均值,显示结果已使用pg_size_pretty格式化。 estimate_mem text 资源池正在运行的作业估算内存之和,显示结果已使用pg_size_pretty格式化。 mem_limit text 资源池可用内存的上限,显示结果已使用pg_size_pretty格式化。 query_mem_limit name 资源池内单个查询可以使用的内存上限,主要用于限制查询估算内存,防止估算内存过大导致异常排队;通过估算内存限制查询实际使用内存,显示结果已使用pg_size_pretty格式化。 used_cpu double precision 资源池在所有DN上占用CPU核数的平均值;CPU隔离以节点和资源池为单位,单个节点上包含多个DN时,资源池在单节点上占用的CPU核数需要乘以DN数。 cpu_limit double precision 资源池在所有节点上可用CPU上限的平均值,CPU配额管控情况下为 GaussDB 全部可用CPU核数,CPU限额管控情况下为关联控制组的可用CPU核数。 read_speed text 资源池在所有DN上逻辑IO读速率的平均值,显示结果已使用pg_size_pretty格式化。 write_speed text 资源池在所有DN上逻辑IO写速率的平均值,显示结果已使用pg_size_pretty格式化。 send_speed text 资源池在所有DN上网络发送速率的平均值,显示结果已使用pg_size_pretty格式化。 recv_speed text 资源池在所有DN上网络接收速率的平均值,显示结果已使用pg_size_pretty格式化。 父主题: 系统视图
  • audit_object_details 参数说明:控制审计日志中是否记录object_details字段,该字段为审计语句中的表名、列名以及列使用的类型。该参数仅8.2.1.100及以上集群版本支持。 参数类型:USERSET 取值范围:布尔类型 on表示审计记录object_details字段。 off表示审计不记录object_details字段。 默认值:off 当设置为on时,会对语句中的表名、列名以及列使用的类型进行审计,可能会对性能存在一定的影响,请谨慎开启。 当设置为on时,object_details字段记录的场景有:SELECT、DELETE、UPDATE、INSERT、MERGE、CREATE TABLE AS SELECT,GRANT、DECLARE CURSOR,其中对于执行失败的GRANT语句不予记录。
  • audit_object_name_format 参数说明:控制审计日志object_name字段所显示的对象名的格式。 参数类型:USERSET 取值范围:枚举类型 single,表示object_name字段显示单个对象名,且为目标对象的名称。 all,表示object_name字段显示多个对象名称。 默认值:single 当默认值设置为all时,显示多个对象名的场景有:SELECT、DELETE、UPDATE、INSERT、MERGE、CREATE TABLE AS、CREATE VIEW AS。
  • Database设计建议 【建议】在实际业务中,根据需要创建新的Database,不建议直接使用集群默认的gaussdb数据库。 【建议】一个集群内,用户自定义的Database数量建议不超过3个。 【建议】为了适应全球化的需求,使数据库编码能够存储与表示绝大多数的字符,建议创建Database的时候使用UTF-8编码。 【关注】创建Database时,需要重点关注字符集编码(ENCODING)和兼容性(DBCOMPATIBILITY)两个配置项。GaussDB(DWS)支持Oracle、Teradata和MySQL三种兼容模式,分别兼容Oracle、Teradata和MySQL语法,不同兼容模式下的语法行为可能有一些差异。详细内容可参考Oracle、Teradata和MySQL语法兼容性差异。 【关注】Database的owner默认拥有该Database下所有对象的所有权限,包括删除权限。删除权限影响较大,请谨慎使用。
  • Schema设计建议 【关注】如果该用户不具有sysadmin权限或者不是该Schema的owner,要访问Schema下的对象,需要同时给用户赋予Schema的usage权限和对象的相应权限。 【关注】如果要在Schema下创建对象,需要授予操作用户该Schema的CREATE权限。 【关注】Schema的owner默认拥有该Schema下对象的所有权限,包括删除权限。删除权限影响较大,请谨慎使用。
  • PG_STAT_USER_TABLES PG_STAT_USER_TABLES视图显示所有命名空间中用户自定义普通表和TOAST表的状态信息。 表1 PG_STAT_USER_TABLES字段 名称 类型 描述 relid oid 表的OID。 schemaname name 表的模式名。 relname name 表名。 seq_scan bigint 在此表上表启动的顺序扫描的次数。 seq_tup_read bigint 顺序扫描抓取的有live数据行的数目。 idx_scan bigint 索引扫描的次数。 idx_tup_fetch bigint 索引扫描抓取的有live数据行的数目。 n_tup_ins bigint 插入的行数。 n_tup_upd bigint 更新的行数。 n_tup_del bigint 删除的行数。 n_tup_hot_upd bigint 热更新的行数(即不需要单独的索引更新)。 n_live_tup bigint live行估计数。 n_dead_tup bigint dead行估计数。 last_vacuum timestamp with time zone 最后一次手动vacuum时间(不计算VACUUM FULL)。 last_autovacuum timestamp with time zone 最后一次autovacuum时间。 last_analyze timestamp with time zone 最后一次analyze时间。 last_autoanalyze timestamp with time zone 最后一次autoanalyze时间。 vacuum_count bigint vacuum的次数(不计算VACUUM FULL)。 autovacuum_count bigint autovacuum的次数。 analyze_count bigint analyze的次数。 autoanalyze_count bigint autoanalyze的次数。 父主题: 系统视图
  • PGXC_BULKLOAD_PROGRESS PGXC_BULKLOAD_PROGRESS显示导入业务的执行进度,仅支持GDS普通文件导入业务。需要有系统管理员权限才可以访问此视图 表1 PGXC_BULKLOAD_PROGRESS字段 名称 类型 描述 session_id bigint GDS的会话ID。 query_id bigint 查询ID,对应debug_query_id。 query text 查询语句。 progress text 进度百分比。 父主题: 系统视图
  • PG_STAT_USER_INDEXES PG_STAT_USER_INDEXES视图显示数据库中用户自定义普通表和TOAST表的索引状态信息。 表1 PG_STAT_USER_INDEXES字段 名称 类型 描述 relid oid 此索引表的OID。 indexrelid oid 索引的OID。 schemaname name 索引中模式名。 relname name 索引的表名。 indexrelname name 索引名。 idx_scan bigint 通过索引扫描的次数。 idx_tup_read bigint 通过索引上扫描返回的索引条目数量。 idx_tup_fetch bigint 索引扫描抓取的有live数据行的数目。 父主题: 系统视图
  • PG_BULKLOAD_STATISTICS 在集群任一正常节点上,通过查询PG_BULKLOAD_STATISTICS视图可以获取当前登录节点正在进行的导入导出业务执行情况,其中每一个导入/导出业务对应一条记录。需要有系统管理员权限才可以访问此视图。 表1 PG_BULKLOAD_STATISTICS字段 名称 类型 描述 node_name text 节点名称。 db_name text 数据库名称。 query_id bigint 查询ID,对应debug_query_id。 tid bigint 当前线程的线程号。 lwtid integer 当前线程的轻量级线程号。 session_id bigint GDS的会话ID。 direction text 业务类型,取值包括:gds to file、gds from file、gds to pipe、gds from pipe、copy from、copy to。 query text 查询语句。 address text 当前导入导出外表的location。 query_start timestamp with time zone 导入/导出开始时间。 total_bytes bigint 待处理数据的总大小。 仅GDS普通文件导入时,且该行记录来自CN节点才会显示,否则为空。 phase text 当前业务导入导出执行阶段,包括:INITIALIZING、TRANSFER_DATA、RELEASE_RESOURCE。 done_lines bigint 已传输行数。 done_bytes bigint 已传输字节数。 父主题: 系统视图
  • 释放连接 【建议】推荐使用连接池限制应用程序的连接数。每执行一条SQL就连接一次数据库,是一种不好SQL的编写习惯。 【建议】在应用程序完成作业任务之后,应当及时断开和GaussDB(DWS)的连接,释放资源。建议在任务中设置session超时时间参数。 【建议】使用JDBC连接池,在将连接释放给连接池前,需要执行以下操作重置会话环境。否则,可能会因为历史会话信息导致的对象冲突。 如果在连接中设置了GUC参数,那么在将连接归还连接池之前,必须执行“SET SESSION AUTHORIZATION DEFAULT;RESET ALL;”将连接的状态清空。 如果使用了临时表,那么在将连接归还连接池之前,必须将临时表删除。
  • 连接参数 【关注】第三方工具通过JDBC连接GaussDB(DWS)时,JDBC向GaussDB(DWS)发起连接请求,会默认添加以下配置参数,详见JDBC代码ConnectionFactoryImpl类的实现。 params = { { "user", user }, { "database", database }, { "client_encoding", "UTF8" }, { "DateStyle", "ISO" }, { "extra_float_digits", "2" }, { "TimeZone", createPostgresTimeZone() }, }; 这些参数可能会导致JDBC客户端的行为与gsql客户端的行为不一致,例如,Date数据显示方式、浮点数精度表示、timezone显示。 如果实际期望和这些配置不符,建议在java连接设置代码中显式设定这些参数。 【建议】通过JDBC连接数据库时,应该保证下面两个时区设置一致: JDBC客户端所在主机的时区。 GaussDB(DWS)集群所在主机的时区。
  • checkpoint_segments 参数说明:设置checkpoint_timeout周期内所保留的最少WAL日志段文件数量。每个日志文件大小为16MB。 参数类型:SIGHUP 取值范围:整型,最小值1 默认值:64 提升此参数可加快大数据的导入速度,但需要结合checkpoint_timeout、shared_buffers这两个参数统一考虑。这个参数同时影响WAL日志段文件复用数量,通常情况下pg_xlog文件夹下最大的复用文件个数为2倍的checkpoint_segments个,复用的文件被改名为后续即将使用的WAL日志段文件,不会被真正删除。
  • JDBC接口参考 JDBC接口是一套提供给用户的API方法,本节将对部分常用接口做具体描述,若涉及其他接口可参考JDK1.6(软件包)/JDBC4.0中相关内容。 java.sql.Connection java.sql.CallableStatement java.sql.DatabaseMetaData java.sql.Driver java.sql.PreparedStatement java.sql.ResultSet java.sql.ResultSetMetaData java.sql.Statement javax.sql.ConnectionPoolDataSource javax.sql.DataSource javax.sql.PooledConnection javax.naming.Context javax.naming.spi.InitialContextFactory CopyManager 父主题: 基于JDBC开发
  • 下载客户端 表1 gsql下载地址 操作系统类别 适用操作系统版本 下载地址 校验文件 Microsoft Windows Microsoft Windows x86_64: Windows 7及以上。 Windows Server 2008及以上。 dws_8.1.x_gsql_for_windows.zip dws_8.1.x_gsql_for_windows.zip.sha256 dws_8.2.x_gsql_for_windows.zip dws_8.2.x_gsql_for_windows.zip.sha256 Redhat x86_64 RHEL 6.4~7.6 dws_client_8.2.x_redhat_x64.zip dws_client_8.2.x_redhat_x64.zip.sha256 dws_client_8.1.x_redhat_x64.zip dws_client_8.1.x_redhat_x64.zip.sha256 dws_client_8.0.x_redhat_x64.zip dws_client_8.0.x_redhat_x64.zip.sha256 SUSE x86_64 SLES 11.1~11.4,SLES 12.0~12.3 dws_client_8.2.x_suse_x64.zip dws_client_8.2.x_suse_x64.zip.sha256 dws_client_8.1.x_suse_x64.zip dws_client_8.1.x_suse_x64.zip.sha256 dws_client_8.0.x_suse_x64.zip dws_client_8.0.x_suse_x64.zip.sha256 Euler Kunpeng_64 EulerOS 2.0 SP8 dws_client_8.1.x_euler_kunpeng_x64.zip dws_client_8.1.x_euler_kunpeng_x64.zip.sha256 Redhat Kunpeng_64 CentOS-7.6-aarch64和NeoKylin-7.6-aarch64 (适配鲲鹏920处理器) dws_client_8.1.x_redhat_kunpeng_x64.zip dws_client_8.1.x_redhat_kunpeng_x64.zip.sha256
  • java.sql.DatabaseMetaData java.sql.DatabaseMetaData是数据库对象定义接口。 表1 对java.sql.DatabaseMetaData的支持情况 方法名 返回值类型 支持JDBC 4 getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types) ResultSet Yes getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern) ResultSet Yes getTableTypes() ResultSet Yes getUserName() String Yes isReadOnly() boolean Yes nullsAreSortedHigh() boolean Yes nullsAreSortedLow() boolean Yes nullsAreSortedAtStart() boolean Yes nullsAreSortedAtEnd() boolean Yes getDatabaseProductName() String Yes getDatabaseProductVersion() String Yes getDriverName() String Yes getDriverVersion() String Yes getDriverMajorVersion() int Yes getDriverMinorVersion() int Yes usesLocalFiles() boolean Yes usesLocalFilePerTable() boolean Yes supportsMixedCaseIdentifiers() boolean Yes storesUpperCaseIdentifiers() boolean Yes storesLowerCaseIdentifiers() boolean Yes supportsMixedCaseQuotedIdentifiers() boolean Yes storesUpperCaseQuotedIdentifiers() boolean Yes storesLowerCaseQuotedIdentifiers() boolean Yes storesMixedCaseQuotedIdentifiers() boolean Yes supportsAlterTableWithAddColumn() boolean Yes supportsAlterTableWithDropColumn() boolean Yes supportsColumnAliasing() boolean Yes nullPlusNonNullIsNull() boolean Yes supportsConvert() boolean Yes supportsConvert(int fromType, int toType) boolean Yes supportsTableCorrelationNames() boolean Yes supportsDifferentTableCorrelationNames() boolean Yes supportsExpressionsInOrderBy() boolean Yes supportsOrderByUnrelated() boolean Yes supportsGroupBy() boolean Yes supportsGroupByUnrelated() boolean Yes supportsGroupByBeyondSelect() boolean Yes supportsLikeEscapeClause() boolean Yes supportsMultipleResultSets() boolean Yes supportsMultipleTransactions() boolean Yes supportsNonNullableColumns() boolean Yes supportsMinimumSQLGrammar() boolean Yes supportsCoreSQLGrammar() boolean Yes supportsExtendedSQLGrammar() boolean Yes supportsANSI92EntryLevelSQL() boolean Yes supportsANSI92IntermediateSQL() boolean Yes supportsANSI92FullSQL() boolean Yes supportsIntegrityEnhancementFacility() boolean Yes supportsOuterJoins() boolean Yes supportsFullOuterJoins() boolean Yes supportsLimitedOuterJoins() boolean Yes isCatalogAtStart() boolean Yes supportsSchemasInDataManipulation() boolean Yes supportsSavepoints() boolean Yes supportsResultSetHoldability(int holdability) boolean Yes getResultSetHoldability() int Yes getDatabaseMajorVersion() int Yes getDatabaseMinorVersion() int Yes getJDBCMajorVersion() int Yes getJDBCMinorVersion() int Yes 父主题: JDBC接口参考
  • SQL历史记录 历史执行SQL脚本未加密。 “历史执行SQL”列表不显示包含如下关键字的敏感查询: Alter Role Alter User Create Role Create User Identified by Password 部分查询语法示例列举如下: ALTER USER name [ WITH ] option [ ... ]] CREATE USER name [ [ WITH ] option [ ... ] ] CREATE ROLE name [ [ WITH ] option [ ... ] ] ALTER ROLE name [ [ WITH ] option [ ... ] ]
  • Hudi简介 Apache Hudi(发音Hoodie)表示Hadoop Upserts Deletes and Incrementals。用来管理Hadoop大数据体系下存储在DFS上大型分析数据集。 Hudi不是单纯的数据格式,而是一套数据访问方法(类似GaussDB(DWS)存储的access层),在Apache Hudi 0.9版本,大数据的Spark,Flink等组件都单独实现各自客户端。Hudi的逻辑存储如下图所示: 写入模式 COW:写时复制,适合更新少的场景。 MOR:读时复制,对于UPDATE&DELETE增量写delta log文件,分析时进行base和delta log文件合并,异步compaction合并文件。 存储格式 index:对主键进行索引,默认是file group级别的bloomfilter。 data files:base file + delta log file(主要面向对base file的update&delete)。 timeline metadata:版本log的管理。 视图 读优化视图:读取Compaction后生成的base file,未Compaction数据时效性有一定延迟(高效读取)。 实时视图:读取最新的数据,在读取时进行Base file和Delta file合并(频繁update场景)。 增量视图:类似CDC方式持续读取增量写入Hudi的数据(流批一体)。 父主题: SQL on Hudi
  • 创建用户/角色 多个用户可以使用同一数据库,为了方便管理,需要将用户进行分组。一个数据库角色代表一个或一组数据库用户。 在数据库中,用户和角色的概念类似。实际应用中,建议使用角色来进行权限管理而不是直接访问数据库。 用户:数据库用户的集合。这些用户与操作系统用户不同,可以为其他用户分配权限以访问数据库对象。 角色:根据用途的不同,可以将角色分为用户或用户组。角色是集群级别的定义,适用于集群中的所有数据库。
  • PG_OPCLASS PG_OPCLASS系统表定义索引访问方法操作符类。 每个操作符类为一种特定数据类型和一种特定索引访问方法定义索引字段的语义。一个操作符类本质上指定一个特定的操作符族适用于一个特定的可索引的字段数据类型。索引的字段实际可用的族中的操作符集是接受字段的数据类型作为它们的左边的输入的那个。 表1 PG_OPCLASS字段 名字 类型 引用 描述 oid oid - 行标识符(隐藏属性,必须明确选择才会显示)。 opcmethod oid PG_AM.oid 操作符类所属的索引访问方法。 opcname name - 操作符类的名称。 opcnamespace oid PG_NAMESPACE.oid 操作符类所属的命名空间。 opcowner oid PG_AUTHID.oid 操作符类所有者。 opcfamily oid PG_OPFAMILY.oid 包含此操作符类的操作符族。 opcintype oid PG_TYPE.oid 操作符类索引的数据类型。 opcdefault boolean - 如果操作符类是opcintype的缺省,则为真。 opckeytype oid PG_TYPE.oid 索引数据的类型,如果和opcintype相同则为0。 一个操作符类的opcmethod必须匹配包含它的操作符族的opfmethod。同样,对于任意给定的opcmethod和opcintype的组合,不能有超过一个PG_OPCLASS行有opcdefault为真。 父主题: 系统表
  • 符号约定 在本文中可能出现下列标志,它们所代表的含义如下。 符号 说明 用于警示紧急的危险情形,若不避免,将会导致人员死亡或严重的人身伤害。 用于警示潜在的危险情形,若不避免,可能会导致人员死亡或严重的人身伤害。 用于警示潜在的危险情形,若不避免,可能会导致中度或轻微的人身伤害。 用于传递设备或环境安全警示信息,若不避免,可能会导致设备损坏、数据丢失、设备性能降低或其它不可预知的结果。 “注意”不涉及人身伤害。 用于突出重要/关键信息、最佳实践和小窍门等。 “说明”不是安全警示信息,不涉及人身、设备及环境伤害。
  • max_build_io_limit 参数说明:用于限制主机在提供备机重建(build)会话时,一秒时间内所允许磁盘读取的数据流量。 参数类型:SIGHUP 取值范围:整型,0~1048576,单位为KB。 默认值:0,表示主机对备机build无IO流控限制。 设置建议:可参考磁盘带宽和作业模型。无限制时或无作业干扰时,全量build在性能良好的磁盘(如SSD盘)下占磁盘带宽比例较小,磁盘IO未达到瓶颈,对业务性能影响较小,不需要设置阈值限制。在普通10000RPM转速的SAS盘下,如果build过程中,发现业务性能明显下降,可对该参数进行设置,当前推荐设置为20MB。 此设置将直接对build的进行速度和完成时间产生影响,不建议设置过低(10MB以下不建议)。在业务低峰时,建议及时取消限制,恢复build的正常速度。 该参数可在业务高峰期或主机磁盘IO压力较大场景时,通过限制备机build的流速阈值以减少对主机业务的影响。待业务高峰期过后,可取消限制或重新设置流速阈值。 具体业务场景以及磁盘性能状况,建议选择合适的阈值。
  • wal_keep_segments 参数说明:Xlog日志文件段数量。设置“pg_xlog”目录下保留事务日志文件的最小数目,备机通过获取主机的日志进行流复制。 参数类型:SIGHUP 取值范围:整型,2 ~ INT_MAX 默认值:128 设置建议: 当服务器开启日志归档或者从检查点恢复时,保留的日志文件数量可能大于wal_keep_segments设定的值。 如果此参数设置过小,则在备机请求事务日志时,此事务日志可能已经被产生的新事务日志覆盖,导致请求失败,主备关系断开。 当双机为异步传输时,以COPY方式连续导入4G以上数据需要增大wal_keep_segments配置。以T6000单板为例,如果导入数据量为50G,建议调整参数为1000。您可以在导入完成并且日志同步正常后,动态恢复此参数设置。
  • 命令参考 详细的gsql参数请参见表1、表2、表3和表4。 表1 常用参数 参数 参数说明 取值范围 -c, --command=COMMAND 声明gsql要执行一条字符串命令然后退出。 - -C, --set-file=FILENAME 使用文件作为命令源而不是交互式输入,gsql处理完文件后不退出,继续处理其他内容。 绝对路径或相对路径,且满足操作系统路径命名规则。 -d, --dbname=DBNAME 指定想要连接的数据库名称。 字符串。 -D, --dynamic-param 用于控制执行SQL语句设置变量和${}变量引用方式,具体示例参见变量。 - -f, --file=FILENAME 使用文件作为命令源而不是交互式输入。gsql将在处理完文件后结束。如果FILENAME是-(连字符),则从标准输入读取。 绝对路径或相对路径,且满足操作系统路径命名规则。 -l, --list 列出所有可用的数据库,然后退出。 - -v, --set, --variable=NAME=VALUE 设置gsql变量NAME为VALUE。 变量的示例和详细说明请参见变量。 - -X, --no-gsqlrc 不读取启动文件(系统范围的gsqlrc或者用户的~/.gsqlrc都不读取)。 说明: 启动文件默认为~/.gsqlrc,或通过PSQLRC环境变量指定。 - -1 ("one"), --single-transaction 当gsql使用-f选项执行脚本时,会在脚本的开头和结尾分别加上START TRANSACTION/COMMIT用以把整个脚本当作一个事务执行。这将保证该脚本完全执行成功,或者脚本无效。 说明: 如果脚本中已经使用了START TRANSACTION,COMMIT,ROLLBACK,则该选项无效。 - -?, --help 显示关于gsql命令行参数的帮助信息然后退出。 - -V, --version 打印gsql版本信息然后退出。 - 表2 输入和输出参数 参数 参数说明 取值范围 -a, --echo-all 在读取行时向标准输出打印所有内容。 注意: 使用此参数可能会暴露部分SQL语句中的敏感信息,如创建用户语句中的password信息等,请谨慎使用。 - -e, --echo-queries 把所有发送给服务器的查询同时回显到标准输出。 注意: 使用此参数可能会暴露部分SQL语句中的敏感信息,如创建用户语句中的password信息等,请谨慎使用。 - -E, --echo-hidden 回显由\d和其他反斜杠命令生成的实际查询。 - -k, --with-key=KEY 使用gsql对导入的加密文件进行解密。 须知: 对于本身就是shell命令中的关键字符如单引号(')或双引号("),Linux shell会检测输入的单引号(')或双引号(")是否匹配。如果不匹配,shell认为用户没有输入完毕,会一直等待用户输入,从而不会进入到gsql程序。 - -L, --log-file=FILENAME 除了正常的输出源之外,把所有查询输出记录到文件FILENAME中。 注意: 使用此参数可能会暴露部分SQL语句中的敏感信息,如创建用户语句中的password信息等,请谨慎使用。 此参数只保留查询结果到相应文件中,主要目标是为了查询结果能够更好更准确地被其他调用者(例如自动化运维脚本)解析;而不是保留gsql运行过程中的相关日志信息。 绝对路径或相对路径,且满足操作系统路径命名规则。 -m, --maintenance 允许在两阶段事务恢复期间连接集群。 说明: 该选项是一个开发选项,禁止用户使用,只限专业技术人员使用,功能是:使用该选项时,gsql可以连接到备机,用于校验主备机数据的一致性。 - -n, --no-libedit 关闭命令行编辑。 - -o, --output=FILENAME 将所有查询输出重定向到文件FILENAME。 绝对路径或相对路径,且满足操作系统路径命名规则。 -q, --quiet 安静模式,执行时不会打印出额外信息。 缺省时gsql将打印许多其他输出信息。 -s, --single-step 单步模式运行。意味着每个查询在发往服务器之前都要提示用户,用这个选项也可以取消执行。此选项主要用于调试脚本。 注意: 使用此参数可能会暴露部分SQL语句中的敏感信息,如创建用户语句中的password信息等,请谨慎使用。 - -S, --single-line 单行运行模式,这时每个命令都将由换行符结束,像分号那样。 - 表3 输出格式参数 参数 参数说明 取值范围 -A, --no-align 切换为非对齐输出模式。 缺省为对齐输出模式。 -F, --field-separator=STRING 设置域分隔符(默认为“|”)。 - -H, --html 打开HTML格式输出。 - -P, --pset=VAR[=ARG] 在命令行上以\pset的风格设置打印选项。 说明: 这里必须用等号而不是空格分隔名称和值。例如,把输出格式设置为LaTeX,可以键入-P format=latex - -R, --record-separator=STRING 设置记录分隔符。 - -r 开启客户端操作历史记录功能。 缺省为关闭。 -t, --tuples-only 只打印行。 - -T, --table-attr=TEXT 允许声明放在HTML table标签里的选项。 使用时请搭配参数“-H,--html”,指定为HTML格式输出。 - -x, --expanded 打开扩展表格式模式。 - -z, --field-separator-zero 设置非对齐输出模式的域分隔符为空。 使用时请搭配参数“-A, --no-align”,指定为非对齐输出模式。 - -0, --record-separator-zero 设置非对齐输出模式的记录分隔符为空。 使用时请搭配参数“-A, --no-align”,指定为非对齐输出模式。 - -g 显示所有SQL语句和指定文件的分隔符。 说明: -g参数必须和-f参数一起设置。 - 表4 连接参数 参数 参数说明 取值范围 -h, --host=HOSTNAME 指定正在运行服务器的主机名或者Unix域套接字的路径。 如果省略主机名,gsql将通过Unix域套接字与本地主机的服务器相联,或者在没有Unix域套接字的机器上,通过TCP/IP与localhost连接。 -p, --port=PORT 指定数据库服务器的端口号。 可以通过port参数修改默认端口号。 默认为8000。 -U, --username=USERNAME 指定连接数据库的用户。 说明: 通过该参数指定用户连接数据库时,需要同时提供用户密码用以身份验证。您可以通过交换方式输入密码,或者通过-W参数指定密码。 用户名中包含有字符$,需要在字符$前增加转义字符才可成功连接数据库。 字符串。默认使用与当前操作系统用户同名的用户。 -W, --password=PASSWORD 当使用-U参数连接远端数据库时,可通过该选项指定密码。 说明: 用户密码中包含特殊字符“\”和"`"时,需要增加转义字符才可成功连接数据库。 如果用户未输入该参数,但是数据库连接需要用户密码,这时将出现交互式输入,请用户输入当前连接的密码。该密码最长长度为999字节,受限于GUC参数password max length的最大值。 符合密码复杂度要求。 父主题: gsql
共100000条