当前位置: 首页 > news >正文

企业级数据共享规模化模式

f3638f244b4c0caa5bd4a7f2e15a2bf8.gif

数据共享正在成为企业数据战略的重要元素。对于公司而言,Amazon Data Exchange 这样的亚马逊云科技服务提供了与其他公司共享增值数据或从这些数据获利的途径。一些企业希望有一个数据共享平台,他们可以在该平台上建立协作和战略方法,在封闭、安全和排外的环境中,与有限的一组公司交换数据。例如,金融服务公司与其审计公司,或制造公司与其供应链合作伙伴。这可以促进新产品和服务的开发,并有助于提高其运营效率。

数据共享是一项团队工作,值得注意的是,在构建合适的基础设施之外,成功的数据共享还需要企业确保业务负责人支持数据共享计划。他们还需要确保提供高质量的数据。数据平台所有者和安全团队应鼓励正确使用数据,并修复任何隐私和保密问题。

本文讨论了各种数据共享选项以及常见架构模式,企业可以采用这些模式,基于亚马逊云服务可用性和数据合规性来设置其数据共享基础设施。

数据共享选项和数据分类类型

企业在运营时受各种安全合规要求的约束。一些企业可以使用像 Amazon Data Exchange 这样的亚马逊云科技服务。但是,一些机构在受严格监管的行业中开展工作,例如联邦机构或金融服务等,他们可能会受到限制,只能使用明示允许的亚马逊云科技服务选项。例如,如果某个企业被要求在 Fedramp Medium 或 Fedramp High 环境中运营,则他们共享数据的选项可能会限制为可用且已明示允许的亚马逊云科技服务。服务可用性基于亚马逊云科技的平台认证,允许列表则基于企业对其安全合规性架构和准则的定义。

企业要与其合作伙伴共享的数据类型,也可能会对用于数据共享的方法产生影响。遵守数据分类规则可能会进一步限制他们能够选择的数据共享选项。

以下是一些常规数据分类类型:

  • 公共数据 – 重要信息,但通常可供人们免费读取、研究、查看和存储。这些数据通常具有最低的数据分类和安全级别。

  • 私有数据– 您可能需要保密的信息,例如电子邮件收件箱、手机中的内容、员工识别号码或员工地址。私有数据如果被共享、销毁或更改,可能会对个人或企业构成轻微的风险。

  • 机密或受限数据– 有限的个人或团体可以访问的敏感信息,通常需要特别许可或特别授权。对机密或受限数据的访问可能涉及身份和授权管理等方面。机密数据的示例包括社会安全号码和车辆识别号。

以下是决策树示例,在根据服务可用性、分类类型和数据格式(结构化或非结构化)选择数据共享选项时,您可以参考该决策树。其他因素,例如可用性、多个合作伙伴可访问性、数据大小、使用模式(批量加载/API 访问)等,也可能会影响数据共享模式的选择。

25b81f6bcfb42398cd5b1ed23cafb842.png

在以下部分中,我们将详细地讨论每个模式。

模式 1:

使用 Amazon Data Exchange

Amazon Data Exchange 简化了数据交换过程,帮助企业降低成本、提高敏捷性并加快创新。企业可以选择使用 Amazon Data Exchange 与外部合作伙伴私密共享数据。Amazon Data Exchange 提供在身份和资源级别应用的边界控制。这些控制措施决定哪些外部身份有权访问特定的数据资源。Amazon Data Exchange 为外部各方访问数据提供了多种不同的模式,例如:

  • Amazon Data Exchange for Amazon Redshift

  • Amazon Data Exchange for Amazon Lake Formation(目前为预览版)

  • 适用于数据 API 的 Amazon Data Exchange

  • 适用于数据文件的 Amazon Data Exchange

  • Amazon Data Exchange for Amazon S3(目前为预览版)

下图展示了一个示例架构。

7fdab7bdc1ddacd1b8f3371890d90a52.png

借助 Amazon Data Exchange,在配置了要共享(或销售)的数据集后,Amazon Data Exchange 就会自动管理创建者和使用者之间的授权(和账单)。创建者不必管理政策、设置新的接入点或为每个使用者创建新的 Amazon Redshift 数据共享,在订阅结束时会自动撤销访问权限。这可以显著减少共享数据的操作开销。

模式 2:

使用 Amazon Lake Formation

进行集中访问管理

在创建者和使用者均使用亚马逊云科技服务,且具有可以使用 Aamazon Lake Formation 的亚马逊云科技账户时,您可以使用这种模式。这种模式提供了一种无需编写代码的数据共享方法。下图展示了一个示例架构。

46bf286f86aa67cef9449cc9c78f889d.png

在这种模式下,中央监管账户配置了 Lake Formation,用于管理创建者企业账户的访问权限。来自生产账户 Amazon Simple Storage Service(Amazon S3)存储桶中资源的链接在 Lake Formation 中创建。创建者将 Amazon Glue Data Catalog 资源上的 Lake Formation 权限授予外部账户,或者直接授予其他账户中的 Amazon Identity and Access Management(IAM)主体。Lake Formation 使用 Amazon Resource Access Manager(Amazon RAM)来共享资源。如果被授予者账户与授予者账户属于同一企业,则可立即向被授予者提供共享资源。如果被授予者账户不属于同一企业,则 Amazon RAM 会向被授予者账户发送邀请,以便其接受或拒绝资源授予。要使共享资源可供使用,被授权者账户中的使用者管理员必须使用 Amazon RAM 控制台或 Amazon 命令行界面(Amazon CLI)接受邀请。

获得授权的主体可以与外部账户中的 IAM 主体明确共享资源。当创建者想要控制外部账户中可以访问其资源的用户时,此功能很有用。IAM 主体获得的权限是直接授予的权限,加上与在账户级授予并向下传递到主体的权限。接收方账户的数据湖管理员可以查看直接的跨账户授权,但无法撤消权限。

模式 3:

从创建者外部共享账户中使用 

Amazon Lake Formation

创建者可能有严格的安全要求,任何外部使用者都不应访问其生产账户或其集中治理账户。他们也可能没有在其生产平台上启用 Lake Formation。在这种情况下,如下图所示,创建者的生产账户(账户 A)专用于其内部企业用户。创建者创建另一个账户,即创建者的外部共享账户(账户 B),专用于外部共享。这使得创建者有更大的自由度,可针对特定企业创建特定策略。

b31f214bd541fc3c93475e7e96371d5a.png

创建者实施了一个流程,在账户 B 中创建数据的异步副本。对于需要共享的对象,可以将存储桶配置为同区域复制(SRR,Same Region Replication)或跨区域复制(CRR,Cross Region Replication)。这可以帮助自动将数据刷新到外部账户的 External Published Datasets(外部已发布数据集)S3 存储桶,而无需编写任何代码。

通过创建数据的副本,创建者可以进一步隔离外部使用者与其生产数据。它还可以帮助满足任何合规性或数据主权要求。

Lake Formation 设置在账户 B 上,管理员为其账户中的 External Published Datasets(外部已发布数据集)S3 存储桶创建资源链接,用以授予访问权限。管理员按照前述的相同过程授予访问权限。

模式 4:

使用 Amazon Redshift 数据共享

这种模式非常适合主要在 Amazon Redshift 上发布数据产品的创建者。这种模式还要求创建者的外部共享账户(账户 B)和使用者账户(账户 C)均具有加密的 Amazon Redshift 集群或 Amazon Redshift Serverless 端点,并且它们满足 Amazon Redshift 数据共享先决条件。

以下架构图显示了模式概览。

f77dba286eccd439cbf6c78ed60ca34d.png

根据创建者的合规性限制,可以有两种选择:

  • 选项 A– 创建者直接在生产 Amazon Redshift 集群上启用共享数据。

  • 选项 B – 创建者可能会在共享生产集群方面进行限制。创建者创建一个简单的 Amazon Glue 作业,从生产账户 A 的 Amazon Redshift 集群中,将数据复制到外部账户 B 的 Amazon Redshift 集群。此 Amazon Glue 作业可以根据使用者的需要安排刷新数据。当账户 B 中有数据时,创建者可以根据需要创建多个视图和多个数据共享。

在这两个选项中,创建者可以完全控制共享哪些数据,而使用者管理员则完全控制其企业中的哪些用户可以访问数据。

在创建者和使用者管理员都批准了数据共享请求后,使用者用户可以访问这些数据,就好像这些数据存在于自己的账户中一样,无需编写任何额外的代码。

模式 5:

使用 API 安全私密地共享数据

当外部合作伙伴没有使用任何亚马逊云科技服务时,您可以采用这种模式。如果已发布的数据产品分布在多种服务上(例如,Amazon S3、Amazon Redshift、Amazon DynamoDB 和 Amazon OpenSearch Service),而创建者希望保持单一的数据共享接口时,您也可以使用此模式。

这种使用场景示例如下:A 公司希望与其合作伙伴公司 B 近乎实时地共享一些日志数据,B 公司使用这些数据为 A 公司生成预测洞察。A 公司将这些数据存储在 Amazon Redshift 中。A 公司希望首先遮蔽个人身份信息(PII),然后再与合作伙伴分享事务数据,以经济实惠且安全的方式来生成洞察。B 公司不使用亚马逊云科技服务。

A 公司使用 Amazon Lambda 函数或 Amazon Glue 建立小型批处理流程,该流程查询 Amazon Redshift 以获取增量日志数据,应用规则来遮蔽 PII,并将这些数据加载到 Published Datasets(已发布数据集)S3 存储桶。这将实例化 SRR/CRR 进程,该进程刷新 External Sharing(外部共享)S3 存储桶中的这些数据。

下图显示了使用者随后如何通过基于 API 的方法来访问这些数据。

c9d97cc5b3cb75178f01881c6b2fb1d8.png

该工作流包含以下步骤:

  1. API 使用者发送 HTTPS API 请求到 API 代理层。

  2. API 代理将 HTTPS API 请求转发到外部共享亚马逊云科技账户中的 Amazon API Gateway。

  3. Amazon API Gateway 调用请求接收方 Amazon Lambda 函数。

  4. 请求接收方函数将状态写入 DynamoDB 控制表。

  5. 第二个 Lambda 函数是轮询器,用于在 DynamoDB 表中检查结果的状态。

  6. 轮询器函数从 Amazon S3 提取结果。

  7. 轮询器函数通过 Amazon Simple Email Service(Amazon SES),向请求方发送预签名 URL,以便从 S3 存储桶中下载文件。

  8. 请求方使用该 URL 下载文件。

  9. 网络边界亚马逊云科技账户仅允许传出互联网连接。

  10. 在流量传出创建者的网络边界之前,API 代理层会强制执行传出安全控制和边界防火墙。

  11. Amazon Transit Gateway 安全传出 VPC 路由表仅允许从所需的创建者子网进行连接,同时防止互联网访问。

模式 6:

使用 Amazon S3 接入点。

数据科学家可能需要合作处理图像、视频和文本文档。法律和审计团队可能需要与审计机构共享报告和报表。本模式讨论了共享此类文档的方法。本模式假设外部合作伙伴也在使用亚马逊云科技。Amazon S3 接入点让创建者可以设置跨账户存取,从而与其使用者共享访问权限,而无需编辑存储桶策略。

接入点是附加到存储桶的指定网络端点,可用于执行 S3 对象操作,例如 GetObject 和 PutObject。每个接入点都有不同的权限和网络控制,Amazon S3 对通过该接入点执行的任意请求应用这些权限和网络控制。每个接入点都会强制执行自定义的接入点策略,该策略与附加到底层存储桶的存储桶策略结合在一起使用。

以下架构图显示了模式概览。

800c7719e8af49e87f49284f7232be46.png

创建者创建 S3 存储桶并启用访问点的使用。作为配置的一部分,创建者为使用者指定使用者、IAM 角色和权限。

在使用者账户中具有 IAM 角色的使用者用户可以通过互联网访问 S3 存储桶,也可以通过 VPC 端点和 Amazon PrivateLink,仅限通过 Amazon VPC 进行访问。

总结

每家企业都有一套独特的限制和要求,而建立有效的数据共享解决方案需要满足这些条件。在这篇文章中,我们展示了可供企业使用的各种选项和最佳实践。数据平台所有者和安全团队应携手合作,评测哪种方法最适合您的具体情况。亚马逊云科技账户团队也可以提供帮助。

相关资源

有关相关主题的更多信息,请参阅以下内容:

  • 亚马逊云科技上的数据边界

    https://aws.amazon.com/identity/data-perimeters-on-aws/

  • Amazon Data Exchange

    https://aws.amazon.com/data-exchange/

  • 使用 Amazon Lake Formation 在亚马逊云科技账户之间安全共享数据

    https://aws.amazon.com/blogs/big-data/securely-share-your-data-across-aws-accounts-using-aws-lake-formation/

  • 在 Amazon Redshift 中跨集群共享数据

    https://docs.aws.amazon.com/redshift/latest/dg/datashare-overview.html

  • 使用 S3 接入点设置跨账户 Amazon S3 访问

    https://aws.amazon.com/blogs/storage/setting-up-cross-account-amazon-s3-access-with-s3-access-points/

Original URL: 

https://aws.amazon.com/blogs/big-data/patterns-for-enterprise-data-sharing-at-scale/

本篇作者

361a34d40fc60569afb4a63af7bd5900.jpeg

Venkata Sistla

亚马逊云科技的云架构师,侧重于数据与分析。他擅长构建数据处理功能,帮助客户消除阻碍他们利用数据获得业务洞察的约束。

19c51187ca848936f258bb36884ecdaf.png

Santosh Chiplunkar

亚马逊云科技的首席驻场架构师。他在帮助客户解决数据挑战方面拥有20多年的经验。他帮助客户制定数据和分析策略,并为他们提供如何实现策略的指导。

5d05445f9f330146ed06f1602dea8c56.gif

37b46b6310eb8f58f0afe190ada9ba9a.gif

听说,点完下面4个按钮

就不会碰到bug了!

1fce74a7a78c0c51ed69592a2ae85d7a.gif

相关文章:

企业级数据共享规模化模式

数据共享正在成为企业数据战略的重要元素。对于公司而言,Amazon Data Exchange 这样的亚马逊云科技服务提供了与其他公司共享增值数据或从这些数据获利的途径。一些企业希望有一个数据共享平台,他们可以在该平台上建立协作和战略方法,在封闭、…...

Web服务器-Tomcat详细原理与实现

Tomcat 安装与使用 :MAC 安装配置使用Tomcat - 掘金 安装后本计算机就相当于一台服务器了!!! 方式一:使用本地安装的Tomcat 1、将项目文件移动到Tomcat的webapps目录下。 2、启动Tomcat 3、在浏览器输入想要加载的…...

ARM处理器核心概述

一、基于ARM处理器的嵌入式系统 ARM核深度嵌入SOC中,通过JTAG口进行外部调试。计通常既有外部内存又有内部内存,从而支持不通的内存宽度、速度和大小。一般会包含一个中断控制器。可能包含一些Primece外设,需要从ARM公司取得授权。总线使用A…...

万户协同办公平台 ezoffice存在未授权访问漏洞 附POC

文章目录 万户协同办公平台 ezoffice存在未授权访问漏洞 附POC1. 万户协同办公平台 ezoffice简介2.漏洞描述3.影响版本4.fofa查询语句5.漏洞复现6.POC&EXP7.整改意见8.往期回顾 万户协同办公平台 ezoffice存在未授权访问漏洞 附POC 免责声明:请勿利用文章内的相…...

使用ctcloss训练矩阵生成目标字符串

首先我们需要明确 c t c l o s s ctcloss ctcloss是用来做什么的。比如说要生成的目标字符串长度为 l l l,而这个字符串包含 s s s个字符,字符串允许的最大长度为 L L L,这里认为一个位置是一个时间步,就是一拍,记为 T…...

驱动 - 20230829

练习 基于platform实现 在根节点下&#xff0c;增加设备树 myplatform {compatible"hqyj,myplatform";interrupts-extended<&gpiof 9 0>, <&gpiof 7 0>, <&gpiof 8 0>;led1-gpio<&gpioe 10 0>;reg<0x12345678 59>;}…...

数组(个人学习笔记黑马学习)

一维数组 1、定义方式 #include <iostream> using namespace std;int main() {//三种定义方式//1.int arr[5];arr[0] 10;arr[1] 20;arr[2] 30;arr[3] 40;arr[4] 50;//访问数据元素/*cout << arr[0] << endl;cout << arr[1] << endl;cout &l…...

layui表格事件分析实例

在 layui 的表格组件中&#xff0c;区分表头事件和行内事件是通过事件类型&#xff08;toolbar 和 tool&#xff09;以及 lay-filter 值来实现的。 我们有一个表格&#xff0c;其中有一个工具栏按钮和操作按钮。我们将使用 layui 的 table 组件来处理这些事件。 HTML 结构&…...

Android NDK JNI与Java的相互调用

一、Jni调用Java代码 jni可以调用java中的方法和java中的成员变量,因此JNIEnv定义了一系列的方法来帮助我们调用java的方法和成员变量。 以上就是jni调用java类的大部分方法,如果是静态的成员变量和静态方法,可以使用***GetStaticMethodID、CallStaticObjectMethod等***。就…...

装备制造企业如何执行精益管理?

导 读 ( 文/ 2358 ) 精益管理是一种以提高效率、降低成本和优化流程为目标的管理方法。装备制造行业具备人工参与度高&#xff0c;产成品价值高&#xff0c;质量要求高的特点。 在装备制造企业中实施精益管理可以帮助企业提高竞争力、提升生产效率并提供高质量的产品。本文将…...

PHP8中自定义函数-PHP8知识详解

1、什么是函数&#xff1f; 函数&#xff0c;在英文中的单词是function&#xff0c;这个词语有功能的意思&#xff0c;也就是说&#xff0c;使用函数就是在编程的过程中&#xff0c;实现一定的功能。即函数就是实现一定功能的一段特定代码。 在前面的教学中&#xff0c;我们已…...

虚拟化技术:云计算发展的核心驱动力

文章目录 虚拟化技术的概念和作用虚拟化技术的优势虚拟化技术对未来发展的影响结论 &#x1f389;欢迎来到AIGC人工智能专栏~虚拟化技术&#xff1a;云计算发展的核心驱动力 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1f379;✨博客主页&#xff1a;IT陈寒的博客&#x1f388;该系…...

光伏+旅游景区

传统化石燃料可开发量逐渐减少&#xff0c;并且对环境造成的危害日益突出。全世界都把目光投向了可再生能源&#xff0c;希望可再生能源能够改变人类的能源结构。丰富的太阳能取之不尽、用之不竭&#xff0c;同时对环境没有影响&#xff0c;光伏发电是近些年来发展最快&#xf…...

手搓文本向量数据库(自然语言搜索生成模型)

import paddle import jieba import pandas as pd import numpy as np import os from glob import glob from multiprocessing import Process, Manager, freeze_supportfrom tqdm import tqdm# 首先 确定的是输出的时候一定要使用pd.to_pickle() pd.read_pickle() # 计算的时…...

EVO大赛是什么

价格是你所付出的东西&#xff0c;而价值是你得到的东西 EVO大赛是什么&#xff1f; “EVO”大赛全称“Evolution Championship Series”&#xff0c;是北美最高规格格斗游戏比赛&#xff0c;大赛正式更名后已经连续举办12年&#xff0c;是全世界最大规模的格斗游戏赛事。常见…...

linux中使用clash代理

本机环境&#xff1a;ubuntu16 安装代理工具&#xff08;这里使用clash&#xff09; 可以手动下载解压&#xff0c;下载地址&#xff1a;https://github.com/Dreamacro/clash 也可以直接使用命令行&#xff0c;演示如下&#xff1a; userlocalhost:~$ curl https://glados.r…...

Kafka3.0.0版本——Follower故障处理细节原理

目录 一、服务器信息二、服务器基本信息及相关概念2.1、服务器基本信息2.2、LEO的概念2.3、HW的概念 三、Follower故障处理细节 一、服务器信息 三台服务器 原始服务器名称原始服务器ip节点centos7虚拟机1192.168.136.27broker0centos7虚拟机2192.168.136.28broker1centos7虚拟…...

13.redis集群、主从复制、哨兵

1.redis主从复制 主从复制是指将一台redis服务器&#xff08;主节点-master&#xff09;的数据复制到其他的redis服务器&#xff08;从节点-slave&#xff09;&#xff0c;默认每台redis服务器都是主节点&#xff0c;每个主节点可以有多个或没有从节点&#xff0c;但一个从节点…...

linux字符串处理

目录 1 C 截取字符串,截取两个子串中间的字符串2 获取该字符串后面的字符串用 strstr() 函数查找需要提取的特定字符串&#xff0c;然后通过指针运算获取该字符串后面的字符串用 strtok() 函数分割字符串&#xff0c;找到需要提取的特定字符串后&#xff0c;调用 strtok() 传入…...

Nginx入门——Nginx的docker版本和windows版本安装和使用 代理的概念 负载分配策略

目录 引出nginx是啥正向代理和反向代理正向代理反向代理 nginx的安装使用Docker版本的nginx安装下载创建挂载文件获取配置文件创建docker容器拷贝容器中的配置文件删除容器 创建运行容器开放端口进行代理和测试 Windows版本的使用反向代理多个端口运行日志查看启动关闭重启 负载…...

Zebec Protocol:模块化 L3 链 Nautilus Chain,深度拓展流支付体系

过去三十年间&#xff0c;全球金融科技领域已经成熟并迅速增长&#xff0c;主要归功于不同的数字支付媒介的出现。然而&#xff0c;由于交易延迟、高额转账费用等问题愈发突出&#xff0c;更高效、更安全、更易访问的支付系统成为新的刚需。 此前&#xff0c;咨询巨头麦肯锡的一…...

Oracle-rolling upgrade升级19c

前言: 本文主要描述Oracle11g升19c rolling upgrade升级测试&#xff0c;通过逻辑DGautoupgrade方式实现rolling upgrade&#xff0c;从而达到在较少停机时间内完成Oracle11g升级到19c的目标 升级介绍&#xff1a; 升级技术: rolling upgrade轮询升级&#xff0c;通过采用跨版…...

Spring IOC详解

Spring 笔记 官网&#xff1a;https://spring.io/ 核心功能&#xff1a;当你的项目启动的时候&#xff0c;自动的将当前项目的各种 Bean 都自动的注册到 Spring 容器中&#xff0c;然后在项目的其他地方&#xff0c;如果需要用到这些 Bean&#xff0c;直接去 Spring 容器中查…...

Unity——DOTween插件使用方法简介

缓动动画既是一种编程技术&#xff0c;也是一种动画的设计思路。从设计角度来看&#xff0c;可以有以下描述 事先设计很多基本的动画样式&#xff0c;如移动、缩放、旋转、变色和弹跳等。但这些动画都以抽象方式表示&#xff0c;一般封装为程序函数动画的参数可以在使用时指定&…...

数据库——Redis 单线程模型详解

文章目录 Redis 基于 Reactor 模式来设计开发了自己的一套高效的事件处理模型 &#xff08;Netty 的线程模型也基于 Reactor 模式&#xff0c;Reactor 模式不愧是高性能 IO 的基石&#xff09;&#xff0c;这套事件处理模型对应的是 Redis 中的文件事件处理器&#xff08;file …...

leetcode 567. 字符串的排列(滑动窗口-java)

滑动窗口 字符串的排列滑动窗口代码演示进阶优化版 上期经典 字符串的排列 难度 -中等 leetcode567. 字符串的排列 给你两个字符串 s1 和 s2 &#xff0c;写一个函数来判断 s2 是否包含 s1 的排列。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 换句…...

Git —— 分支重命名操作

在开发中&#xff0c;对某个分支进行重命名的操作&#xff1a; 1、本地分支重命名 本地分支是指&#xff1a;你当前这个分支还没有推送到远程的情况&#xff0c;这种情况修改分支名称就要方便很多 git branch -m 原始名称 新名称 //示例&#xff1a; 修改 test 为 newTest g…...

JavaIO流

JavaIO流 一、概念二、File类三、File类的使用1、File文件/文件夹类的创建2、File类的获取操作3、File类判断操作 - boolean4、File类对文件/文件夹的增删改5、File类的获取子文件夹以及子文件的方法 四、Java中IO流多种维度的维度1、按照流向 - Java程序2、按照流的大小分类3、…...

FlinkSql 如何实现数据去重?

摘要 很多时候flink消费上游kafka的数据是有重复的&#xff0c;因此有时候我们想数据在落盘之前进行去重&#xff0c;这在实际开发中具有广泛的应用场景&#xff0c;此处不说详细代码&#xff0c;只粘贴相应的flinksql 代码 --********************************************…...

机器学习概念

目录 一、人工智能、机器学习、深度学习的关系 二、什么是深度学习&#xff1f; 2.1 深度学习常用算法 一、人工智能、机器学习、深度学习的关系 人工智能、机器学习和深度学习的关系如下所示。 二、什么是深度学习&#xff1f; 深度学习( DL, Deep Learning) 是机器学习 …...

【数据结构】排序(插入、选择、交换、归并) -- 详解

一、排序的概念及其运用 1、排序的概念 排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。 稳定性&#xff1a;假定在待排序的记录序列中&#xff0c;存在多个具有相同的关键字的记…...

游戏中的图片打包流程,免费的png打包plist工具,一款把若干资源图片拼接为一张大图的免费工具

手机游戏开发中&#xff0c;为了提高图片渲染性能&#xff0c;经常需要将小图片合并成一张大图进行渲染。如果手工来做的话就非常耗时。TexturePacker就是一款非常不错方便的处理工具。TexturePacker虽然非常优秀&#xff0c;但不是免费的。 对于打包流程&#xff0c;做游戏的…...

Springboot实现ENC加密

Springboot实现ENC加密 1、导入依赖2、配置加密秘钥&#xff08;盐&#xff09;3、获取并配置密文4、重启项目测试5、自定义前缀、后缀6、自定义加密方式 1、导入依赖 关于版本&#xff0c;需要根据spring-boot版本&#xff0c;自行修改 <dependency><groupId>co…...

nginx 托管vue项目配置

server {listen 80;server_name your_domain.com;location / {root /path/to/your/vue/project;index index.html;try_files $uri $uri/ /index.html;} }奇怪的现象,在vue路由中/会跳转到/abc/def&#xff0c;但如果直接输入/abc/def会显示404&#xff0c;添加 try_files $uri…...

Vue3中如何进行封装?—组件之间的传值

用了很久一段时间Vue3Ts了&#xff0c;工作中对一些常用的组件也进行了一些封装&#xff0c;这里对封装的一些方法进行一些简单的总结。 1.props传递 首先在主组件进行定义传值 <template><div>这里是主组件<common :first"first"></common&…...

实训笔记8.25

实训笔记8.25 8.25笔记一、Flume数据采集技术1.1 Flume实现数据采集主要借助Flume的组成架构1.2 Flume采集数据的时候&#xff0c;核心是编写Flume的采集脚本xxx.conf1.2.1 脚本文件主要由五部分组成 二、Flume案例实操2.1 采集一个网络端口的数据到控制台2.1.1 分析案例的组件…...

vue自定义监听元素宽高指令

在 main.js 中添加 // 自定义监听元素高度变化指令 const resizerMap new WeakMap() const resizeObserver new ResizeObserver((entries) > {for (const entry of entries) {const handle resizerMap.get(entry.target)if (handle) {handle({width: entry.borderBoxSiz…...

网络爬虫到底是个啥?

网络爬虫到底是个啥&#xff1f; 当涉及到网络爬虫技术时&#xff0c;需要考虑多个方面&#xff0c;从网页获取到最终的数据处理和分析&#xff0c;每个阶段都有不同的算法和策略。以下是这些方面的详细解释&#xff1a; 网页获取&#xff08;Web Crawling&#xff09;&#x…...

前端行级元素和块级元素的基本区别

块级元素和行内元素的基本区别是&#xff0c; 行内元素可以与其他行内元素并排&#xff1b;块级元素独占一行&#xff0c;不能与其他任何元素并列&#xff1b; 下面看一下&#xff1b; <!DOCTYPE html> <html> <head> <meta charset"utf-8"&…...

CentOS 7用二进制安装MySQL5.7

[rootlocalhost ~]# [rootlocalhost ~]# ll 总用量 662116 -rw-------. 1 root root 1401 8月 29 19:29 anaconda-ks.cfg -rw-r--r--. 1 root root 678001736 8月 29 19:44 mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz [rootlocalhost ~]# tar xf mysql-5.7.40-linux-…...

华为加速回归Mate 60发布, 7nm全自研工艺芯片

华为于今天12:08推出“HUAWEI Mate 60 Pro先锋计划”&#xff0c;让部分消费者提前体验。在华为商城看到&#xff0c;华为Mate 60 pro手机已上架&#xff0c;售价6999元&#xff0c;提供雅川青、白沙银、南糯紫、雅丹黑四种配色供选择。 据介绍&#xff0c;华为在卫星通信领域…...

Linux系列讲解 —— 【systemd】下载及编译记录

Ubuntu18.04的init程序合并到了systemd中&#xff0c;本篇文章记录一下systemd的下载和编译。 1. 下载systemd源码 (1) 查看systemd版本号&#xff0c;用来确定需要下载的分支 sunsun-pc:~$ systemd --version systemd 237 PAM AUDIT SELINUX IMA APPARMOR SMACK SYSVINIT UT…...

u-view 的u-calendar 组件设置默认日期后,多次点击后,就不滚动到默认日期的位置

场景&#xff1a;uniapp开发微信小程序 vue2 uview版本&#xff1a;2.0.36 &#xff1b; u-calendar 组件设置默认日期后 我打开弹窗&#xff0c;再关闭弹窗&#xff0c; 重复两次 就不显示默认日期了 在源码中找到这个位置进行打印值&#xff0c;根据出bug前后的值进行…...

vue naive ui 按钮绑定按键

使用vue (naive ui) 绑定Enter 按键 知识点: 按键绑定Button全局挂载使得message,notification, dialog, loadingBar 等NaiveUI 生效UMD方式使用vue 与 naive ui将vue默认的 分隔符大括号 替换 为 [[ ]] <!DOCTYPE html> <html lang"en"> <head>…...

Viobot基本功能使用及介绍

设备拿到手当然是要先试一下效果的&#xff0c;这部分可以参考本专栏的第一篇 Viobot开机指南。 接下来我们就从UI开始熟悉这个产品吧&#xff01; 1.状态 设备上电会自动运行它的程序&#xff0c;开启了一个服务器&#xff0c;上位机通过连接这个服务器连接到设备&#xff0c…...

《PMBOK指南》第七版12大原则和8大绩效域

《PMBOK指南》第七版12大原则 原则1&#xff1a;成为勤勉、尊重和关心他人的管家 原则2&#xff1a;营造协作的项目团队环境 原则3&#xff1a;有效地干系人参与 原则4&#xff1a;聚焦于价值 原则5&#xff1a;识别、评估和响应系统交互 原则6&#xff1a;展现领导力行为…...

docker 启动命令

cd /ycw/docker docker build -f DockerFile -t jshepr:1.0 . #前面测试docker已经介绍过该命令下面就不再介绍了 docker images docker run -it -p 7003:9999 --name yyy -d jshepr:1.0 #上面运行报错 用这个 不报错就不用 docker rm yyy docker ps #查看项目日志 docker …...

C++ DAY7

一、类模板 建立一个通用的类&#xff0c;其类中的类型不确定&#xff0c;用一个虚拟类型替代 template<typename T> 类template ----->表示开始创建模板 typename -->表明后面的符号是数据类型&#xff0c;typename 也可以用class代替 T ----->表示数据类型…...

Vue2 使用插件 Volar 报错:<template v-for> key should be placed on the <template> tag.

目录 问题描述 版本描述 问题定位 问题解决 VS Code 插件地址 问题描述 在 VS Code 上使用插件 Volar 开发 Vue3 项目&#xff0c;然后去改 Vue2 项目时&#xff0c;对没有放在<template v-for> 元素上的 :key&#xff0c;会提示 <template v-for> key should…...

启动线程方法 start ()和 run ()有什么区别

在Java中,线程可以通过调用start()方法或者直接调用run()方法来执行。这两种方式有着重要的区别: start() 方法:当你调用线程的start()方法时,它会使线程进入就绪状态,等待系统调度。系统会为该线程分配资源,并在合适的时机执行线程的run()方法。实际上,start()方法会启…...