어떻게 구간에서 방향타 창고로 옮깁니까

왜 구간에서 키 창고로 옮겨야 합니까?


겉으로 보기에 RudderStack과 Segment는 매우 비슷해 보인다.만약 당신이 세분 시장의 실례에 서 있는 고통을 이미 겪었다면, 이 글을 일찍 읽지 못해서 괴로워할 수도 있다.그러나 왜 항로에서 키잡이로 전환해야 하는지 망설이고 있다면 다음과 같은 고려해야 할 사항이 있다.

기본면


RudderStack은 데이터 창고를 사용하기 위해 구축된 강력한 API를 갖춘 개발자 중심의 CDP이다.밑줄은 우리가 너의 데이터를 인질로 삼는 것을 믿지 않는다는 것이다.이러한 도구에 대한 자세한 내용은 DellRudderStack versus Segment feature comparison을 참조하십시오.

고급 기능


우리는 개발자를 위해 Rudder Stack을 구축했는데 이 제품은 많은 고급 기능을 포함한다. 우리가 세분 시장에서 세분 시장으로 전환하는 것이 얼마나 쉬운지 토론하기 전에 이런 기능들은 강조할 필요가 있다.
변환: 실시간 이벤트 흐름에서 자바스크립트 함수를 실행하거나 정적 데이터에서 DBT 모델을 실행한 다음 결과를 전체 창고에 보낼 수 있습니다.표준 자바스크립트 라이브러리를 사용하여 알려진 건장한 언어로 코드를 작성할 수 있도록 변환합니다.
데이터 관리 API: 이벤트 흐름에서 풍부한 메타데이터를 사용하여 JSON의 유효 부하를 확장하고 기존의 경보 시스템과 CI/CD 파이프라인과 통합한 다음에 모델 실시를 시스템으로 되돌린다. 이 모든 것은 API를 통해 이루어진다.
Rich Grafana 계기판: 이벤트를 실시간으로 보고 부하의 성능을 보고 이벤트 전달에 대한 풍부한 통계 정보를 얻습니다.
플랫폼 유연성: 당신의 위치는 우리의 것입니다!RudderStack은 보안 클라우드 옵션 외에도 전용 VPC와 오픈소스(자체 실행) 버전을 제공합니다.

가격.


MTU 비용은 받지 않습니다. Dell의 유연하고 수량에 따라 가격을 책정할 수 있으며 고객과 협력할 수 있도록 설계되었습니다.

창고 유연성


이것은 너의 데이터다.네가 어디에서 위탁 관리하고 싶든지 간에 우리는 데이터를 너에게 가져다 줄 것이다.

데이터 손실 없이 최소한의 프로젝트 작업으로 전환


현재, 우리는 이미 우리의 관점을 논술하였으며, 우리는 당신에게 항로에서 키 창고로 전환하는 기본 지식을 이해하도록 안내합니다.만약 네가 아직 없다면 신청하러 가라free hosted instance on our website.

1단계: 방향타 스택 설정


일단 Rudder Stack에 계정을 설정하면, Rudder Stack으로 이전하는 데 몇 발자국밖에 남지 않습니다.이벤트를 생성하는 플러그인 코드를 바꾸는 데 필요한 절차를 열거하는 것이 목표입니다. Segment SDK에서 Rudder Stack SDK까지 최소한의 변경만 하면 됩니다.
참고: 안내서는 how to add sources and destinations in RudderStack.에서도 볼 수 있습니다.
먼저 RudderStackdashboard에 계정을 생성합니다.Segment와 마찬가지로 소스와 대상을 작성합니다.이것은 이벤트 데이터를 원본에서 목표로 흐르도록 필요한 연결을 만드는 데 도움을 줄 것입니다.
RudderStack은 이벤트가 통과할 수 있도록 데이터 평면이 필요합니다.클라우드 컴퓨팅 환경에서 자체적으로 설정할 수도 있고 저희가 전유 네트워크에서 위탁 관리할 수도 있습니다.직접 설정하려면 our installation guide를 참조하십시오.
VPC에서 호스팅하려면 대시보드 연결 페이지의 RudderStack Hosted Service 버튼을 열고 시작합니다.‌
더 많은 지원이 필요하거나 저희가 호스트를 관리하기를 원하시면 언제든지 저희에게 연락 주십시오.

2단계: SDK 구현 업데이트


이 예에서는 기존 웹 사이트에 JavaScript SDK를 추가하는 방법에 대해 중점적으로 설명합니다.iOS 및 Android 샘플 코드에 대해서는 Migrating From Segment To RudderStack의 설명서를 참조하십시오.

<script>
    rudderanalytics = window.rudderanalytics = [];

    var methods = [
        "load",
        "page",
        "track",
        "identify",
        "reset"
    ];
    for (var i=0; i<methods.length; i++) {
        var method = methods[i];
        rudderanalytics[method] = function(methodName) {
            return function() {
                rudderanalytics.push([methodName, ...arguments]);
            }
        } (method)
    }
    rudderanalytics.load(<YOUR_WRITE_KEY>, <DATA_PLANE_URI>);
    rudderanalytics.page();
</script>
<script src="https://cdn.rudderlabs.com/rudder-analytics.min.js"></script>

객체의 변경 사항에 주의하십시오.Segment의 분석 대상에 비해 rudderanalytics를 전역 대상 라이브러리로 사용합니다.RudderStack SDK는 Segment와 API를 완전히 호환하기 때문에 지금부터 나머지 코드를 그대로 사용할 수 있습니다
남은 유일한 일은 RudderStack 프로그램에서 목적지를 만드는 것입니다.빠른 비디오 자습서를 보십시오Sending Data Using RudderStack In Under 5 Minutes.

3단계: 창고 모드가 아닌 마이그레이션


Segment에서 Rudder Stack으로 전환하는 주요 장점 중 하나는 모든 이벤트와 사용자 데이터를 자신의 창고에 저장할 수 있다는 것이다.데이터 창고 목표를 세그먼트에서 Rudder Stack으로 옮기는 것은 상당히 간단합니다. 왜냐하면 Rudder Stack은 사용자가 이미 만든 기존 모델을 세그먼트의 저장 목표로 사용할 수 있기 때문입니다.이렇게 하면 이벤트 원본을 전환할 때 역사 데이터를 잃어버리지 않도록 할 수 있다.즉, 데이터를 마이그레이션할 필요가 없습니다.
우리가 이전 단계 이벤트 원본을 처리하는 구체적인 방식은 두 가지 다른 옵션과 관련된다. 이것은 원본이 클라우드 모드에서 실행되는지, 원본 이벤트가 웹 클라이언트, 서버, 장치에서 발송되는지에 달려 있다.
단계 1: 창고 목적지 만들기
새 창고 목표를 만들고, 이름 공간을 세그먼트에 쓸 구조와 같이 설정합니다.그런 다음 RudderStack은 Segment와 같은 테이블 세트에 기록됩니다.특정 창고 유형에 대한 도움말은 창고 목적지에 대한 문서를 보십시오.
2단계: RudderStack에 서버측 소스 이벤트 라우팅
서버 사이드 이벤트 원본부터 시작하는 것을 권장합니다.전환 시간을 완전히 제어할 수 있기 때문에 클라이언트에서 실행되는 원본보다 이 원본을 이전하는 것이 더 간단합니다. 클라이언트는 사용자가 프로그램을 업그레이드하거나 귀속 이벤트를 터치하기 전에 캐시를 제거해야 하기 때문입니다.
RudderStack 응용 프로그램에서 서버 측 소스가 1단계에서 만든 데이터 창고 대상에 연결되었는지 확인합니다.다음에 서버 사이드 클라이언트를 전환해서 이벤트 데이터를 Rudder Stack에 연결합니다. 걱정하지 마십시오. 우리가 사용하는 데이터 테이블은 Segment와 같기 때문에, Segment에서 처리되지 않은 모든 남겨진 이벤트는 같은 테이블에 계속 불러옵니다. 설령 새로운 Rudder Stack 이벤트가 흐르고 있더라도.또한 세그먼트 서버 원본 이벤트는 클라우드 모드에서만 실행되기 때문에 RudderStack을 통해 데이터를 보내는 것으로 전환하면 세그먼트 연결을 계속 실행할 필요가 없습니다.
3단계: 클라이언트 이벤트 - 세그먼트를 핸들 스택 소스로 구성

서버 측 이벤트와 달리 클라이언트 이벤트는 장치 모드나 클라우드 모드에서 실행될 수 있기 때문에 이벤트가 언제 RudderStack을 통과하기 시작할지 완전히 제어할 수 없습니다. 특히 IOS와 안드로이드 클라이언트에 대해서는 최종 사용자가 변경이 발생하기 전에 프로그램 버전을 업그레이드하도록 요구할 것입니다.이러한 상황에 적응하기 위해서, 우리는 RudderStack에 세그먼트 원본을 만들고, 이를 데이터 창고의 목표를 가리키는 것을 권장합니다.
그런 다음 설정 탭의 Webhook URL을 복사하여 화면 맨 위에 있는 데이터 평면으로 대체<DATAPLANE_URL>합니다.

다음에 위에서 만든 Webhook URL을 사용하여 섹션에 Webhook 목적지를 만듭니다.추가 제목 값은 필요 없습니다.원본을 웹훅 대상에 연결하면 Rudder Stack에서 이 이벤트를 창고로 보내기 시작합니다.
이 때, 창고의 목적지를 끊어야 합니다.그렇지 않으면 데이터 창고에 중복 이벤트가 생성됩니다.

단계 4: 세그먼트에서 익명 ID 메모


세그먼트에서 이동할 때, 식별되지 않은 익명 데이터가 있을 수 있습니다.Segment 또는 RudderStack이 사용자를 인식하지 못하는 이벤트를 추적할 때 둘 다 무작위 UUID를 익명 ID로 할당합니다.이 ID는 알 수 없는 사용자를 식별할 때까지 추적하는 데 사용되며, 사용자가 식별되기 전과 이후에 사용자의 행위, 스케줄, 첫 터치 원인을 연결할 수 있도록 합니다.
이전에 분배된 익명 사용자를 중복하지 않기 위해서, 우리는 세그먼트 SDK의 준비 리셋에 Rudder Stack SDK를 한동안 불러오는 것을 권장합니다.리셋에 Rudder Stack을 불러오면 섹션 쿠키에서 이전에 분배된 익명 ID를 검색하고 Rudder Stack SDK를 초기화할 때 같은 익명 ID를 Rudder Stack 사용자에게 분배할 수 있습니다.대부분의 익명 ID가 리셋되었다는 것을 확신할 수 있도록 SDK를 겹친 후, Segment SDK를 삭제하고 Rudder Stack SDK만 사용할 수 있습니다.
SDK를 병렬 로드하는 코드 세그먼트는 다음과 같습니다.

<script type="text/javascript">
!function(){var e=window.rudderanalytics=window.rudderanalytics||[];e.methods=["load","page","track","identify","alias","group","ready","reset","getAnonymousId","setAnonymousId"],e.factory=function(t){return function(){var r=Array.prototype.slice.call(arguments);return r.unshift(t),e.push(r),e}};for(var t=0;t<e.methods.length;t++){var r=e.methods[t];e[r]=e.factory(r)}e.loadJS=function(e,t){var r=document.createElement("script");r.type="text/javascript",r.async=!0,r.src="https://cdn.rudderlabs.com/v1/rudder-analytics.min.js";var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(r,a)}}()
!(function(){
// Create a queue, but don't obliterate an existing one!
var analtics = window.analytics = window.analytics || [];
// If the real analytics.js is already on the page return.
if (analytics.initialize) return;
// If the snippet was invoked already show an error.
if (analytics.invoked) {
if (window.console && console.error) {
console.error('Segment snippet included twice.');
}
return;
}
// Invoked flag, to make sure the snippet
// is never invoked twice.
analytics.invoked = true;
// A list of the methods in Analytics.js to stub.
analytics.methods = [
'trackSubmit',
'trackClick',
'trackLink',
'trackForm',
'pageview',
'identify',
'reset',
'group',
'track',
'ready',
'alias',
'debug',
'page',
'once',
'off',
'on',
'addSourceMiddleware',
'addIntegrationMiddleware',
'setAnonymousId',
'addDestinationMiddleware'
];
// Define a factory to create stubs. These are placeholders
// for methods in Analytics.js so that you never have to wait
// for it to load to actually record data. The `method` is
// stored as the first argument, so we can replay the data.
analytics.factory = function(method){
return function(){
var args = Array.prototype.slice.call(arguments);
args.unshift(method);
analytics.push(args);
return analytics;
};
};
// For each of our methods, generate a queueing stub.
for (var i = 0; i < analytics.methods.length; i++) {
var key = analytics.methods[i];
analytics[key] = analytics.factory(key);
}
// Define a method to load Analytics.js from our CDN,
// and that will be sure to only ever load it once.
analytics.load = function(key, options){
// Create an async script element based on your key.
var script = document.createElement('script');
script.type = 'text/javascript';
script.async = true;
script.src = 'https://cdn.segment.com/analytics.js/v1/'
+ key + '/analytics.min.js';
// Insert our script next to the first script element.
var first = document.getElementsByTagName('script')[0];
first.parentNode.insertBefore(script, first);
analytics._loadOptions = options;
};
// Add a version to keep track of what's in the wild.
analytics.SNIPPET_VERSION = '4.1.0';
// Load Analytics.js with your key, which will automatically
// load the tools you've enabled for your account. Boosh!
analytics.load("SEGMENT_WRITE_KEY");
// Make the first page call to load the integrations. If
// you'd like to manually name or tag the page, edit or
// move this call however you'd like.
analytics.page();
// analytics ready callback
analytics.ready(function() {
// INITIALIZE RUDDER SDK with setAnonymousId
window.rudderanalytics.unshift(["setAnonymousId", window.analytics.user().anonymousId()])
window.rudderanalytics.unshift(["load", "RudderStack_WRITE_KEY", "RudderStack_DATAPLANE_URL"])
window.rudderanalytics.page()
window.rudderanalytics.loadJS()
})})();
</script>
참고: 위의 예에서는 SEGMENT_WRITE_KEY, RudderStack_WRITE_KEYRudderStack_DATAPLANE_URL를 입력해야 합니다.

고급 옵션


만약에 Segment의 인물 역할과 사용자 특징 기능을 이용한다면 본 시리즈의 두 번째 부분과 세 번째 부분을 계속 주목해 주십시오. 우리는 RudderStack이 어떻게 신분 해석, SQL 특징을 지원하는지, 그리고 DBT와 RudderStack 창고를 사용하여 사용자 정의 시청자를 구축하고 나누어 주는지 상세하게 소개합니다!

옮길 준비 되셨나요?


오늘 무료 등록으로 이벤트 흐름, ELT, 역방향 ETL 파이프라인을 테스트합니다.Google HTTP 원본을 사용하여 5분 안에 데이터를 보내거나 웹 사이트나 응용 프로그램에 12개의 SDK 중 하나를 설치합니다.  Get started .

좋은 웹페이지 즐겨찾기