-
## PyTorch
## Tensor维度变换
主讲人:龙良曲
## Operation
View/reshape
- Squeeze/unsqueeze
- Transpose/t/permute
Expand/repeat
## V iew reshape
• Lost dim information
## Flexible but prone to corrupt
☀️ ☁️
0 码力 |
16 页 |
1.66 MB
| 2 年前 3
-
现代编程思想
哈希表与闭包
Hongbo Zhang
## 回顾
## · 表
键值对的集合,其中键不重复
简单实现:二元组列表
- 添加时向队首添加
- 查询时从队首遍历
树实现:二叉平衡树
- 基于第五节课介绍的二叉平衡树,每个节点的数据为键值对
- 对树操作时比较第一个参数
## 哈希表
- 哈希函数/散列函数 Hash function
◦ 接口中,数据被映射到整数范围内
trait Hash { hash(Self) -> Int }
■ "这是一个非常非常长的字符串".hash() == -900478401
## · 哈希表
◦ 利用哈希函数,将数据映射到数组索引中,进行快速的添加、查询、修改
1. // 对于 a: Array[(Key, Value)], key: Key, value: Value
2. let 不同数据的哈希可能相同
不同的哈希映射为数组索引时可能相同
- 解决哈希表的冲突
◦ 直接寻址(分离链接):同一索引下用另一数据结构存储
列表
二叉平衡搜索树等
☐ 开放寻址
■ 线性探查:当发现冲突后,索引递增,直到查找空位放入
■ 二次探查(索引递增 $ 1^{2}2^{2}3^{2} $ )等
## 哈希表:直接寻址
- 当发生哈希/索引冲突时,将相同索引的数据装进一个数据结构中
0 码力 |
27 页 |
448.83 KB
| 2 年前 3
-
7e010676e/p6_1.jpg)
## 数据同步ck
1. 基于公司对数据要求为T+1
2. 基于现有开发人员水平及成本
因此采用可视化同步工具kettle. 先将oracle数据平台维度信息以及相关主题清单数据同步至clichouse数据仓库
Etl服务器
- 通过clickhouse-client将文本导入ck数据库
Oracle数据平台
- 通过kettle每天定时导出文件至本地 [Image](/uploads/documents/a/5/4/5/a5458db7fb86ab4e1f5c1167e010676e/p8_1.jpg)
## 数仓建设-维度表
### 一 般维度表数据量不大. 目前采用的是引擎Log+字典表(dictionary)

## 数仓建设-主题事实清单表
主题事实清单表采用引擎MergeTree. 同步策略: 每日从 oracle 数据平台增量同步到 ck 数仓.
create table dw_hr.fct_rpt_dc_shop_vender_day
0 码力 |
14 页 |
3.03 MB
| 2 年前 3
-
0 码力 |
10 页 |
974.80 KB
| 2 年前 3
-
0 码力 |
12 页 |
551.84 KB
| 2 年前 3
-
数据库里访问某个文件系统中的外部文件或外部数据,最简单的方法莫过于使用外部表。请参阅这里了解外部表。
外部表以表的形式展示存储在文件系统中的数据,并且可在 SQL 查询中完全透明地使用。因此,可以考虑用外部表从 Oracle 数据库中直接访问 HDFS(Hadoop 文件系统)中存储的数据。遗憾的是,常规的操作系统无法调用外部表驱动直接访问 HDFS 文件。FUSE(File System in U HDFS(如果是 RAC 数据库,则在其所有实例上挂载 HDFS),即可使用外部表基础架构轻松访问 HDFS 文件。

图 1. 用数据库内置的 MapReduce 通过外部表进行访问
在图 1 中,我们利用 Oracle Database 11g mapreduce。通常情况下,Oracle Database 11g 中的并行执行框架足以满足针对外部表大多数的并行操作。
在有些情况下(例如,如果 FUSE 不可用),外部表方法可能不适用。Oracle 表函数提供了从 Hadoop 中获取数据的替代方法。本文附带的示例展示了一种这样的方法。更深入地来讲,我们用一个表函数来实现,这个表函数使用 DBMS_SCHEDULER 框架异步调用外部 shell 脚本,然后由这个
0 码力 |
21 页 |
1.03 MB
| 2 年前 3
-
phere.version}
## 基于Java编码的规则配置
Sharding-JDBC的分库分表通过规则配置描述,以下例子是根据user_id取模分库,且根据order_id取模分表的两库两表的配置。
// 配置真实数据源
Map dataSourceMap = new HashMap<>(); setUsername("root");
dataSource2.setPassword();
dataSourceMap.put("ds1", dataSource2);
// 配置Order表规则
TableRuleConfiguration orderTableRuleConfig = new TableRuleConfiguration();
orderTableRuleConfig der");
orderTableRuleConfig.setActualDataNodes("ds${0..1}.t_order${0..1}");
// 配置分库 + 分表策略
orderTableRuleConfig.setDatabaseShardingStrategyConfig(new InlineShardingStrategyConfiguration("user_id"
0 码力 |
12 页 |
325.38 KB
| 2 年前 3
-
0 码力 |
57 页 |
199.89 KB
| 2 年前 3
-
- 需要数据结构内部的数据同样实现接口
## 表:利用接口实现
## • 一个表是键值对的集合
对于每一个键存在一个对应值
☐ 例:{ 0 -> "a", 5 -> "Hello", 7 -> "a" }
1. type Map[Key, Value]
2.
3. // 创建表
4. fn make[Key, Value]() Value]
7. // 获取键对应值
8. fn get[Key, Value](map: Map[Key, Value], key: Key) -> Option[Value]
## 表:利用接口实现
• 表的简易实现
☐ 利用列表+二元组存储键值对
☐ 添加/更新时向列表前添加键值对
☐ 查询时从列表前开始,找到键即返回
- 简易实现需要判断存储的键值对是否为搜索的键
☐ 键应当满足相等接口 键应当满足相等接口
1. fn get[Key: Eq, Value](map: Map[Key, Value], key: Key) -> Option[Value]
## 表:利用接口实现
## • 我们以列表+二元组作为表
1. // 我们定义一个类型Map,其实际值为List[(Key, Value)]
2. type Map[Key, Value] List[(Key, Value)]
3
0 码力 |
16 页 |
346.04 KB
| 2 年前 3
-
配置保存在 postgres 库下面的名为 pg_catalog 的 schema 下的 pg_hba_file_rules 表里:
| 库过滤器 | 表过滤器 | 主机: 10.99.1.238 | 数据库: pg_catalog | 视图: pg_hba_file_rules | 数据 | 查询* | 表过滤器 ★ 主机: 10.99.1.238 数据库: pg_catalog 视图: pg_user 数据 查询*
| pg_u /td> | 搜索 | 查询 | 工具 | 转到 | 帮助 | | 数据库过滤器 | 表过滤器 | | pg-13 | 8.1 MiB | | information_schema | 336 0 码力 |
17 页 |
445.84 KB
| 2 年前 3
|
|